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 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