module EditableWrapper
Public Instance Methods
Source
# File app/models/concerns/editable_wrapper.rb, line 8 def editing? = editing_id != nil def new_record? = editing_id.nil? def readable_attribute_names attribute_names end def writable_attribute_names attribute_names end def read_from!(instance) self.editing_id = instance.id readable_attribute_names .excluding("editing_id") .each do |attribute| public_send("#{attribute}=", instance.public_send(attribute)) end save!(context: :create) end def write_to!(instance) if new_record? && instance.persisted? raise CannotWritePersistedRecord elsif editing? && editing_id != instance.id raise CannotWriteDifferentRecord end writable_attribute_names .excluding("editing_id") .each do |attribute| instance.public_send("#{attribute}=", public_send(attribute)) end end class CannotWriteDifferentRecord < StandardError end class CannotWritePersistedRecord < StandardError end
Source
# File app/models/concerns/editable_wrapper.rb, line 10 def new_record? = editing_id.nil? def readable_attribute_names attribute_names end def writable_attribute_names attribute_names end def read_from!(instance) self.editing_id = instance.id readable_attribute_names .excluding("editing_id") .each do |attribute| public_send("#{attribute}=", instance.public_send(attribute)) end save!(context: :create) end def write_to!(instance) if new_record? && instance.persisted? raise CannotWritePersistedRecord elsif editing? && editing_id != instance.id raise CannotWriteDifferentRecord end writable_attribute_names .excluding("editing_id") .each do |attribute| instance.public_send("#{attribute}=", public_send(attribute)) end end class CannotWriteDifferentRecord < StandardError end class CannotWritePersistedRecord < StandardError end end
Source
# File app/models/concerns/editable_wrapper.rb, line 20 def read_from!(instance) self.editing_id = instance.id readable_attribute_names .excluding("editing_id") .each do |attribute| public_send("#{attribute}=", instance.public_send(attribute)) end save!(context: :create) end
Source
# File app/models/concerns/editable_wrapper.rb, line 12 def readable_attribute_names attribute_names end
Source
# File app/models/concerns/editable_wrapper.rb, line 16 def writable_attribute_names attribute_names end
Source
# File app/models/concerns/editable_wrapper.rb, line 32 def write_to!(instance) if new_record? && instance.persisted? raise CannotWritePersistedRecord elsif editing? && editing_id != instance.id raise CannotWriteDifferentRecord end writable_attribute_names .excluding("editing_id") .each do |attribute| instance.public_send("#{attribute}=", public_send(attribute)) end end