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