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 |