class ActiveVersioning::VersionManager
Constants
- BLACKLISTED_ATTRIBUTES
Public Instance Methods
create_draft_from_version(id)
click to toggle source
# File lib/active_versioning/version_manager.rb, line 9 def create_draft_from_version(id) version = record.versions.find(id) ensure_compatibility_with(version) new_version = record.versions.draft.first_or_create(event: 'draft') new_version.object = version.object new_version.save end
ensure_compatibility_with(version)
click to toggle source
# File lib/active_versioning/version_manager.rb, line 19 def ensure_compatibility_with(version) incompatible_attributes(version).tap do |incompatible_attrs| if incompatible_attrs.any? raise Errors::IncompatibleVersion.new(record, version), "The given version contains attributes that are no longer compatible with the current schema: #{incompatible_attrs.to_sentence}." end end end
incompatible_attributes(version)
click to toggle source
# File lib/active_versioning/version_manager.rb, line 27 def incompatible_attributes(version) version.object.keys - record.versioned_attributes.keys end