mm-versionable 0.2.8 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +10 -0
- data/lib/versionable/plugins/versionable.rb +3 -2
- data/lib/versionable/version.rb +1 -1
- data/test/test_helper.rb +1 -0
- data/test/unit/test_versioning.rb +12 -0
- metadata +12 -18
data/README.md
CHANGED
@@ -91,6 +91,16 @@ The following example should demonstrate how to use versioning well :
|
|
91
91
|
thing.version_at(10)
|
92
92
|
#=> nil
|
93
93
|
|
94
|
+
thing.delete_version(:all) # This will delete all versions and reset versions_count to 0
|
95
|
+
# Or
|
96
|
+
thing.delete_version(1) # This will delete the version at pos = 1, and reset the pos of all subsequent versions to one less to maintain linear sequence.
|
97
|
+
# delete_version API pos follows he version_at API in that you can use :first, :current, :last, :latest
|
98
|
+
thing.delete_version(:first)
|
99
|
+
thing.delete_version(:current)
|
100
|
+
thing.delete_version(:last)
|
101
|
+
thing.delete_version(:latest)
|
102
|
+
|
103
|
+
|
94
104
|
Problems or Questions?
|
95
105
|
----------------------
|
96
106
|
Hit up on the mongomapper google group:
|
@@ -90,8 +90,9 @@ module Versionable
|
|
90
90
|
version = self.version_at(pos)
|
91
91
|
|
92
92
|
if version
|
93
|
-
self.attributes.keys
|
94
|
-
|
93
|
+
possible_keys = (self.attributes.keys + version.data.keys).uniq.compact
|
94
|
+
possible_keys.each do |key|
|
95
|
+
self.send(:"#{key}=", version.data[key]) if self.respond_to?(:"#{key}=")
|
95
96
|
end
|
96
97
|
end
|
97
98
|
|
data/lib/versionable/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -176,4 +176,16 @@ class VersioningTest < Test::Unit::TestCase
|
|
176
176
|
assert_equal @user.version_at(:latest).updater_id, 'test_id_2'
|
177
177
|
end
|
178
178
|
end
|
179
|
+
|
180
|
+
context 'A model with nil values' do
|
181
|
+
setup do
|
182
|
+
@user = User.create
|
183
|
+
end
|
184
|
+
should 'save a new version wihout saving the model and rollback to the latest attributes' do
|
185
|
+
@user.fname = 'Aaron'
|
186
|
+
@user.save_version
|
187
|
+
@user.reload.rollback(:latest)
|
188
|
+
assert_equal @user.fname, 'Aaron'
|
189
|
+
end
|
190
|
+
end
|
179
191
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mm-versionable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -145,21 +145,21 @@ executables: []
|
|
145
145
|
extensions: []
|
146
146
|
extra_rdoc_files: []
|
147
147
|
files:
|
148
|
-
- lib/versionable/models/version.rb
|
149
148
|
- lib/versionable/plugins/versionable.rb
|
149
|
+
- lib/versionable/models/version.rb
|
150
150
|
- lib/versionable/version.rb
|
151
151
|
- lib/versionable.rb
|
152
152
|
- config.ru
|
153
153
|
- Gemfile
|
154
154
|
- Rakefile
|
155
155
|
- README.md
|
156
|
+
- test/test_helper.rb
|
157
|
+
- test/models/user.rb
|
158
|
+
- test/models/post.rb
|
156
159
|
- test/config/config.rb
|
157
160
|
- test/config/database.yml
|
158
|
-
- test/models/post.rb
|
159
|
-
- test/models/user.rb
|
160
|
-
- test/performance/read_write.rb
|
161
|
-
- test/test_helper.rb
|
162
161
|
- test/unit/test_versioning.rb
|
162
|
+
- test/performance/read_write.rb
|
163
163
|
homepage: http://github.com/dhruvasagar/mm-versionable
|
164
164
|
licenses: []
|
165
165
|
post_install_message:
|
@@ -172,29 +172,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
172
|
- - ! '>='
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
hash: -2921783502865972979
|
178
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
176
|
none: false
|
180
177
|
requirements:
|
181
178
|
- - ! '>='
|
182
179
|
- !ruby/object:Gem::Version
|
183
180
|
version: '0'
|
184
|
-
segments:
|
185
|
-
- 0
|
186
|
-
hash: -2921783502865972979
|
187
181
|
requirements: []
|
188
182
|
rubyforge_project:
|
189
|
-
rubygems_version: 1.8.
|
183
|
+
rubygems_version: 1.8.24
|
190
184
|
signing_key:
|
191
185
|
specification_version: 3
|
192
186
|
summary: A MongoMapper extension adding Versioning
|
193
187
|
test_files:
|
188
|
+
- test/test_helper.rb
|
189
|
+
- test/models/user.rb
|
190
|
+
- test/models/post.rb
|
194
191
|
- test/config/config.rb
|
195
192
|
- test/config/database.yml
|
196
|
-
- test/models/post.rb
|
197
|
-
- test/models/user.rb
|
198
|
-
- test/performance/read_write.rb
|
199
|
-
- test/test_helper.rb
|
200
193
|
- test/unit/test_versioning.rb
|
194
|
+
- test/performance/read_write.rb
|