Module: Opium::Model::Attributable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/opium/model/attributable.rb
Instance Method Summary collapse
Instance Method Details
#attributes ⇒ Object
10 11 12 |
# File 'lib/opium/model/attributable.rb', line 10 def attributes @attributes ||= self.class.default_attributes end |
#attributes=(values) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/opium/model/attributable.rb', line 14 def attributes=(values) sanitize_for_mass_assignment( rubyize_field_names( values ) ).each do |k, v| field_info, setter = self.class.fields[k], :"#{k}=" if field_info.present? || self.respond_to?( setter ) send( setter, v ) else attributes[k] = v end end end |
#attributes_to_parse(options = {}) ⇒ Object
25 26 27 28 |
# File 'lib/opium/model/attributable.rb', line 25 def attributes_to_parse( = {} ) [:except] ||= self.class.fields.values.select {|f| f.readonly? }.map {|f| f.name} if [:not_readonly] Hash[*self.as_json( ).flat_map {|k, v| [self.class.fields[k].name_to_parse, self.class.fields[k].type.to_parse(v)]}] end |