Class: Exact::BaseMapping

Inherits:
Object
  • Object
show all
Defined in:
lib/exact/mappings/base_mapping.rb

Class Method Summary collapse

Class Method Details

.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