mongoid-history 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/mongoid/history/tracker.rb +6 -2
- data/mongoid-history.gemspec +1 -1
- data/spec/integration/integration_spec.rb +23 -8
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
@@ -20,15 +20,19 @@ module Mongoid::History
|
|
20
20
|
module ClassMethods
|
21
21
|
end
|
22
22
|
|
23
|
-
def undo!
|
23
|
+
def undo!(modifier)
|
24
24
|
undo_hash = affected.easy_unmerge(modified)
|
25
25
|
undo_hash.easy_merge!(original)
|
26
|
+
modifier_field = trackable.history_trackable_options[:modifier_field]
|
27
|
+
undo_hash[modifier_field] = modifier
|
26
28
|
trackable.update_attributes!(undo_hash)
|
27
29
|
end
|
28
30
|
|
29
|
-
def redo!
|
31
|
+
def redo!(modifier)
|
30
32
|
redo_hash = affected.easy_unmerge(original)
|
31
33
|
redo_hash.easy_merge!(modified)
|
34
|
+
modifier_field = trackable.history_trackable_options[:modifier_field]
|
35
|
+
redo_hash[modifier_field] = modifier
|
32
36
|
trackable.update_attributes!(redo_hash)
|
33
37
|
end
|
34
38
|
|
data/mongoid-history.gemspec
CHANGED
@@ -206,23 +206,30 @@ describe Mongoid::History do
|
|
206
206
|
describe "non-embedded" do
|
207
207
|
it "should undo changes" do
|
208
208
|
@post.update_attributes(:title => "Test2")
|
209
|
-
@post.history_tracks.where(:version => 1).first.undo!
|
209
|
+
@post.history_tracks.where(:version => 1).first.undo!(@user)
|
210
210
|
@post.reload
|
211
211
|
@post.title.should == "Test"
|
212
212
|
end
|
213
213
|
|
214
214
|
it "should create a new history track after undo" do
|
215
215
|
@post.update_attributes(:title => "Test2")
|
216
|
-
@post.history_tracks.where(:version => 1).first.undo!
|
216
|
+
@post.history_tracks.where(:version => 1).first.undo!(@user)
|
217
217
|
@post.reload
|
218
218
|
@post.history_tracks.count.should == 2
|
219
219
|
end
|
220
220
|
|
221
|
+
it "should assign @user as the modifier of the newly created history track" do
|
222
|
+
@post.update_attributes(:title => "Test2")
|
223
|
+
@post.history_tracks.where(:version => 1).first.undo!(@user)
|
224
|
+
@post.reload
|
225
|
+
@post.history_tracks.where(:version => 2).first.modifier.should == @user
|
226
|
+
end
|
227
|
+
|
221
228
|
it "should stay the same after undo and redo" do
|
222
229
|
@post.update_attributes(:title => "Test2")
|
223
230
|
@track = @post.history_tracks.where(:version => 1).first
|
224
|
-
@track.undo!
|
225
|
-
@track.redo!
|
231
|
+
@track.undo!(@user)
|
232
|
+
@track.redo!(@user)
|
226
233
|
@post2 = Post.where(:_id => @post.id).first
|
227
234
|
|
228
235
|
@post.title.should == @post2.title
|
@@ -232,7 +239,7 @@ describe Mongoid::History do
|
|
232
239
|
describe "embedded" do
|
233
240
|
it "should undo changes" do
|
234
241
|
@comment.update_attributes(:title => "Test2")
|
235
|
-
@comment.history_tracks.where(:version => 2).first.undo!
|
242
|
+
@comment.history_tracks.where(:version => 2).first.undo!(@user)
|
236
243
|
# reloading an embedded document === KAMIKAZE
|
237
244
|
# at least for the current release of mongoid...
|
238
245
|
@post.reload
|
@@ -242,17 +249,25 @@ describe Mongoid::History do
|
|
242
249
|
|
243
250
|
it "should create a new history track after undo" do
|
244
251
|
@comment.update_attributes(:title => "Test2")
|
245
|
-
@comment.history_tracks.where(:version => 2).first.undo!
|
252
|
+
@comment.history_tracks.where(:version => 2).first.undo!(@user)
|
246
253
|
@post.reload
|
247
254
|
@comment = @post.comments.first
|
248
255
|
@comment.history_tracks.count.should == 3
|
249
256
|
end
|
250
257
|
|
258
|
+
it "should assign @user as the modifier of the newly created history track" do
|
259
|
+
@comment.update_attributes(:title => "Test2")
|
260
|
+
@comment.history_tracks.where(:version => 2).first.undo!(@user)
|
261
|
+
@post.reload
|
262
|
+
@comment = @post.comments.first
|
263
|
+
@comment.history_tracks.where(:version => 3).first.modifier.should == @user
|
264
|
+
end
|
265
|
+
|
251
266
|
it "should stay the same after undo and redo" do
|
252
267
|
@comment.update_attributes(:title => "Test2")
|
253
268
|
@track = @comment.history_tracks.where(:version => 2).first
|
254
|
-
@track.undo!
|
255
|
-
@track.redo!
|
269
|
+
@track.undo!(@user)
|
270
|
+
@track.redo!(@user)
|
256
271
|
@post2 = Post.where(:_id => @post.id).first
|
257
272
|
@comment2 = @post2.comments.first
|
258
273
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mongoid-history
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Aaron Qian
|
@@ -167,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
167
|
requirements:
|
168
168
|
- - ">="
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
hash: -
|
170
|
+
hash: -4589189191115367559
|
171
171
|
segments:
|
172
172
|
- 0
|
173
173
|
version: "0"
|