mm-versionable 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|