Class: HashMangler::Mangler
- Inherits:
-
Object
- Object
- HashMangler::Mangler
- Defined in:
- lib/hash_mangler/mangler.rb,
lib/hash_mangler/mangler/key_mangler.rb
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Mangler
constructor
A new instance of Mangler.
- #mangle(obj) ⇒ struct_class
Constructor Details
#initialize(options = {}) ⇒ Mangler
Returns a new instance of Mangler.
16 17 18 19 20 |
# File 'lib/hash_mangler/mangler.rb', line 16 def initialize( = {}) @value_mangler = .fetch(:value_mangler, proc { |o| o }) @struct_class = .fetch(:struct_class , HashMangler::SimpleStruct) @key_mangler = KeyMangler.new() end |
Instance Method Details
#mangle(obj) ⇒ struct_class
27 28 29 30 31 32 33 |
# File 'lib/hash_mangler/mangler.rb', line 27 def mangle(obj) return @value_mangler.call(obj) unless obj.is_a?(Hash) || obj.is_a?(Array) return obj.map { |v| mangle(v) } if obj.is_a?(Array) r = @struct_class.new() obj.each { |k, v| r[@key_mangler.format(k)] = mangle(v) } r end |