Module: ControlledVersioning::ActsAsVersionable::InstanceMethods

Defined in:
lib/controlled_versioning.rb

Instance Method Summary collapse

Instance Method Details

#build_initial_versionObject



100
101
102
103
# File 'lib/controlled_versioning.rb', line 100

def build_initial_version
  version = versions.build(initial: true, notes: notes, user: user)
  InitialVersion::Factory.new(versionable: self, version: version).build
end

#initial_versionObject



105
106
107
108
109
110
111
# File 'lib/controlled_versioning.rb', line 105

def initial_version
  if is_a_nested_association?
    version_children.first
  else
    versions.find_by(initial: true)
  end
end

#is_a_nested_association?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/controlled_versioning.rb', line 90

def is_a_nested_association?
  self.class.is_a_nested_association?
end

#submit_revision(suggested_attributes) ⇒ Object



113
114
115
116
117
118
# File 'lib/controlled_versioning.rb', line 113

def submit_revision(suggested_attributes)
  Revision::Factory.new(
    versionable: self,
    suggested_attributes: suggested_attributes
  ).build
end

#versionable_attributesObject



94
95
96
97
98
# File 'lib/controlled_versioning.rb', line 94

def versionable_attributes
  versionable_attributes = self.versionable_attribute_names
  ArrayConverter.to_s!(versionable_attributes)
  self.attributes.slice(*versionable_attributes)
end