52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/active_data/model.rb', line 52
def instantiate data
return data if data.class.include? ActiveData::Model
data = data.symbolize_keys
instance = allocate
attributes = initialize_attributes
attributes.merge!(data.slice(*attributes.keys))
data.slice(*association_names.map(&:to_sym)).each do |association, data|
instance.send(:"#{association}=", data)
end
instance.instance_variable_set(:@attributes, attributes)
instance.instance_variable_set(:@new_record, false)
instance
end
|