Module: ActiveGraph::UndeclaredProperties
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_graph/undeclared_properties.rb
Overview
This mixin allows storage and update of undeclared properties in the included class
Instance Method Summary collapse
- #add_undeclared_property(name, value) ⇒ Object
- #props_for_create ⇒ Object
- #props_for_update ⇒ Object
- #read_attribute(name) ⇒ Object (also: #[])
- #read_undeclared_property(name) ⇒ Object
- #skip_update? ⇒ Boolean
- #undeclared_properties! ⇒ Object
- #validate_attributes!(_) ⇒ Object
- #write_attribute(name, value) ⇒ Object (also: #[]=)
Instance Method Details
#add_undeclared_property(name, value) ⇒ Object
| 49 50 51 | # File 'lib/active_graph/undeclared_properties.rb', line 49 def add_undeclared_property(name, value) (self.undeclared_properties ||= {})[name] = value end | 
#props_for_create ⇒ Object
| 35 36 37 | # File 'lib/active_graph/undeclared_properties.rb', line 35 def props_for_create super.merge(undeclared_properties!) end | 
#props_for_update ⇒ Object
| 39 40 41 | # File 'lib/active_graph/undeclared_properties.rb', line 39 def props_for_update super.merge(undeclared_properties!) end | 
#read_attribute(name) ⇒ Object Also known as: []
| 13 14 15 | # File 'lib/active_graph/undeclared_properties.rb', line 13 def read_attribute(name) respond_to?(name) ? super(name) : read_undeclared_property(name.to_sym) end | 
#read_undeclared_property(name) ⇒ Object
| 18 19 20 | # File 'lib/active_graph/undeclared_properties.rb', line 18 def read_undeclared_property(name) _persisted_obj ? _persisted_obj.properties[name] : (undeclared_properties && undeclared_properties[name]) end | 
#skip_update? ⇒ Boolean
| 31 32 33 | # File 'lib/active_graph/undeclared_properties.rb', line 31 def skip_update? super && undeclared_properties.blank? end | 
#undeclared_properties! ⇒ Object
| 43 44 45 46 47 | # File 'lib/active_graph/undeclared_properties.rb', line 43 def undeclared_properties! undeclared_properties || {} ensure self.undeclared_properties = nil end | 
#validate_attributes!(_) ⇒ Object
| 10 11 | # File 'lib/active_graph/undeclared_properties.rb', line 10 def validate_attributes!(_) end | 
#write_attribute(name, value) ⇒ Object Also known as: []=
| 22 23 24 25 26 27 28 | # File 'lib/active_graph/undeclared_properties.rb', line 22 def write_attribute(name, value) if respond_to? "#{name}=" super(name, value) else add_undeclared_property(name, value) end end |