4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/api/model.rb', line 4
def self.new_from_fields (field_elements)
instance = self.new
field_elements.each do |field_element|
value_str = field_element.content
name = field_element['data-name']
value = case field_element['data-type']
when 'date' then value_str.empty? ? nil : Date.parse(value_str)
when 'integer' then value_str.empty? ? nil : value_str.to_i
when 'float' then value_str.empty? ? nil : value_str.to_f
when 'boolean' then value_str.empty? ? nil : value_str != 'false'
when 'string' then value_str
end
if instance.respond_to?(name)
instance.send(:"#{name}=", value)
end
end
instance
end
|