mongoid-undo 0.6.0 → 0.7.0
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.
- checksums.yaml +15 -0
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/lib/mongoid/undo/version.rb +1 -1
- data/test/mongoid.yml +8 -0
- data/test/test_helper.rb +11 -0
- data/test/undo_test.rb +90 -0
- metadata +16 -23
- data/spec/spec_helper.rb +0 -11
- data/spec/support/connection.rb +0 -3
- data/spec/support/document.rb +0 -13
- data/spec/undo_spec.rb +0 -173
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MGFkMDA3YTAxYTVkMDhjZjQ3ZDYzYTk4OWI5YjRlYTZlNDAzMTQ5Ng==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjRmYTkwODJhNTg3YTA1M2QxZTNlOTExMmQzNDM5MTM1MzA2YWEyYg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OThlNzY1ZDIxOTNmNzVhMzJkNGY1YmNjOTU4NTU3YjkzNTUxOTZhNzdjN2Mx
|
10
|
+
OTc1MzhkZTdiM2RhNTY4Yzk2NjAwN2M3YzEzNTE3NjNkZjgyZjI4ZDQzNDk5
|
11
|
+
MzllZDUzN2I3ZWY4ZDMyYmI4MjZkNTI5OTc3NzBmYjE5M2Y1OTY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OGEyNDc3MzMyNjlhM2ViMmE3NzU1MGNkODFjYjRjMTcxMzM0ZDE3YTFkMmM3
|
14
|
+
MTk4ODJhZWQ2YzFkNDFhOTY1MGM3MmU2NDEwZWVlNTEwYmU4OTE1MjQ0OGQ5
|
15
|
+
NmZjOTIxNTQ3MzA2ZGFiMmU2N2QwY2M3YmZlMGYwODk5YzRmODU=
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# 0.7.0 (February 8, 2014)
|
2
|
+
* Simpler tests.
|
3
|
+
|
4
|
+
# 0.6.0 (February 15, 2013)
|
5
|
+
* Updated Gemfile for Bundler 1.2.4+.
|
6
|
+
* Easier mongoid config.
|
7
|
+
|
1
8
|
# 0.5.0 (February 14, 2013)
|
2
9
|
* Use Rake::FileList.
|
3
10
|
* \#1 Removed localization monkey patch. mongoid >= 3.0.10 is now required!
|
data/README.md
CHANGED
@@ -84,7 +84,7 @@ gem 'mongoid-undo'
|
|
84
84
|
|
85
85
|
(The MIT license)
|
86
86
|
|
87
|
-
Copyright (c) 2012 -
|
87
|
+
Copyright (c) 2012 - 2014 Mario Uher
|
88
88
|
|
89
89
|
Permission is hereby granted, free of charge, to any person obtaining
|
90
90
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
data/lib/mongoid/undo/version.rb
CHANGED
data/test/mongoid.yml
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
$: << File.expand_path('../../lib', __FILE__)
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'minitest/pride'
|
4
|
+
|
5
|
+
require 'mongoid/undo'
|
6
|
+
|
7
|
+
Mongoid.load!(File.expand_path('../mongoid.yml', __FILE__), 'test')
|
8
|
+
|
9
|
+
class Minitest::Test
|
10
|
+
alias_method :assert_not, :refute
|
11
|
+
end
|
data/test/undo_test.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
|
3
|
+
class Document
|
4
|
+
include Mongoid::Document
|
5
|
+
include Mongoid::Undo
|
6
|
+
|
7
|
+
field :name, type: String
|
8
|
+
end
|
9
|
+
|
10
|
+
class Localized
|
11
|
+
include Mongoid::Document
|
12
|
+
include Mongoid::Undo
|
13
|
+
|
14
|
+
field :language, localize: true, type: String
|
15
|
+
end
|
16
|
+
|
17
|
+
class UndoTest < Minitest::Test
|
18
|
+
def test_create
|
19
|
+
document = Document.create(name: 'foo')
|
20
|
+
assert_equal :create, document.action
|
21
|
+
assert_equal 1, document.version
|
22
|
+
assert document.persisted?
|
23
|
+
|
24
|
+
document.undo
|
25
|
+
assert_equal :create, document.action
|
26
|
+
assert_equal 1, document.version
|
27
|
+
assert_not document.persisted?
|
28
|
+
|
29
|
+
document.redo
|
30
|
+
assert_equal :create, document.action
|
31
|
+
assert_equal 1, document.version
|
32
|
+
assert document.persisted?
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def test_update
|
37
|
+
document = Document.create(name: 'foo')
|
38
|
+
|
39
|
+
document.update_attributes name: 'bar'
|
40
|
+
assert_equal :update, document.action
|
41
|
+
assert_equal 2, document.version
|
42
|
+
assert_equal 'bar', document.name
|
43
|
+
|
44
|
+
document.undo
|
45
|
+
assert_equal :update, document.action
|
46
|
+
assert_equal 3, document.version
|
47
|
+
assert_equal 'foo', document.name
|
48
|
+
|
49
|
+
document.redo
|
50
|
+
assert_equal :update, document.action
|
51
|
+
assert_equal 4, document.version
|
52
|
+
assert_equal 'bar', document.name
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def test_destroy
|
57
|
+
document = Document.create(name: 'foo')
|
58
|
+
|
59
|
+
document.destroy
|
60
|
+
assert_equal :destroy, document.action
|
61
|
+
assert_not document.persisted?
|
62
|
+
|
63
|
+
document.undo
|
64
|
+
assert_equal :destroy, document.action
|
65
|
+
assert document.persisted?
|
66
|
+
|
67
|
+
document.redo
|
68
|
+
assert_equal :destroy, document.action
|
69
|
+
assert_not document.persisted?
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
def test_redo_equals_to_undo
|
74
|
+
document = Document.create(name: 'foo')
|
75
|
+
|
76
|
+
assert_equal document.method(:undo), document.method(:redo)
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
def test_localized_attributes
|
81
|
+
document = Localized.create(language: 'English')
|
82
|
+
|
83
|
+
document.update_attributes language: 'English Updated'
|
84
|
+
document.undo
|
85
|
+
assert_equal 'English', document.language
|
86
|
+
|
87
|
+
document.redo
|
88
|
+
assert_equal 'English Updated', document.language
|
89
|
+
end
|
90
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-undo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.6.0
|
4
|
+
version: 0.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mario Uher
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-02-07 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
16
|
-
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
17
|
- - ! '>='
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: '0'
|
21
|
-
none: false
|
22
20
|
type: :runtime
|
23
|
-
|
24
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
23
|
requirements:
|
26
24
|
- - ! '>='
|
27
25
|
- !ruby/object:Gem::Version
|
28
26
|
version: '0'
|
29
|
-
none: false
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
|
32
|
-
|
28
|
+
name: mongoid
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
33
30
|
requirements:
|
34
31
|
- - ! '>='
|
35
32
|
- !ruby/object:Gem::Version
|
@@ -37,10 +34,9 @@ dependencies:
|
|
37
34
|
- - <
|
38
35
|
- !ruby/object:Gem::Version
|
39
36
|
version: '4.0'
|
40
|
-
none: false
|
41
37
|
type: :runtime
|
42
|
-
|
43
|
-
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
40
|
requirements:
|
45
41
|
- - ! '>='
|
46
42
|
- !ruby/object:Gem::Version
|
@@ -48,7 +44,6 @@ dependencies:
|
|
48
44
|
- - <
|
49
45
|
- !ruby/object:Gem::Version
|
50
46
|
version: '4.0'
|
51
|
-
none: false
|
52
47
|
description: mongoid-undo provides a super simple and easy to use undo system for
|
53
48
|
Mongoid apps.
|
54
49
|
email: uher.mario@gmail.com
|
@@ -64,12 +59,12 @@ files:
|
|
64
59
|
- lib/mongoid/undo.rb
|
65
60
|
- lib/mongoid/undo/version.rb
|
66
61
|
- mongoid-undo.gemspec
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
- spec/undo_spec.rb
|
62
|
+
- test/mongoid.yml
|
63
|
+
- test/test_helper.rb
|
64
|
+
- test/undo_test.rb
|
71
65
|
homepage: https://github.com/haihappen/mongoid-undo
|
72
66
|
licenses: []
|
67
|
+
metadata: {}
|
73
68
|
post_install_message:
|
74
69
|
rdoc_options: []
|
75
70
|
require_paths:
|
@@ -79,17 +74,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
74
|
- - ! '>='
|
80
75
|
- !ruby/object:Gem::Version
|
81
76
|
version: '0'
|
82
|
-
none: false
|
83
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
78
|
requirements:
|
85
79
|
- - ! '>='
|
86
80
|
- !ruby/object:Gem::Version
|
87
81
|
version: '0'
|
88
|
-
none: false
|
89
82
|
requirements: []
|
90
83
|
rubyforge_project:
|
91
|
-
rubygems_version: 1.
|
84
|
+
rubygems_version: 2.1.11
|
92
85
|
signing_key:
|
93
|
-
specification_version:
|
86
|
+
specification_version: 4
|
94
87
|
summary: Super simple undo for your Mongoid app.
|
95
88
|
test_files: []
|
data/spec/spec_helper.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
$: << File.expand_path('../../lib', __FILE__)
|
2
|
-
|
3
|
-
require 'minitest/autorun'
|
4
|
-
require 'minitest/pride'
|
5
|
-
require 'minitest/spec'
|
6
|
-
|
7
|
-
require 'mongoid/undo'
|
8
|
-
|
9
|
-
# Load support *.rb files in ./support
|
10
|
-
Dir[File.expand_path('../support/*.rb', __FILE__)].each { |file| require_relative file }
|
11
|
-
|
data/spec/support/connection.rb
DELETED
data/spec/support/document.rb
DELETED
data/spec/undo_spec.rb
DELETED
@@ -1,173 +0,0 @@
|
|
1
|
-
require File.expand_path('../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe Mongoid::Undo do
|
4
|
-
subject { Document.new(name: 'foo') }
|
5
|
-
|
6
|
-
|
7
|
-
describe 'creating' do
|
8
|
-
before { subject.save }
|
9
|
-
|
10
|
-
|
11
|
-
it 'sets action to :create' do
|
12
|
-
subject.action.must_equal :create
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
describe 'undoing' do
|
17
|
-
before { subject.undo }
|
18
|
-
|
19
|
-
|
20
|
-
it 'deletes' do
|
21
|
-
subject.persisted?.wont_equal true
|
22
|
-
end
|
23
|
-
|
24
|
-
|
25
|
-
it 'keeps :create action' do
|
26
|
-
subject.action.must_equal :create
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
|
-
describe 'redoing' do
|
31
|
-
before { subject.redo }
|
32
|
-
|
33
|
-
|
34
|
-
it 'restores' do
|
35
|
-
subject.persisted?.must_equal true
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
it 'keeps :create action' do
|
40
|
-
subject.action.must_equal :create
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
describe 'updating' do
|
47
|
-
before { subject.update_attributes(name: 'bar') }
|
48
|
-
|
49
|
-
|
50
|
-
it 'sets action to :update' do
|
51
|
-
subject.action.must_equal :update
|
52
|
-
end
|
53
|
-
|
54
|
-
|
55
|
-
describe 'undoing' do
|
56
|
-
before { subject.undo }
|
57
|
-
|
58
|
-
|
59
|
-
it 'retrieves' do
|
60
|
-
subject.name.must_equal 'foo'
|
61
|
-
end
|
62
|
-
|
63
|
-
|
64
|
-
it 'saves a new version' do
|
65
|
-
subject.version.must_equal 3
|
66
|
-
end
|
67
|
-
|
68
|
-
|
69
|
-
it 'keeps :update action' do
|
70
|
-
subject.action.must_equal :update
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
describe 'redoing' do
|
75
|
-
before { subject.redo }
|
76
|
-
|
77
|
-
|
78
|
-
it 'retrieves' do
|
79
|
-
subject.name.must_equal 'bar'
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
it 'saves a new version' do
|
84
|
-
subject.version.must_equal 4
|
85
|
-
end
|
86
|
-
|
87
|
-
|
88
|
-
it 'keeps :update action' do
|
89
|
-
subject.action.must_equal :update
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
|
96
|
-
describe 'destroying' do
|
97
|
-
before { subject.destroy }
|
98
|
-
|
99
|
-
|
100
|
-
it 'sets action to :destroy' do
|
101
|
-
subject.action.must_equal :destroy
|
102
|
-
end
|
103
|
-
|
104
|
-
|
105
|
-
it 'marks as destroyed' do
|
106
|
-
subject.persisted?.must_equal false
|
107
|
-
end
|
108
|
-
|
109
|
-
|
110
|
-
describe 'undoing' do
|
111
|
-
before { subject.undo }
|
112
|
-
|
113
|
-
|
114
|
-
it 'restores' do
|
115
|
-
subject.persisted?.wont_equal false
|
116
|
-
end
|
117
|
-
|
118
|
-
|
119
|
-
it 'keeps :destroy action' do
|
120
|
-
subject.action.must_equal :destroy
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
describe 'redoing' do
|
125
|
-
before { subject.redo }
|
126
|
-
|
127
|
-
|
128
|
-
it 'deletes' do
|
129
|
-
subject.persisted?.must_equal false
|
130
|
-
end
|
131
|
-
|
132
|
-
|
133
|
-
it 'keeps :destroy action' do
|
134
|
-
subject.action.must_equal :destroy
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
|
142
|
-
describe :redo do
|
143
|
-
it 'is a convenient alias for undo' do
|
144
|
-
subject.method(:redo).must_equal subject.method(:undo)
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
|
149
|
-
describe :action do
|
150
|
-
it 'is a symbol' do
|
151
|
-
subject.fields['action'].options[:type].must_equal Symbol
|
152
|
-
end
|
153
|
-
|
154
|
-
|
155
|
-
it 'is versionless' do
|
156
|
-
subject.fields['action'].options[:versioned].must_equal false
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
|
161
|
-
describe 'localization' do
|
162
|
-
it 'works too with localized fields' do
|
163
|
-
subject = Localized.create(language: 'English')
|
164
|
-
|
165
|
-
subject.update_attributes(language: 'English Updated')
|
166
|
-
subject.undo
|
167
|
-
subject.language.must_equal 'English'
|
168
|
-
|
169
|
-
subject.redo
|
170
|
-
subject.language.must_equal 'English Updated'
|
171
|
-
end
|
172
|
-
end
|
173
|
-
end
|