Module: MongoMapper::Plugins::Versioned
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/mongo_mapper/plugins/version.rb,
lib/mongo_mapper/plugins/versioned.rb,
lib/mongo_mapper/plugins/models/version.rb
Defined Under Namespace
Modules: ClassMethods
Classes: Version
Instance Method Summary
collapse
Instance Method Details
#create_version ⇒ Object
38
39
40
41
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 38
def create_version
self.version_number = self.versions.empty? ? 1 : self.versions.last.version_number+1
self.versions << current_version
end
|
#current_version ⇒ Object
68
69
70
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 68
def current_version
Version.new(:data => self.attributes.slice!(*ignored_keys), :versioned_id => self.id, :version_number => self.version_number)
end
|
#last_version? ⇒ Boolean
63
64
65
66
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 63
def last_version?
return true if versions.empty?
self.version_number == versions.last.version_number
end
|
#revert_to(target_version_number) ⇒ Object
49
50
51
52
53
54
55
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 49
def revert_to(target_version_number)
return if self.version_number == target_version_number
if target_version = version_at(target_version_number)
self.attributes = target_version.data
self.version_number = target_version.version_number
end
end
|
#should_create_initial_version? ⇒ Boolean
82
83
84
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 82
def should_create_initial_version?
versions.empty?
end
|
#should_create_version? ⇒ Boolean
this method might be overwritten by something more sophisticated (esp. in case of EmbeddedDocuments)
88
89
90
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 88
def should_create_version?
changes.slice!(*ignored_keys).size > 0
end
|
#version_at(target_version_number) ⇒ Object
72
73
74
|
# File 'lib/mongo_mapper/plugins/versioned.rb', line 72
def version_at(target_version_number)
versions.where(:version_number => target_version_number).first
end
|