Method: Exact::BaseMapping.convert
- Defined in:
- lib/exact/mappings/base_mapping.rb
.convert(exact_object, object = nil) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/exact/mappings/base_mapping.rb', line 3 def self.convert(exact_object, object = nil) hsh = exact_object.instance_variables.each_with_object({}) { |var, hash| hash[var.to_s.delete('@').to_sym] = exact_object.instance_variable_get(var) }.except!(:__metadata) if object.present? hsh.each do |k, v| object.send("#{k}=", v) end object else name = to_s.demodulize name.slice!('Mapping') Exact.const_get(name).new(hsh) unless object.present? end end |