mongoid-list 0.1.8 → 0.2.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.
- data/Guardfile +4 -8
- data/lib/mongoid/list.rb +5 -1
- data/lib/mongoid/list/collection.rb +3 -5
- data/lib/mongoid/list/embedded.rb +2 -3
- data/lib/mongoid/list/version.rb +1 -1
- data/mongoid-list.gemspec +11 -11
- data/mongoid.yml +12 -0
- data/spec/mongoid/list/collection_spec.rb +147 -0
- data/spec/mongoid/list/embedded_spec.rb +181 -0
- data/spec/mongoid/list_spec.rb +844 -0
- data/spec/spec_helper.rb +66 -0
- data/spec/support/models/container.rb +8 -0
- data/{test → spec}/support/models/embedded.rb +0 -0
- data/{test → spec}/support/models/embedded_deeply.rb +0 -0
- data/{test → spec}/support/models/scoped.rb +0 -0
- data/{test → spec}/support/models/scoped_embedded.rb +0 -0
- data/{test → spec}/support/models/simple.rb +0 -0
- metadata +47 -62
- data/test/mongoid/list/collection_test.rb +0 -141
- data/test/mongoid/list/embedded_test.rb +0 -174
- data/test/mongoid/list_test.rb +0 -869
- data/test/support/models/container.rb +0 -8
- data/test/test_helper.rb +0 -27
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spork'
|
3
|
+
|
4
|
+
#uncomment the following line to use spork with the debugger
|
5
|
+
#require 'spork/ext/ruby-debug'
|
6
|
+
|
7
|
+
Spork.prefork do
|
8
|
+
# Loading more in this block will cause your tests to run faster. However,
|
9
|
+
# if you change any configuration or code from libraries loaded here, you'll
|
10
|
+
# need to restart spork for it take effect.
|
11
|
+
#
|
12
|
+
require 'rspec'
|
13
|
+
require 'mongoid'
|
14
|
+
require 'mongoid-list'
|
15
|
+
require 'database_cleaner'
|
16
|
+
|
17
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
18
|
+
|
19
|
+
RSpec.configure do |config|
|
20
|
+
|
21
|
+
config.before(:suite) do
|
22
|
+
Mongoid.load!("mongoid.yml", :test)
|
23
|
+
DatabaseCleaner[:mongoid].strategy = :truncation
|
24
|
+
end
|
25
|
+
|
26
|
+
config.after(:each) do
|
27
|
+
DatabaseCleaner.clean
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
Spork.each_run do
|
35
|
+
# This code will be run each time you run your specs.
|
36
|
+
end
|
37
|
+
|
38
|
+
# --- Instructions ---
|
39
|
+
# Sort the contents of this file into a Spork.prefork and a Spork.each_run
|
40
|
+
# block.
|
41
|
+
#
|
42
|
+
# The Spork.prefork block is run only once when the spork server is started.
|
43
|
+
# You typically want to place most of your (slow) initializer code in here, in
|
44
|
+
# particular, require'ing any 3rd-party gems that you don't normally modify
|
45
|
+
# during development.
|
46
|
+
#
|
47
|
+
# The Spork.each_run block is run each time you run your specs. In case you
|
48
|
+
# need to load files that tend to change during development, require them here.
|
49
|
+
# With Rails, your application modules are loaded automatically, so sometimes
|
50
|
+
# this block can remain empty.
|
51
|
+
#
|
52
|
+
# Note: You can modify files loaded *from* the Spork.each_run block without
|
53
|
+
# restarting the spork server. However, this file itself will not be reloaded,
|
54
|
+
# so if you change any of the code inside the each_run block, you still need to
|
55
|
+
# restart the server. In general, if you have non-trivial code in this file,
|
56
|
+
# it's advisable to move it into a separate file so you can easily edit it
|
57
|
+
# without restarting spork. (For example, with RSpec, you could move
|
58
|
+
# non-trivial code into a file spec/support/my_helper.rb, making sure that the
|
59
|
+
# spec/support/* files are require'd from inside the each_run block.)
|
60
|
+
#
|
61
|
+
# Any code that is left outside the two blocks will be run during preforking
|
62
|
+
# *and* during each_run -- that's probably not what you want.
|
63
|
+
#
|
64
|
+
# These instructions should self-destruct in 10 seconds. If they don't, feel
|
65
|
+
# free to delete them.
|
66
|
+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,15 +26,15 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 3.0.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: rspec
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: 2.13.0
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,15 +42,15 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 2.13.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: guard
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
51
|
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 1.8.0
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,15 +58,15 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.8.0
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: guard-rspec
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
67
|
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 2.5.0
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,31 +74,15 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 2.5.0
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name: spork
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 1.0.0.rc
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 1.0.0.rc
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: spork-testunit
|
79
|
+
name: guard-spork
|
96
80
|
requirement: !ruby/object:Gem::Requirement
|
97
81
|
none: false
|
98
82
|
requirements:
|
99
83
|
- - ! '>='
|
100
84
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
85
|
+
version: 1.5.0
|
102
86
|
type: :development
|
103
87
|
prerelease: false
|
104
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,15 +90,15 @@ dependencies:
|
|
106
90
|
requirements:
|
107
91
|
- - ! '>='
|
108
92
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
93
|
+
version: 1.5.0
|
110
94
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
95
|
+
name: listen
|
112
96
|
requirement: !ruby/object:Gem::Requirement
|
113
97
|
none: false
|
114
98
|
requirements:
|
115
99
|
- - ! '>='
|
116
100
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
101
|
+
version: 1.0.0
|
118
102
|
type: :development
|
119
103
|
prerelease: false
|
120
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,31 +106,31 @@ dependencies:
|
|
122
106
|
requirements:
|
123
107
|
- - ! '>='
|
124
108
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.
|
109
|
+
version: 1.0.0
|
126
110
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
111
|
+
name: database_cleaner
|
128
112
|
requirement: !ruby/object:Gem::Requirement
|
129
113
|
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.
|
117
|
+
version: 0.9.0
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
121
|
none: false
|
138
122
|
requirements:
|
139
|
-
- -
|
123
|
+
- - ~>
|
140
124
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0.
|
125
|
+
version: 0.9.0
|
142
126
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
127
|
+
name: rspecify
|
144
128
|
requirement: !ruby/object:Gem::Requirement
|
145
129
|
none: false
|
146
130
|
requirements:
|
147
131
|
- - ! '>='
|
148
132
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0
|
133
|
+
version: '0'
|
150
134
|
type: :development
|
151
135
|
prerelease: false
|
152
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -154,7 +138,7 @@ dependencies:
|
|
154
138
|
requirements:
|
155
139
|
- - ! '>='
|
156
140
|
- !ruby/object:Gem::Version
|
157
|
-
version: 0
|
141
|
+
version: '0'
|
158
142
|
description:
|
159
143
|
email: dave@davekrupinski.com
|
160
144
|
executables: []
|
@@ -176,16 +160,17 @@ files:
|
|
176
160
|
- lib/mongoid/list/version.rb
|
177
161
|
- lib/mongoid/relations/embedded/many_list_extension.rb
|
178
162
|
- mongoid-list.gemspec
|
179
|
-
-
|
180
|
-
-
|
181
|
-
-
|
182
|
-
-
|
183
|
-
-
|
184
|
-
-
|
185
|
-
-
|
186
|
-
-
|
187
|
-
-
|
188
|
-
-
|
163
|
+
- mongoid.yml
|
164
|
+
- spec/mongoid/list/collection_spec.rb
|
165
|
+
- spec/mongoid/list/embedded_spec.rb
|
166
|
+
- spec/mongoid/list_spec.rb
|
167
|
+
- spec/spec_helper.rb
|
168
|
+
- spec/support/models/container.rb
|
169
|
+
- spec/support/models/embedded.rb
|
170
|
+
- spec/support/models/embedded_deeply.rb
|
171
|
+
- spec/support/models/scoped.rb
|
172
|
+
- spec/support/models/scoped_embedded.rb
|
173
|
+
- spec/support/models/simple.rb
|
189
174
|
homepage: https://github.com/davekrupinski/mongoid-list
|
190
175
|
licenses: []
|
191
176
|
post_install_message:
|
@@ -211,13 +196,13 @@ signing_key:
|
|
211
196
|
specification_version: 3
|
212
197
|
summary: Simple list behavior for Mongoid
|
213
198
|
test_files:
|
214
|
-
-
|
215
|
-
-
|
216
|
-
-
|
217
|
-
-
|
218
|
-
-
|
219
|
-
-
|
220
|
-
-
|
221
|
-
-
|
222
|
-
-
|
223
|
-
-
|
199
|
+
- spec/mongoid/list/collection_spec.rb
|
200
|
+
- spec/mongoid/list/embedded_spec.rb
|
201
|
+
- spec/mongoid/list_spec.rb
|
202
|
+
- spec/spec_helper.rb
|
203
|
+
- spec/support/models/container.rb
|
204
|
+
- spec/support/models/embedded.rb
|
205
|
+
- spec/support/models/embedded_deeply.rb
|
206
|
+
- spec/support/models/scoped.rb
|
207
|
+
- spec/support/models/scoped_embedded.rb
|
208
|
+
- spec/support/models/simple.rb
|
@@ -1,141 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe Mongoid::List::Collection do
|
4
|
-
|
5
|
-
describe "#initialization" do
|
6
|
-
|
7
|
-
let :simple do
|
8
|
-
Simple.create
|
9
|
-
end
|
10
|
-
|
11
|
-
let :collection do
|
12
|
-
Mongoid::List::Collection.new(simple)
|
13
|
-
end
|
14
|
-
|
15
|
-
should "assign @simple to :obj" do
|
16
|
-
assert_equal simple, collection.obj
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
describe "#count" do
|
24
|
-
|
25
|
-
context "when unscoped" do
|
26
|
-
|
27
|
-
let :collection do
|
28
|
-
Mongoid::List::Collection.new(Simple.new)
|
29
|
-
end
|
30
|
-
|
31
|
-
setup do
|
32
|
-
5.times { Simple.create }
|
33
|
-
end
|
34
|
-
|
35
|
-
should "be 5" do
|
36
|
-
assert_equal 5, collection.count
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
context "when scoped" do
|
43
|
-
|
44
|
-
setup do
|
45
|
-
4.times { Scoped.create(group: "airplane 1") }
|
46
|
-
3.times { Scoped.create(group: "airplane 2") }
|
47
|
-
end
|
48
|
-
|
49
|
-
context "group 1" do
|
50
|
-
|
51
|
-
let :collection do
|
52
|
-
Mongoid::List::Collection.new(Scoped.new(group: "airplane 1"))
|
53
|
-
end
|
54
|
-
|
55
|
-
should "be 4" do
|
56
|
-
assert_equal 4, collection.count
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
context "group 2" do
|
62
|
-
|
63
|
-
let :collection do
|
64
|
-
Mongoid::List::Collection.new(Scoped.new(group: "airplane 2"))
|
65
|
-
end
|
66
|
-
|
67
|
-
should "be 3" do
|
68
|
-
assert_equal 3, collection.count
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
76
|
-
|
77
|
-
|
78
|
-
describe "#update_positions_in_list!" do
|
79
|
-
|
80
|
-
context "unscoped" do
|
81
|
-
|
82
|
-
setup do
|
83
|
-
@obj1 = Simple.create
|
84
|
-
@obj2 = Simple.create
|
85
|
-
@obj3 = Simple.create
|
86
|
-
Simple.update_positions_in_list!([ @obj2.id, @obj1.id, @obj3.id ])
|
87
|
-
end
|
88
|
-
|
89
|
-
should "change @obj1 from :position of 1 to 2" do
|
90
|
-
assert_equal 1, @obj1.position
|
91
|
-
assert_equal 2, @obj1.reload.position
|
92
|
-
end
|
93
|
-
|
94
|
-
should "change @obj2 from :position of 2 to 1" do
|
95
|
-
assert_equal 2, @obj2.position
|
96
|
-
assert_equal 1, @obj2.reload.position
|
97
|
-
end
|
98
|
-
|
99
|
-
should "not change @obj3 from :position of 3" do
|
100
|
-
assert_equal 3, @obj3.position
|
101
|
-
assert_equal 3, @obj3.reload.position
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
|
106
|
-
context "scoped" do
|
107
|
-
|
108
|
-
setup do
|
109
|
-
@obj1 = Scoped.create(group: "hell's angels")
|
110
|
-
@obj2 = Scoped.create(group: "hell's angels")
|
111
|
-
@obj3 = Scoped.create(group: "hell's angels")
|
112
|
-
@other = Scoped.create(group: "charlie's angels")
|
113
|
-
|
114
|
-
Scoped.update_positions_in_list!([ @obj3.id, @obj2.id, @obj1.id ])
|
115
|
-
end
|
116
|
-
|
117
|
-
should "change @obj1 from :position of 1 to 3" do
|
118
|
-
assert_equal 1, @obj1.position
|
119
|
-
assert_equal 3, @obj1.reload.position
|
120
|
-
end
|
121
|
-
|
122
|
-
should "not change @obj2 from :position of 2" do
|
123
|
-
assert_equal 2, @obj2.position
|
124
|
-
assert_equal 2, @obj2.reload.position
|
125
|
-
end
|
126
|
-
|
127
|
-
should "change @obj3 from :position of 3 to 1" do
|
128
|
-
assert_equal 3, @obj3.position
|
129
|
-
assert_equal 1, @obj3.reload.position
|
130
|
-
end
|
131
|
-
|
132
|
-
should "not have touched @other scoped" do
|
133
|
-
assert_equal 1, @other.position
|
134
|
-
assert_equal 1, @other.reload.position
|
135
|
-
end
|
136
|
-
|
137
|
-
end
|
138
|
-
|
139
|
-
end
|
140
|
-
|
141
|
-
end
|