about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/mogilefs/backend.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/mogilefs/backend.rb b/lib/mogilefs/backend.rb
index b754bbc..454685a 100644
--- a/lib/mogilefs/backend.rb
+++ b/lib/mogilefs/backend.rb
@@ -372,9 +372,12 @@ class MogileFS::Backend
 
   # Turns a url params string into a Hash.
   def url_decode(str) # :nodoc:
-    Hash[*(str.split(/&/).map! { |pair|
-      pair.split(/=/, 2).map! { |x| url_unescape(x) }
-    } ).flatten]
+    rv = {}
+    str.split(/&/).each do |pair|
+      k, v = pair.split(/=/, 2).map! { |x| url_unescape(x) }
+      rv[k.freeze] = v
+    end
+    rv
   end
 
   # :stopdoc: