Module: ControlledVersioning::ActsAsVersionable::InstanceMethods
- Defined in:
- lib/controlled_versioning.rb
Instance Method Summary collapse
- #initial_version ⇒ Object
- #is_a_nested_association? ⇒ Boolean
- #submit_revision(suggested_attributes) ⇒ Object
- #versionable_attributes ⇒ Object
Instance Method Details
#initial_version ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/controlled_versioning.rb', line 83 def initial_version if is_a_nested_association? version_children.first else versions.find_by(initial: true) end end |
#is_a_nested_association? ⇒ Boolean
73 74 75 |
# File 'lib/controlled_versioning.rb', line 73 def is_a_nested_association? self.class.is_a_nested_association? end |
#submit_revision(suggested_attributes) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/controlled_versioning.rb', line 91 def submit_revision(suggested_attributes) assign_attributes(suggested_attributes) if invalid? errors elsif !Revision::Auditor.new(self).changes_original? errors[:base] << I18n.t("errors.messages.no_revisions_made") errors else version = versions.build Revision::Factory.new(versionable: self, version: version).build version.save version end end |
#versionable_attributes ⇒ Object
77 78 79 80 81 |
# File 'lib/controlled_versioning.rb', line 77 def versionable_attributes versionable_attributes = self.versionable_attribute_names ArrayConverter.to_s!(versionable_attributes) self.attributes.slice(*versionable_attributes) end |