Module: ActsAsVersionable::InstanceMethods

Defined in:
lib/acts_as_versionable.rb

Instance Method Summary collapse

Instance Method Details

#editable_versionObject

return the last version editable



83
84
85
# File 'lib/acts_as_versionable.rb', line 83

def editable_version
  parent_version.nil? ? self : parent_version        
end

#get_version(number) ⇒ Object

return a determined version number

Raises:



50
51
52
53
54
# File 'lib/acts_as_versionable.rb', line 50

def get_version(number)
  version = versions.where(:version_number => number).first
  raise NoSuchVersionError if version.nil?
  version
end

#last_versionObject

return the last version number



77
78
79
80
# File 'lib/acts_as_versionable.rb', line 77

def last_version
  return 0 if versions.count == 0
  versions.first.version_number 
end

#revert_to_version(number) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/acts_as_versionable.rb', line 39

def revert_to_version(number)
  version = get_version number
  editable = editable_version
  copy_version_values version, editable
  editable.version_number = nil
  editable.version_id = nil
  editable.save
  editable
end

#versionObject

return the current version



71
72
73
74
# File 'lib/acts_as_versionable.rb', line 71

def version
  return last_version if versionable?
  version_number
end

#versionable?Boolean

check if we are in main version

Returns:

  • (Boolean)


66
67
68
# File 'lib/acts_as_versionable.rb', line 66

def versionable?
  version_id.nil?
end

#versionsObject

return an array with all versions



57
58
59
60
61
62
63
# File 'lib/acts_as_versionable.rb', line 57

def versions
  if versionable?
    internal_versions
  else
    self.class.where(:version_id => self.version_id).order(:version_number).reverse_order
  end
end