module Couchbase::Model::Relationship::Parent
Public Instance Methods
changed_children()
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 83 def changed_children loaded_children.select do |child| child.changed? || (child.respond_to?(:children_changed?) ? child.children_changed? : nil) end end
children()
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 71 def children self.class.child_associations.map do |association| association.fetch self end.compact end
children_changed?()
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 40 def children_changed? changed_children.present? end
delete_with_autodelete_children(options = {})
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 51 def delete_with_autodelete_children(options = {}) self.class.child_associations.select(&:auto_delete).each do |association| association.fetch(self).try :delete, options end delete_without_autodelete_children(options) end
delete_with_children(options = {})
click to toggle source
FIXME changed? should include children if any are autosave
# File lib/couchbase/model/relationship/parent.rb, line 61 def delete_with_children(options = {}) children.each do |child| if child.persisted? child.delete options end end delete(options) end
loaded_children()
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 77 def loaded_children self.class.child_associations.map do |association| association.fetch(self) if association.loaded?(self) end.compact end
reload_all()
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 89 def reload_all children.each(&:reload) reload end
save_with_autosave_children(options = {})
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 29 def save_with_autosave_children(options = {}) # Don't save if we failed save_without_autosave_children(options).tap do |result| if result self.class.child_associations.select(&:auto_save).each do |association| association.fetch(self).try :save_if_changed, options end end end end
save_with_changed_children()
click to toggle source
# File lib/couchbase/model/relationship/parent.rb, line 44 def save_with_changed_children save_if_changed changed_children.each do |child| child.respond_to?(:save_with_changed_children) ? child.save_with_changed_children : child.save_if_changed end end
save_with_children(options = {})
click to toggle source
TODO How to handle failures saving children?
# File lib/couchbase/model/relationship/parent.rb, line 19 def save_with_children(options = {}) save(options).tap do |result| if result children.each do |child| child.save_if_changed(options) end end end end