lib/hobo/patches/slop.rb in hobo-inviqa-0.0.14 vs lib/hobo/patches/slop.rb in hobo-inviqa-0.0.15
- old
+ new
@@ -44,6 +44,26 @@
end.join(' ')
end
old_parse!(items, &block)
end
+
+ class Option
+ DEFAULT_OPTIONS[:key_delimiter] = '='
+
+ alias :old_value= :value=
+ def value=(new_value)
+ if config[:as].to_s.downcase == 'hash'
+ @value ||= {}
+
+ if new_value.respond_to?(:split)
+ new_array_hash = new_value.split(config[:delimiter], config[:limit]).map do |v|
+ v.split(config[:key_delimiter], 2)
+ end
+ @value.merge!(Hash[new_array_hash])
+ end
+ else
+ self.old_value = new_value
+ end
+ end
+ end
end