14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/sequent/core/helpers/param_support.rb', line 14
def from_params(params = {})
result = allocate
params = HashWithIndifferentAccess.new(params)
result.attributes.each do |attribute, type|
value = params[attribute]
next if value.blank?
if type.respond_to? :from_params
value = type.from_params(value)
elsif type.is_a? Sequent::Core::Helpers::ArrayWithType
value = value.map { |v| type.item_type.from_params(v) }
end
result.instance_variable_set(:"@#{attribute}", value)
end
result
end
|