lib/parameters/options.rb in parameters-0.4.3 vs lib/parameters/options.rb in parameters-0.4.4

- old
+ new

@@ -207,12 +207,16 @@ OptionParser.accept(Symbol, /[A-Za-z][A-Za-z0-9_-]*/) do |s,| s.to_sym if s end # accept pattern for Hashes - OptionParser.accept(Hash, /[^\s:]*:[^\s:]*(\s+[^\s:]*:[^\s:])*/) do |s,| + OptionParser.accept(Hash, /((?:\\.|[^\\:])*):((?:\\.|[^\\:])*)/) do |s,k,v| if s - Hash[s.split.map { |key_value| key_value.split(':',2) }] + unescape = lambda { |string| + string.gsub(/\\./) { |match| match[1,1] } + } + + {unescape[k] => unescape[v]} end end end end