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 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.each do |key|
94
- self.send(:"#{key}=", version.data[key])
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
 
@@ -1,3 +1,3 @@
1
1
  module Versionable
2
- VERSION = '0.2.8'
2
+ VERSION = '0.2.9'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $LOAD_PATH.unshift('.') unless $LOAD_PATH.include?('.')
2
2
 
3
3
  require File.expand_path(File.dirname(__FILE__) + '/../lib/versionable')
4
+ require 'test/unit'
4
5
  require 'test/config/config'
5
6
 
6
7
  require 'pp'
@@ -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.8
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-04-07 00:00:00.000000000 Z
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.21
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