Class: ObjectMapper
- Inherits:
-
Object
- Object
- ObjectMapper
- Defined in:
- lib/object_mapper.rb,
lib/object_mapper/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Instance Method Summary collapse
- #convert(result, to: Hash) ⇒ Object
-
#initialize(mapping) ⇒ ObjectMapper
constructor
A new instance of ObjectMapper.
Constructor Details
#initialize(mapping) ⇒ ObjectMapper
Returns a new instance of ObjectMapper.
4 5 6 7 |
# File 'lib/object_mapper.rb', line 4 def initialize(mapping) @mapping = mapping.dup @mapping.default = {} end |
Instance Method Details
#convert(result, to: Hash) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/object_mapper.rb', line 9 def convert(result, to: Hash) klass = to if result.is_a?(Array) && klass != Array result.map! {|element| convert(element, to: klass.first) } elsif result.is_a?(Hash) && klass != Hash result.each do |key, value| result[key] = convert(value, to: @mapping[klass][key] || value.class) end begin klass.new(result) rescue ArgumentError => e raise e, "#{e} (class: `#{klass}')", e.backtrace end else result end end |