Module: ControlledVersioning::ActsAsVersionable::InstanceMethods

Defined in:
lib/controlled_versioning.rb

Instance Method Summary collapse

Instance Method Details

#build_initial_versionObject



123
124
125
126
# File 'lib/controlled_versioning.rb', line 123

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

#initial_versionObject



128
129
130
131
132
133
134
# File 'lib/controlled_versioning.rb', line 128

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

#is_a_nested_association?Boolean



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

def is_a_nested_association?
  self.class.is_a_nested_association?
end

#submit_revision(suggested_attributes) ⇒ Object



136
137
138
139
140
141
# File 'lib/controlled_versioning.rb', line 136

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

#versionable_attributesObject



117
118
119
120
121
# File 'lib/controlled_versioning.rb', line 117

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