diff options
-rw-r--r-- | lib/mogilefs/backend.rb | 9 |
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: |