Module: ArDocStore::Model::InstanceMethods
- Defined in:
- lib/ar_doc_store/model.rb
Instance Method Summary collapse
- #assign_json_data ⇒ Object
- #ensure_json_data_saved ⇒ Object
- #mark_embeds_as_persisted ⇒ Object
- #save_json_data ⇒ Object
Instance Method Details
#assign_json_data ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ar_doc_store/model.rb', line 16 def assign_json_data json_data = respond_to?(json_column) && self[json_column] json_data && json_attributes.keys.each do |key| next unless json_data.key?(key) self[key] = json_data[key] if respond_to?("#{key}=") # send :attribute=, key, json_data[key] if self.respond_to?("#{key}=") self[key].parent = self if self[key].respond_to?(:parent=) self[key]. = key if self[key].respond_to?(:embedded_as) mutations_from_database.forget_change(key) unless new_record? end end |
#ensure_json_data_saved ⇒ Object
35 36 37 38 |
# File 'lib/ar_doc_store/model.rb', line 35 def ensure_json_data_saved save_json_data unless @json_data_saved @json_data_saved = nil end |
#mark_embeds_as_persisted ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/ar_doc_store/model.rb', line 40 def json_attributes.values.each do |value| if value.respond_to?(:embedded?) && value. && respond_to?(value.attribute) val = public_send(value.attribute) val.persist if val && val.respond_to?(:persist) end end end |
#save_json_data ⇒ Object
28 29 30 31 32 33 |
# File 'lib/ar_doc_store/model.rb', line 28 def save_json_data json_attributes.each do |key, value| write_store_attribute(json_column, key, read_attribute(key)) if changes.key?(key) end @json_data_saved = true end |