database_cleaner 1.4.1 → 1.5.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 +4 -4
- data/Gemfile.lock +20 -31
- data/README.markdown +31 -5
- data/VERSION.yml +2 -2
- data/examples/Gemfile +1 -56
- data/examples/Gemfile.lock +20 -31
- data/lib/database_cleaner/active_record/deletion.rb +3 -3
- data/lib/database_cleaner/active_record/transaction.rb +17 -15
- data/lib/database_cleaner/active_record/truncation.rb +8 -8
- data/lib/database_cleaner/configuration.rb +1 -1
- data/lib/database_cleaner/generic/base.rb +23 -20
- data/lib/database_cleaner/mongo/truncation.rb +9 -4
- data/lib/database_cleaner/mongoid/truncation.rb +7 -1
- data/lib/database_cleaner/moped/base.rb +4 -0
- data/lib/database_cleaner/moped/truncation_base.rb +9 -3
- data/lib/database_cleaner/neo4j/base.rb +5 -1
- data/lib/database_cleaner/sequel/truncation.rb +0 -0
- data/spec/database_cleaner/active_record/transaction_spec.rb +38 -0
- data/spec/database_cleaner/generic/base_spec.rb +41 -2
- data/spec/database_cleaner/neo4j/base_spec.rb +7 -0
- metadata +62 -49
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ee5d65788bad454f27cf157e4015b137c7f1df81
|
|
4
|
+
data.tar.gz: 824981f5faf89ee047760c5059f5ffc0315fd953
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 89fe47e944fa6151f788c80607472c72316db36b516ade7780c11e9830bb7d55e977601453d865775fdedaddcae6109d8c163288e6aeebd974efcdfc61c95dff
|
|
7
|
+
data.tar.gz: 93c1ebe47ddbe32f66524711cba00adb70e13c9a501d6cd8caaf785f17771a9e7625e65d73afecb2847dbeb8b367003c0aa99ab4362f2c161c89557251b38257
|
data/Gemfile.lock
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
database_cleaner (1.5.0)
|
|
5
|
+
|
|
1
6
|
GEM
|
|
2
7
|
remote: https://rubygems.org/
|
|
3
8
|
specs:
|
|
@@ -25,7 +30,6 @@ GEM
|
|
|
25
30
|
mysql2
|
|
26
31
|
activesupport (3.0.0)
|
|
27
32
|
addressable (2.3.6)
|
|
28
|
-
archive-tar-minitar (0.5.2)
|
|
29
33
|
arel (1.0.1)
|
|
30
34
|
activesupport (~> 3.0.0)
|
|
31
35
|
bcrypt (3.1.7)
|
|
@@ -40,7 +44,6 @@ GEM
|
|
|
40
44
|
bson (~> 1.11.1)
|
|
41
45
|
builder (2.1.2)
|
|
42
46
|
coderay (1.1.0)
|
|
43
|
-
columnize (0.8.9)
|
|
44
47
|
couch_potato (1.3.0)
|
|
45
48
|
activemodel
|
|
46
49
|
couchrest (~> 1.2.0)
|
|
@@ -101,8 +104,14 @@ GEM
|
|
|
101
104
|
uuidtools (~> 2.1)
|
|
102
105
|
dm-validations (1.2.0)
|
|
103
106
|
dm-core (~> 1.2.0)
|
|
107
|
+
do_jdbc (0.10.14-java)
|
|
108
|
+
data_objects (= 0.10.14)
|
|
104
109
|
do_sqlite3 (0.10.14)
|
|
105
110
|
data_objects (= 0.10.14)
|
|
111
|
+
do_sqlite3 (0.10.14-java)
|
|
112
|
+
data_objects (= 0.10.14)
|
|
113
|
+
do_jdbc (= 0.10.14)
|
|
114
|
+
jdbc-sqlite3 (>= 3.5.8)
|
|
106
115
|
erubis (2.6.6)
|
|
107
116
|
abstract (>= 1.0.0)
|
|
108
117
|
faraday (0.9.0)
|
|
@@ -131,13 +140,10 @@ GEM
|
|
|
131
140
|
multi_xml (>= 0.5.2)
|
|
132
141
|
httpclient (2.5.3.3)
|
|
133
142
|
i18n (0.4.2)
|
|
143
|
+
jdbc-sqlite3 (3.8.10.1)
|
|
134
144
|
json (1.8.1)
|
|
135
145
|
json (1.8.1-java)
|
|
136
146
|
json_pure (1.8.1)
|
|
137
|
-
linecache (0.46)
|
|
138
|
-
rbx-require-relative (> 0.0.4)
|
|
139
|
-
linecache19 (0.5.12)
|
|
140
|
-
ruby_core_source (>= 0.1.4)
|
|
141
147
|
listen (1.3.1)
|
|
142
148
|
rb-fsevent (>= 0.9.3)
|
|
143
149
|
rb-inotify (>= 0.9)
|
|
@@ -163,7 +169,7 @@ GEM
|
|
|
163
169
|
multi_xml (0.5.5)
|
|
164
170
|
multipart-post (2.0.0)
|
|
165
171
|
mysql (2.9.1)
|
|
166
|
-
mysql2 (0.3.
|
|
172
|
+
mysql2 (0.3.18)
|
|
167
173
|
neo4j-community (2.1.5)
|
|
168
174
|
neo4j-core (3.0.8)
|
|
169
175
|
activesupport
|
|
@@ -182,7 +188,7 @@ GEM
|
|
|
182
188
|
ohm (0.1.5)
|
|
183
189
|
nest (~> 1.0)
|
|
184
190
|
os (0.9.6)
|
|
185
|
-
pg (0.
|
|
191
|
+
pg (0.18.2)
|
|
186
192
|
plucky (0.5.2)
|
|
187
193
|
mongo (~> 1.5)
|
|
188
194
|
pry (0.10.1)
|
|
@@ -210,7 +216,6 @@ GEM
|
|
|
210
216
|
ffi (>= 0.5.0)
|
|
211
217
|
rb-kqueue (0.2.3)
|
|
212
218
|
ffi (>= 0.5.0)
|
|
213
|
-
rbx-require-relative (0.0.9)
|
|
214
219
|
rdoc (4.1.2)
|
|
215
220
|
json (~> 1.4)
|
|
216
221
|
redis (3.1.0)
|
|
@@ -230,28 +235,11 @@ GEM
|
|
|
230
235
|
activesupport (>= 3.0)
|
|
231
236
|
railties (>= 3.0)
|
|
232
237
|
rspec (~> 2.11.0)
|
|
233
|
-
ruby-debug (0.10.4)
|
|
234
|
-
columnize (>= 0.1)
|
|
235
|
-
ruby-debug-base (~> 0.10.4.0)
|
|
236
|
-
ruby-debug-base (0.10.4)
|
|
237
|
-
linecache (>= 0.3)
|
|
238
|
-
ruby-debug-base19 (0.11.25)
|
|
239
|
-
columnize (>= 0.3.1)
|
|
240
|
-
linecache19 (>= 0.5.11)
|
|
241
|
-
ruby_core_source (>= 0.1.4)
|
|
242
|
-
ruby-debug19 (0.11.6)
|
|
243
|
-
columnize (>= 0.3.1)
|
|
244
|
-
linecache19 (>= 0.5.11)
|
|
245
|
-
ruby-debug-base19 (>= 0.11.19)
|
|
246
|
-
ruby_core_source (0.1.5)
|
|
247
|
-
archive-tar-minitar (>= 0.5.2)
|
|
248
238
|
sequel (3.21.0)
|
|
249
239
|
slop (3.6.0)
|
|
250
240
|
spoon (0.0.4)
|
|
251
241
|
ffi
|
|
252
|
-
sqlite3 (1.3.
|
|
253
|
-
sqlite3-ruby (1.3.3)
|
|
254
|
-
sqlite3 (>= 1.3.3)
|
|
242
|
+
sqlite3 (1.3.10)
|
|
255
243
|
stringex (1.5.1)
|
|
256
244
|
thor (0.14.6)
|
|
257
245
|
tzinfo (0.3.41)
|
|
@@ -269,6 +257,7 @@ DEPENDENCIES
|
|
|
269
257
|
bundler
|
|
270
258
|
couch_potato
|
|
271
259
|
cucumber
|
|
260
|
+
database_cleaner!
|
|
272
261
|
datamapper
|
|
273
262
|
dm-migrations
|
|
274
263
|
dm-sqlite-adapter
|
|
@@ -285,10 +274,10 @@ DEPENDENCIES
|
|
|
285
274
|
ohm (~> 0.1.3)
|
|
286
275
|
pg
|
|
287
276
|
rake
|
|
288
|
-
rspec-rails
|
|
289
|
-
ruby-debug
|
|
290
|
-
ruby-debug19
|
|
277
|
+
rspec-rails (~> 2.11.0)
|
|
291
278
|
sequel (~> 3.21.0)
|
|
292
279
|
sqlite3
|
|
293
|
-
sqlite3-ruby
|
|
294
280
|
tzinfo
|
|
281
|
+
|
|
282
|
+
BUNDLED WITH
|
|
283
|
+
1.10.5
|
data/README.markdown
CHANGED
|
@@ -7,7 +7,7 @@ Each strategy is a small amount of code but is code that is usually needed in an
|
|
|
7
7
|
|
|
8
8
|
ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, CouchPotato, Ohm and Redis are supported.
|
|
9
9
|
|
|
10
|
-
[](https://travis-ci.org/DatabaseCleaner/database_cleaner)
|
|
10
|
+
[](https://travis-ci.org/DatabaseCleaner/database_cleaner) [](https://codeclimate.com/github/DatabaseCleaner/database_cleaner)
|
|
11
11
|
|
|
12
12
|
Here is an overview of the strategies supported for each library:
|
|
13
13
|
|
|
@@ -197,7 +197,7 @@ The following options are available for ActiveRecord's `:truncation` strategy _o
|
|
|
197
197
|
|
|
198
198
|
The following option is available for ActiveRecord's `:truncation` and `:deletion` strategy for any DB.
|
|
199
199
|
|
|
200
|
-
* `:cache_tables` - When set to `true` the list of tables to truncate or delete from will only be read from the DB once, otherwise it will be read before each cleanup run. Set this to `false` if you create and drop tables in your tests. Defaults to `true`.
|
|
200
|
+
* `:cache_tables` - When set to `true` the list of tables to truncate or delete from will only be read from the DB once, otherwise it will be read before each cleanup run. Set this to `false` if (1) you create and drop tables in your tests, or (2) you change Postgres schemas (`ActiveRecord::Base.connection.schema_search_path`) in your tests (for example, in a multitenancy setup with each tenant in a different Postgres schema). Defaults to `true`.
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
### RSpec Example
|
|
@@ -219,12 +219,38 @@ RSpec.configure do |config|
|
|
|
219
219
|
end
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
+
### RSpec with Capybara Example
|
|
223
|
+
|
|
224
|
+
If you're using Capybara with RSpec and using an external browser (not using RackTest) you'll almost certainly need to use truncation rather than transactions for tests tagged `:js`.
|
|
225
|
+
|
|
226
|
+
```ruby
|
|
227
|
+
RSpec.configure do |config|
|
|
228
|
+
|
|
229
|
+
config.use_transactional_fixtures = false
|
|
230
|
+
|
|
231
|
+
config.before(:suite) do
|
|
232
|
+
DatabaseCleaner.clean_with(:truncation)
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
config.before(:each) do |example|
|
|
236
|
+
DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
|
|
237
|
+
DatabaseCleaner.start
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
config.after(:each) do
|
|
241
|
+
DatabaseCleaner.clean
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
end
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
|
|
222
248
|
### Minitest Example
|
|
223
249
|
|
|
224
250
|
```ruby
|
|
225
251
|
DatabaseCleaner.strategy = :transaction
|
|
226
252
|
|
|
227
|
-
class
|
|
253
|
+
class Minitest::Spec
|
|
228
254
|
before :each do
|
|
229
255
|
DatabaseCleaner.start
|
|
230
256
|
end
|
|
@@ -279,10 +305,10 @@ DatabaseCleaner[:active_record].strategy = :transaction
|
|
|
279
305
|
DatabaseCleaner[:mongo_mapper].strategy = :truncation
|
|
280
306
|
|
|
281
307
|
#How to specify particular connections
|
|
282
|
-
DatabaseCleaner[:active_record,{:connection => :two}]
|
|
308
|
+
DatabaseCleaner[:active_record, { :connection => :two }]
|
|
283
309
|
|
|
284
310
|
# You may also pass in the model directly:
|
|
285
|
-
DatabaseCleaner[:active_record,{:model => ModelWithDifferentConnection}]
|
|
311
|
+
DatabaseCleaner[:active_record, { :model => ModelWithDifferentConnection }]
|
|
286
312
|
```
|
|
287
313
|
|
|
288
314
|
Usage beyond that remains the same with `DatabaseCleaner.start` calling any setup on the different configured connections, and `DatabaseCleaner.clean` executing afterwards.
|
data/VERSION.yml
CHANGED
data/examples/Gemfile
CHANGED
|
@@ -1,56 +1 @@
|
|
|
1
|
-
|
|
2
|
-
# TODO: move these to the gemspec...
|
|
3
|
-
|
|
4
|
-
group :development, :test do
|
|
5
|
-
gem "rake"
|
|
6
|
-
gem "ruby-debug", :platform => :ruby_18
|
|
7
|
-
gem "ruby-debug19", :platform => :ruby_19
|
|
8
|
-
gem "bundler"
|
|
9
|
-
|
|
10
|
-
gem "json_pure"
|
|
11
|
-
|
|
12
|
-
gem "activerecord-mysql2-adapter"
|
|
13
|
-
#ORM's
|
|
14
|
-
gem "activerecord"
|
|
15
|
-
gem "datamapper"
|
|
16
|
-
gem "dm-migrations"
|
|
17
|
-
gem "dm-sqlite-adapter"
|
|
18
|
-
gem "mongoid"
|
|
19
|
-
gem "tzinfo"
|
|
20
|
-
gem "mongo_ext"
|
|
21
|
-
gem "bson_ext"
|
|
22
|
-
gem "mongoid-tree"
|
|
23
|
-
|
|
24
|
-
gem "mongo_mapper"
|
|
25
|
-
gem "moped"
|
|
26
|
-
gem "neo4j-core"
|
|
27
|
-
gem "couch_potato"
|
|
28
|
-
|
|
29
|
-
gem "sequel", "~> 3.21.0"
|
|
30
|
-
#gem "ibm_db" # I don't want to add this dependency, even as a dev one since it requires DB2 to be installed
|
|
31
|
-
gem 'mysql', '~> 2.9.1'
|
|
32
|
-
gem 'mysql2'
|
|
33
|
-
gem 'pg'
|
|
34
|
-
gem 'ohm', '~> 0.1.3'
|
|
35
|
-
|
|
36
|
-
gem 'guard-rspec'
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
group :test do
|
|
40
|
-
gem "rspec-rails"
|
|
41
|
-
gem "sqlite3"
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
group :cucumber do
|
|
45
|
-
gem "cucumber"
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
platforms :mri_18 do
|
|
49
|
-
gem 'sqlite3-ruby', :group => :cucumber
|
|
50
|
-
#gem 'mysql', :group => :development
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
platforms :mri_19 do
|
|
54
|
-
gem 'sqlite3', :group => :cucumber
|
|
55
|
-
#gem 'mysql2', :group => :development
|
|
56
|
-
end
|
|
1
|
+
gemspec
|
data/examples/Gemfile.lock
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
database_cleaner (1.5.0)
|
|
5
|
+
|
|
1
6
|
GEM
|
|
2
7
|
remote: https://rubygems.org/
|
|
3
8
|
specs:
|
|
@@ -25,7 +30,6 @@ GEM
|
|
|
25
30
|
mysql2
|
|
26
31
|
activesupport (3.0.0)
|
|
27
32
|
addressable (2.3.6)
|
|
28
|
-
archive-tar-minitar (0.5.2)
|
|
29
33
|
arel (1.0.1)
|
|
30
34
|
activesupport (~> 3.0.0)
|
|
31
35
|
bcrypt (3.1.7)
|
|
@@ -40,7 +44,6 @@ GEM
|
|
|
40
44
|
bson (~> 1.11.1)
|
|
41
45
|
builder (2.1.2)
|
|
42
46
|
coderay (1.1.0)
|
|
43
|
-
columnize (0.8.9)
|
|
44
47
|
couch_potato (1.3.0)
|
|
45
48
|
activemodel
|
|
46
49
|
couchrest (~> 1.2.0)
|
|
@@ -101,8 +104,14 @@ GEM
|
|
|
101
104
|
uuidtools (~> 2.1)
|
|
102
105
|
dm-validations (1.2.0)
|
|
103
106
|
dm-core (~> 1.2.0)
|
|
107
|
+
do_jdbc (0.10.14-java)
|
|
108
|
+
data_objects (= 0.10.14)
|
|
104
109
|
do_sqlite3 (0.10.14)
|
|
105
110
|
data_objects (= 0.10.14)
|
|
111
|
+
do_sqlite3 (0.10.14-java)
|
|
112
|
+
data_objects (= 0.10.14)
|
|
113
|
+
do_jdbc (= 0.10.14)
|
|
114
|
+
jdbc-sqlite3 (>= 3.5.8)
|
|
106
115
|
erubis (2.6.6)
|
|
107
116
|
abstract (>= 1.0.0)
|
|
108
117
|
faraday (0.9.0)
|
|
@@ -131,13 +140,10 @@ GEM
|
|
|
131
140
|
multi_xml (>= 0.5.2)
|
|
132
141
|
httpclient (2.5.3.3)
|
|
133
142
|
i18n (0.4.2)
|
|
143
|
+
jdbc-sqlite3 (3.8.10.1)
|
|
134
144
|
json (1.8.1)
|
|
135
145
|
json (1.8.1-java)
|
|
136
146
|
json_pure (1.8.1)
|
|
137
|
-
linecache (0.46)
|
|
138
|
-
rbx-require-relative (> 0.0.4)
|
|
139
|
-
linecache19 (0.5.12)
|
|
140
|
-
ruby_core_source (>= 0.1.4)
|
|
141
147
|
listen (1.3.1)
|
|
142
148
|
rb-fsevent (>= 0.9.3)
|
|
143
149
|
rb-inotify (>= 0.9)
|
|
@@ -163,7 +169,7 @@ GEM
|
|
|
163
169
|
multi_xml (0.5.5)
|
|
164
170
|
multipart-post (2.0.0)
|
|
165
171
|
mysql (2.9.1)
|
|
166
|
-
mysql2 (0.3.
|
|
172
|
+
mysql2 (0.3.18)
|
|
167
173
|
neo4j-community (2.1.5)
|
|
168
174
|
neo4j-core (3.0.8)
|
|
169
175
|
activesupport
|
|
@@ -182,7 +188,7 @@ GEM
|
|
|
182
188
|
ohm (0.1.5)
|
|
183
189
|
nest (~> 1.0)
|
|
184
190
|
os (0.9.6)
|
|
185
|
-
pg (0.
|
|
191
|
+
pg (0.18.2)
|
|
186
192
|
plucky (0.5.2)
|
|
187
193
|
mongo (~> 1.5)
|
|
188
194
|
pry (0.10.1)
|
|
@@ -210,7 +216,6 @@ GEM
|
|
|
210
216
|
ffi (>= 0.5.0)
|
|
211
217
|
rb-kqueue (0.2.3)
|
|
212
218
|
ffi (>= 0.5.0)
|
|
213
|
-
rbx-require-relative (0.0.9)
|
|
214
219
|
rdoc (4.1.2)
|
|
215
220
|
json (~> 1.4)
|
|
216
221
|
redis (3.1.0)
|
|
@@ -230,28 +235,11 @@ GEM
|
|
|
230
235
|
activesupport (>= 3.0)
|
|
231
236
|
railties (>= 3.0)
|
|
232
237
|
rspec (~> 2.11.0)
|
|
233
|
-
ruby-debug (0.10.4)
|
|
234
|
-
columnize (>= 0.1)
|
|
235
|
-
ruby-debug-base (~> 0.10.4.0)
|
|
236
|
-
ruby-debug-base (0.10.4)
|
|
237
|
-
linecache (>= 0.3)
|
|
238
|
-
ruby-debug-base19 (0.11.25)
|
|
239
|
-
columnize (>= 0.3.1)
|
|
240
|
-
linecache19 (>= 0.5.11)
|
|
241
|
-
ruby_core_source (>= 0.1.4)
|
|
242
|
-
ruby-debug19 (0.11.6)
|
|
243
|
-
columnize (>= 0.3.1)
|
|
244
|
-
linecache19 (>= 0.5.11)
|
|
245
|
-
ruby-debug-base19 (>= 0.11.19)
|
|
246
|
-
ruby_core_source (0.1.5)
|
|
247
|
-
archive-tar-minitar (>= 0.5.2)
|
|
248
238
|
sequel (3.21.0)
|
|
249
239
|
slop (3.6.0)
|
|
250
240
|
spoon (0.0.4)
|
|
251
241
|
ffi
|
|
252
|
-
sqlite3 (1.3.
|
|
253
|
-
sqlite3-ruby (1.3.3)
|
|
254
|
-
sqlite3 (>= 1.3.3)
|
|
242
|
+
sqlite3 (1.3.10)
|
|
255
243
|
stringex (1.5.1)
|
|
256
244
|
thor (0.14.6)
|
|
257
245
|
tzinfo (0.3.41)
|
|
@@ -269,6 +257,7 @@ DEPENDENCIES
|
|
|
269
257
|
bundler
|
|
270
258
|
couch_potato
|
|
271
259
|
cucumber
|
|
260
|
+
database_cleaner!
|
|
272
261
|
datamapper
|
|
273
262
|
dm-migrations
|
|
274
263
|
dm-sqlite-adapter
|
|
@@ -285,10 +274,10 @@ DEPENDENCIES
|
|
|
285
274
|
ohm (~> 0.1.3)
|
|
286
275
|
pg
|
|
287
276
|
rake
|
|
288
|
-
rspec-rails
|
|
289
|
-
ruby-debug
|
|
290
|
-
ruby-debug19
|
|
277
|
+
rspec-rails (~> 2.11.0)
|
|
291
278
|
sequel (~> 3.21.0)
|
|
292
279
|
sqlite3
|
|
293
|
-
sqlite3-ruby
|
|
294
280
|
tzinfo
|
|
281
|
+
|
|
282
|
+
BUNDLED WITH
|
|
283
|
+
1.10.5
|
|
@@ -54,14 +54,14 @@ module DatabaseCleaner::ActiveRecord
|
|
|
54
54
|
|
|
55
55
|
def tables_with_new_rows(connection)
|
|
56
56
|
@db_name ||= connection.instance_variable_get('@config')[:database]
|
|
57
|
-
result = connection.
|
|
58
|
-
result.map{ |row| row[
|
|
57
|
+
result = connection.exec_query("SELECT table_name FROM information_schema.tables WHERE table_schema = '#{@db_name}' AND table_rows > 0")
|
|
58
|
+
result.map{ |row| row['table_name'] } - ['schema_migrations']
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def information_schema_exists? connection
|
|
62
62
|
@information_schema_exists ||=
|
|
63
63
|
begin
|
|
64
|
-
connection.execute("SELECT
|
|
64
|
+
connection.execute("SELECT 1 FROM information_schema.tables")
|
|
65
65
|
true
|
|
66
66
|
rescue
|
|
67
67
|
false
|
|
@@ -27,24 +27,26 @@ module DatabaseCleaner::ActiveRecord
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def clean
|
|
30
|
-
|
|
30
|
+
connection_class.connection_pool.connections.each do |connection|
|
|
31
|
+
next unless connection.open_transactions > 0
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
if connection.respond_to?(:rollback_transaction)
|
|
34
|
+
connection.rollback_transaction
|
|
35
|
+
else
|
|
36
|
+
connection.rollback_db_transaction
|
|
37
|
+
end
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
# The below is for handling after_commit hooks.. see https://github.com/bmabey/database_cleaner/issues/99
|
|
40
|
+
if connection.respond_to?(:rollback_transaction_records, true)
|
|
41
|
+
connection.send(:rollback_transaction_records, true)
|
|
42
|
+
end
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
if connection_maintains_transaction_count?
|
|
45
|
+
if connection.respond_to?(:decrement_open_transactions)
|
|
46
|
+
connection.decrement_open_transactions
|
|
47
|
+
else
|
|
48
|
+
connection_class.__send__(:decrement_open_transactions)
|
|
49
|
+
end
|
|
48
50
|
end
|
|
49
51
|
end
|
|
50
52
|
end
|
|
@@ -190,9 +190,9 @@ module DatabaseCleaner
|
|
|
190
190
|
rows = select_rows <<-_SQL
|
|
191
191
|
SELECT schemaname || '.' || tablename
|
|
192
192
|
FROM pg_tables
|
|
193
|
-
WHERE
|
|
194
|
-
tablename !~ '_prt_' AND
|
|
195
|
-
tablename <> '#{::ActiveRecord::Migrator.schema_migrations_table_name}' AND
|
|
193
|
+
WHERE
|
|
194
|
+
tablename !~ '_prt_' AND
|
|
195
|
+
tablename <> '#{::ActiveRecord::Migrator.schema_migrations_table_name}' AND
|
|
196
196
|
schemaname = ANY (current_schemas(false))
|
|
197
197
|
_SQL
|
|
198
198
|
rows.collect { |result| result.first }
|
|
@@ -247,12 +247,12 @@ module DatabaseCleaner::ActiveRecord
|
|
|
247
247
|
tables_in_db = cache_tables? ? connection.database_cleaner_table_cache : connection.tables
|
|
248
248
|
to_reject = (@tables_to_exclude + connection.database_cleaner_view_cache)
|
|
249
249
|
(@only || tables_in_db).reject do |table|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
end
|
|
250
|
+
if ( m = table.match(/([^.]+)$/) )
|
|
251
|
+
to_reject.include?(m[1])
|
|
252
|
+
else
|
|
253
|
+
false
|
|
255
254
|
end
|
|
255
|
+
end
|
|
256
256
|
end
|
|
257
257
|
|
|
258
258
|
# overwritten
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
module ::DatabaseCleaner
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
module Generic
|
|
3
|
+
module Base
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
def self.included(base)
|
|
6
|
+
base.extend(ClassMethods)
|
|
7
|
+
end
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
def db
|
|
10
|
+
:default
|
|
11
|
+
end
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
def cleaning(&block)
|
|
14
|
+
begin
|
|
15
|
+
start
|
|
16
|
+
yield
|
|
17
|
+
ensure
|
|
18
|
+
clean
|
|
19
|
+
end
|
|
20
|
+
end
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
module ClassMethods
|
|
23
|
+
def available_strategies
|
|
24
|
+
%W[]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
26
29
|
end
|
|
@@ -20,10 +20,7 @@ module DatabaseCleaner
|
|
|
20
20
|
def mongoid_collection_names
|
|
21
21
|
@@mongoid_collection_names ||= Hash.new{|h,k| h[k]=[]}.tap do |names|
|
|
22
22
|
ObjectSpace.each_object(Class) do |klass|
|
|
23
|
-
|
|
24
|
-
next if klass.embedded
|
|
25
|
-
next if klass.collection_name.empty?
|
|
26
|
-
names[klass.db.name] << klass.collection_name
|
|
23
|
+
(names[klass.db.name] << klass.collection_name) if valid_collection_name?(klass)
|
|
27
24
|
end
|
|
28
25
|
end
|
|
29
26
|
end
|
|
@@ -52,6 +49,14 @@ module DatabaseCleaner
|
|
|
52
49
|
|
|
53
50
|
db_collections
|
|
54
51
|
end
|
|
52
|
+
|
|
53
|
+
private
|
|
54
|
+
|
|
55
|
+
def valid_collection_name?(klass)
|
|
56
|
+
klass.ancestors.map(&:to_s).include?('Mongoid::Document') &&
|
|
57
|
+
!klass.embedded &&
|
|
58
|
+
!klass.collection_name.empty?
|
|
59
|
+
end
|
|
55
60
|
end
|
|
56
61
|
end
|
|
57
62
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'database_cleaner/mongoid/base'
|
|
2
2
|
require 'database_cleaner/generic/truncation'
|
|
3
3
|
require 'database_cleaner/mongo/truncation_mixin'
|
|
4
|
+
require 'database_cleaner/mongo2/truncation_mixin'
|
|
4
5
|
require 'database_cleaner/moped/truncation_base'
|
|
5
6
|
require 'mongoid/version'
|
|
6
7
|
|
|
@@ -20,7 +21,7 @@ module DatabaseCleaner
|
|
|
20
21
|
::Mongoid.database
|
|
21
22
|
end
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
elsif ::Mongoid::VERSION < '5'
|
|
24
25
|
|
|
25
26
|
include ::DatabaseCleaner::Moped::TruncationBase
|
|
26
27
|
|
|
@@ -37,6 +38,11 @@ module DatabaseCleaner
|
|
|
37
38
|
::Mongoid.database
|
|
38
39
|
end
|
|
39
40
|
end
|
|
41
|
+
|
|
42
|
+
else
|
|
43
|
+
|
|
44
|
+
include ::DatabaseCleaner::Mongo2::TruncationMixin
|
|
45
|
+
|
|
40
46
|
end
|
|
41
47
|
end
|
|
42
48
|
end
|
|
@@ -23,9 +23,15 @@ module DatabaseCleaner
|
|
|
23
23
|
session.use(db)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
if db_version.split('.').first.to_i >= 3
|
|
27
|
+
session.command(listCollections: 1, filter: { 'name' => { '$not' => /.?system\.|\$/ } })['cursor']['firstBatch'].map do |collection|
|
|
28
|
+
collection['name']
|
|
29
|
+
end
|
|
30
|
+
else
|
|
31
|
+
session['system.namespaces'].find(name: { '$not' => /\.system\.|\$/ }).to_a.map do |collection|
|
|
32
|
+
_, name = collection['name'].split('.', 2)
|
|
33
|
+
name
|
|
34
|
+
end
|
|
29
35
|
end
|
|
30
36
|
end
|
|
31
37
|
|
|
@@ -50,8 +50,12 @@ module DatabaseCleaner
|
|
|
50
50
|
database[:path]
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
+
def db_params
|
|
54
|
+
database.reject!{|key, value| [:type, :path].include? key }
|
|
55
|
+
end
|
|
56
|
+
|
|
53
57
|
def session
|
|
54
|
-
@session ||= ::Neo4j::Session.open(db_type, db_path)
|
|
58
|
+
@session ||= ::Neo4j::Session.open(db_type, db_path, db_params)
|
|
55
59
|
end
|
|
56
60
|
end
|
|
57
61
|
end
|
|
File without changes
|
|
@@ -7,7 +7,11 @@ module DatabaseCleaner
|
|
|
7
7
|
|
|
8
8
|
describe Transaction do
|
|
9
9
|
let (:connection) { double("connection") }
|
|
10
|
+
let (:connection_2) { double("connection") }
|
|
11
|
+
let (:connection_pool) { double("connection_pool")}
|
|
10
12
|
before(:each) do
|
|
13
|
+
::ActiveRecord::Base.stub(:connection_pool).and_return(connection_pool)
|
|
14
|
+
connection_pool.stub(:connections).and_return([connection])
|
|
11
15
|
::ActiveRecord::Base.stub(:connection).and_return(connection)
|
|
12
16
|
end
|
|
13
17
|
|
|
@@ -82,6 +86,40 @@ module DatabaseCleaner
|
|
|
82
86
|
::ActiveRecord::Base.should_receive(:decrement_open_transactions)
|
|
83
87
|
Transaction.new.clean
|
|
84
88
|
end
|
|
89
|
+
|
|
90
|
+
it "should rollback open transactions in all connections" do
|
|
91
|
+
connection_pool.stub(:connections).and_return([connection, connection_2])
|
|
92
|
+
|
|
93
|
+
connection.should_receive(:open_transactions).and_return(1)
|
|
94
|
+
connection.stub(:respond_to?).with(:decrement_open_transactions).and_return(false)
|
|
95
|
+
connection.stub(:respond_to?).with(:rollback_transaction_records, true).and_return(false)
|
|
96
|
+
connection.stub(:respond_to?).with(:rollback_transaction).and_return(false)
|
|
97
|
+
connection.stub(:rollback_db_transaction)
|
|
98
|
+
|
|
99
|
+
connection_2.should_receive(:open_transactions).and_return(1)
|
|
100
|
+
connection_2.stub(:respond_to?).with(:decrement_open_transactions).and_return(false)
|
|
101
|
+
connection_2.stub(:respond_to?).with(:rollback_transaction_records, true).and_return(false)
|
|
102
|
+
connection_2.stub(:respond_to?).with(:rollback_transaction).and_return(false)
|
|
103
|
+
connection_2.stub(:rollback_db_transaction)
|
|
104
|
+
|
|
105
|
+
::ActiveRecord::Base.should_receive(:decrement_open_transactions).twice
|
|
106
|
+
Transaction.new.clean
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it "should rollback open transactions in all connections with an open transaction" do
|
|
110
|
+
connection_pool.stub(:connections).and_return([connection, connection_2])
|
|
111
|
+
|
|
112
|
+
connection.should_receive(:open_transactions).and_return(1)
|
|
113
|
+
connection.stub(:respond_to?).with(:decrement_open_transactions).and_return(false)
|
|
114
|
+
connection.stub(:respond_to?).with(:rollback_transaction_records, true).and_return(false)
|
|
115
|
+
connection.stub(:respond_to?).with(:rollback_transaction).and_return(false)
|
|
116
|
+
connection.stub(:rollback_db_transaction)
|
|
117
|
+
|
|
118
|
+
connection_2.should_receive(:open_transactions).and_return(0)
|
|
119
|
+
|
|
120
|
+
::ActiveRecord::Base.should_receive(:decrement_open_transactions).exactly(1).times
|
|
121
|
+
Transaction.new.clean
|
|
122
|
+
end
|
|
85
123
|
end
|
|
86
124
|
|
|
87
125
|
context "automatic accounting of transaction count (AR 4)" do
|
|
@@ -1,22 +1,61 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'database_cleaner/shared_strategy'
|
|
3
3
|
require 'database_cleaner/generic/base'
|
|
4
|
+
require 'active_record'
|
|
4
5
|
|
|
5
6
|
module ::DatabaseCleaner
|
|
6
7
|
module Generic
|
|
7
8
|
class ExampleStrategy
|
|
8
9
|
include ::DatabaseCleaner::Generic::Base
|
|
10
|
+
|
|
11
|
+
def start; end
|
|
9
12
|
end
|
|
10
13
|
|
|
11
14
|
describe ExampleStrategy do
|
|
12
15
|
context "class methods" do
|
|
13
16
|
subject { ExampleStrategy }
|
|
14
|
-
|
|
17
|
+
|
|
18
|
+
describe "#available_strategies" do
|
|
19
|
+
it "should have available strategies" do
|
|
20
|
+
expect(subject.available_strategies).to be_empty
|
|
21
|
+
end
|
|
22
|
+
end
|
|
15
23
|
end
|
|
16
24
|
|
|
17
25
|
it_should_behave_like "a generic strategy"
|
|
18
26
|
|
|
19
|
-
|
|
27
|
+
describe "#db" do
|
|
28
|
+
it "should be :default" do
|
|
29
|
+
expect(subject.db).to eql(:default)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe "#cleaning" do
|
|
34
|
+
let (:connection) { double("connection") }
|
|
35
|
+
let (:strategy) { ExampleStrategy.new }
|
|
36
|
+
before do
|
|
37
|
+
# DatabaseCleaner.strategy = :truncation
|
|
38
|
+
connection.stub(:disable_referential_integrity).and_yield
|
|
39
|
+
connection.stub(:database_cleaner_view_cache).and_return([])
|
|
40
|
+
connection.stub(:database_cleaner_table_cache).and_return([])
|
|
41
|
+
::ActiveRecord::Base.stub(:connection).and_return(connection)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "calls #clean even if there is an exception" do
|
|
45
|
+
strategy.should_receive :clean
|
|
46
|
+
expect do
|
|
47
|
+
strategy.cleaning do
|
|
48
|
+
raise NoMethodError
|
|
49
|
+
end
|
|
50
|
+
end.to raise_exception(NoMethodError)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "calls #clean after processing the block" do
|
|
54
|
+
strategy.should_receive :clean
|
|
55
|
+
strategy.cleaning do
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
20
59
|
end
|
|
21
60
|
end
|
|
22
61
|
end
|
|
@@ -24,6 +24,13 @@ module DatabaseCleaner
|
|
|
24
24
|
subject.db.should eq db_conf
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
it "should respect additional connection parameters" do
|
|
28
|
+
db_conf = {:type => :server_db, :path => 'http://localhost:7474', basic_auth: {username: 'user', password: 'pass'}}
|
|
29
|
+
subject.db = db_conf
|
|
30
|
+
stub_const("Neo4j::Session", double()).should_receive(:open).with(:server_db, 'http://localhost:7474', {basic_auth: {username: 'user', password: 'pass'}}) { true }
|
|
31
|
+
subject.start
|
|
32
|
+
end
|
|
33
|
+
|
|
27
34
|
it "should default to nil" do
|
|
28
35
|
subject.db.should be_nil
|
|
29
36
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: database_cleaner
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ben Mabey
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-01
|
|
11
|
+
date: 2015-09-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -25,7 +25,7 @@ dependencies:
|
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
@@ -39,7 +39,7 @@ dependencies:
|
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: json_pure
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">="
|
|
@@ -53,7 +53,7 @@ dependencies:
|
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: activerecord-mysql2-adapter
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
@@ -67,7 +67,7 @@ dependencies:
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: activerecord
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
@@ -81,7 +81,7 @@ dependencies:
|
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
84
|
+
name: datamapper
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - ">="
|
|
@@ -95,7 +95,7 @@ dependencies:
|
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '0'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
98
|
+
name: dm-migrations
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - ">="
|
|
@@ -109,7 +109,7 @@ dependencies:
|
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '0'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: dm-sqlite-adapter
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">="
|
|
@@ -123,7 +123,7 @@ dependencies:
|
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
126
|
+
name: mongoid
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
129
|
- - ">="
|
|
@@ -137,7 +137,7 @@ dependencies:
|
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name:
|
|
140
|
+
name: tzinfo
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - ">="
|
|
@@ -151,7 +151,7 @@ dependencies:
|
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '0'
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: mongoid
|
|
154
|
+
name: mongoid-tree
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements:
|
|
157
157
|
- - ">="
|
|
@@ -165,7 +165,7 @@ dependencies:
|
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: '0'
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
168
|
+
name: mongo_mapper
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
170
170
|
requirements:
|
|
171
171
|
- - ">="
|
|
@@ -179,7 +179,7 @@ dependencies:
|
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
180
|
version: '0'
|
|
181
181
|
- !ruby/object:Gem::Dependency
|
|
182
|
-
name:
|
|
182
|
+
name: moped
|
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
|
184
184
|
requirements:
|
|
185
185
|
- - ">="
|
|
@@ -193,7 +193,7 @@ dependencies:
|
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
194
|
version: '0'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
name:
|
|
196
|
+
name: neo4j-core
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
199
|
- - ">="
|
|
@@ -207,7 +207,7 @@ dependencies:
|
|
|
207
207
|
- !ruby/object:Gem::Version
|
|
208
208
|
version: '0'
|
|
209
209
|
- !ruby/object:Gem::Dependency
|
|
210
|
-
name:
|
|
210
|
+
name: couch_potato
|
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
|
212
212
|
requirements:
|
|
213
213
|
- - ">="
|
|
@@ -221,21 +221,35 @@ dependencies:
|
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
222
|
version: '0'
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
|
224
|
-
name:
|
|
224
|
+
name: sequel
|
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
|
226
226
|
requirements:
|
|
227
|
-
- - "
|
|
227
|
+
- - "~>"
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version:
|
|
229
|
+
version: 3.21.0
|
|
230
230
|
type: :development
|
|
231
231
|
prerelease: false
|
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
233
|
requirements:
|
|
234
|
-
- - "
|
|
234
|
+
- - "~>"
|
|
235
235
|
- !ruby/object:Gem::Version
|
|
236
|
-
version:
|
|
236
|
+
version: 3.21.0
|
|
237
237
|
- !ruby/object:Gem::Dependency
|
|
238
|
-
name:
|
|
238
|
+
name: ohm
|
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
|
240
|
+
requirements:
|
|
241
|
+
- - "~>"
|
|
242
|
+
- !ruby/object:Gem::Version
|
|
243
|
+
version: 0.1.3
|
|
244
|
+
type: :development
|
|
245
|
+
prerelease: false
|
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
247
|
+
requirements:
|
|
248
|
+
- - "~>"
|
|
249
|
+
- !ruby/object:Gem::Version
|
|
250
|
+
version: 0.1.3
|
|
251
|
+
- !ruby/object:Gem::Dependency
|
|
252
|
+
name: guard-rspec
|
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
|
240
254
|
requirements:
|
|
241
255
|
- - ">="
|
|
@@ -249,7 +263,21 @@ dependencies:
|
|
|
249
263
|
- !ruby/object:Gem::Version
|
|
250
264
|
version: '0'
|
|
251
265
|
- !ruby/object:Gem::Dependency
|
|
252
|
-
name:
|
|
266
|
+
name: rspec-rails
|
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
|
268
|
+
requirements:
|
|
269
|
+
- - "~>"
|
|
270
|
+
- !ruby/object:Gem::Version
|
|
271
|
+
version: 2.11.0
|
|
272
|
+
type: :development
|
|
273
|
+
prerelease: false
|
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
275
|
+
requirements:
|
|
276
|
+
- - "~>"
|
|
277
|
+
- !ruby/object:Gem::Version
|
|
278
|
+
version: 2.11.0
|
|
279
|
+
- !ruby/object:Gem::Dependency
|
|
280
|
+
name: cucumber
|
|
253
281
|
requirement: !ruby/object:Gem::Requirement
|
|
254
282
|
requirements:
|
|
255
283
|
- - ">="
|
|
@@ -263,7 +291,7 @@ dependencies:
|
|
|
263
291
|
- !ruby/object:Gem::Version
|
|
264
292
|
version: '0'
|
|
265
293
|
- !ruby/object:Gem::Dependency
|
|
266
|
-
name:
|
|
294
|
+
name: mongo_ext
|
|
267
295
|
requirement: !ruby/object:Gem::Requirement
|
|
268
296
|
requirements:
|
|
269
297
|
- - ">="
|
|
@@ -277,33 +305,33 @@ dependencies:
|
|
|
277
305
|
- !ruby/object:Gem::Version
|
|
278
306
|
version: '0'
|
|
279
307
|
- !ruby/object:Gem::Dependency
|
|
280
|
-
name:
|
|
308
|
+
name: bson_ext
|
|
281
309
|
requirement: !ruby/object:Gem::Requirement
|
|
282
310
|
requirements:
|
|
283
|
-
- - "
|
|
311
|
+
- - ">="
|
|
284
312
|
- !ruby/object:Gem::Version
|
|
285
|
-
version:
|
|
313
|
+
version: '0'
|
|
286
314
|
type: :development
|
|
287
315
|
prerelease: false
|
|
288
316
|
version_requirements: !ruby/object:Gem::Requirement
|
|
289
317
|
requirements:
|
|
290
|
-
- - "
|
|
318
|
+
- - ">="
|
|
291
319
|
- !ruby/object:Gem::Version
|
|
292
|
-
version:
|
|
320
|
+
version: '0'
|
|
293
321
|
- !ruby/object:Gem::Dependency
|
|
294
322
|
name: mysql
|
|
295
323
|
requirement: !ruby/object:Gem::Requirement
|
|
296
324
|
requirements:
|
|
297
325
|
- - "~>"
|
|
298
326
|
- !ruby/object:Gem::Version
|
|
299
|
-
version: 2.
|
|
327
|
+
version: 2.9.1
|
|
300
328
|
type: :development
|
|
301
329
|
prerelease: false
|
|
302
330
|
version_requirements: !ruby/object:Gem::Requirement
|
|
303
331
|
requirements:
|
|
304
332
|
- - "~>"
|
|
305
333
|
- !ruby/object:Gem::Version
|
|
306
|
-
version: 2.
|
|
334
|
+
version: 2.9.1
|
|
307
335
|
- !ruby/object:Gem::Dependency
|
|
308
336
|
name: mysql2
|
|
309
337
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -333,21 +361,7 @@ dependencies:
|
|
|
333
361
|
- !ruby/object:Gem::Version
|
|
334
362
|
version: '0'
|
|
335
363
|
- !ruby/object:Gem::Dependency
|
|
336
|
-
name:
|
|
337
|
-
requirement: !ruby/object:Gem::Requirement
|
|
338
|
-
requirements:
|
|
339
|
-
- - "~>"
|
|
340
|
-
- !ruby/object:Gem::Version
|
|
341
|
-
version: 0.1.3
|
|
342
|
-
type: :development
|
|
343
|
-
prerelease: false
|
|
344
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
345
|
-
requirements:
|
|
346
|
-
- - "~>"
|
|
347
|
-
- !ruby/object:Gem::Version
|
|
348
|
-
version: 0.1.3
|
|
349
|
-
- !ruby/object:Gem::Dependency
|
|
350
|
-
name: guard-rspec
|
|
364
|
+
name: sqlite3
|
|
351
365
|
requirement: !ruby/object:Gem::Requirement
|
|
352
366
|
requirements:
|
|
353
367
|
- - ">="
|
|
@@ -508,7 +522,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
508
522
|
requirements:
|
|
509
523
|
- - ">="
|
|
510
524
|
- !ruby/object:Gem::Version
|
|
511
|
-
version:
|
|
525
|
+
version: 1.9.3
|
|
512
526
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
513
527
|
requirements:
|
|
514
528
|
- - ">="
|
|
@@ -516,10 +530,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
516
530
|
version: '0'
|
|
517
531
|
requirements: []
|
|
518
532
|
rubyforge_project:
|
|
519
|
-
rubygems_version: 2.4.
|
|
533
|
+
rubygems_version: 2.4.6
|
|
520
534
|
signing_key:
|
|
521
535
|
specification_version: 4
|
|
522
536
|
summary: Strategies for cleaning databases. Can be used to ensure a clean state for
|
|
523
537
|
testing.
|
|
524
538
|
test_files: []
|
|
525
|
-
has_rdoc:
|