Class: Skyline::Content::Versioning::Version

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/skyline/content/versioning/version.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.destroy!(record) ⇒ Object

Remove the version as the original record has also been removed. –



24
25
26
27
28
# File 'lib/skyline/content/versioning/version.rb', line 24

def destroy!(record)
  class_name = self.class_name(record)        
  logger.warn("[VERSIONING] -- <#{class_name}: #{record.id}> [DESTROY]")
  self.delete_all("versionable_type = '#{class_name}' AND versionable_id = #{record.id}")
end

.increase!(record, user) ⇒ Object

Increase the version number of the record add the username as updater. –



11
12
13
14
15
16
17
18
19
# File 'lib/skyline/content/versioning/version.rb', line 11

def increase!(record,user)
  class_name = self.class_name(record)
  logger.warn("[VERSIONING] -- <#{class_name}: #{record.id}> [INCREASE]")
  if id = self.connection.select_value("SELECT id FROM #{self.table_name} WHERE versionable_type = '#{class_name}' AND versionable_id = #{record.id} LIMIT 1")
    self.connection.update "UPDATE #{self.table_name} SET version = version+1, author = '#{user.username.to_s}' WHERE id = #{id}"
  else
    self.connection.insert "INSERT INTO #{self.table_name} (versionable_type,versionable_id,version,author) VALUES ('#{class_name}',#{record.id},1,'#{user.username.to_s}')"
  end
end

Instance Method Details

#save(*params) ⇒ Object

Version objects SHOULD NOT BE SAVED!



38
39
40
# File 'lib/skyline/content/versioning/version.rb', line 38

def save(*params)
  return true
end