database_cleaner-mongoid 1.8.0 → 2.0.1
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/.gitignore +5 -0
- data/.travis.yml +22 -3
- data/Appraisals +20 -0
- data/Gemfile +8 -4
- data/README.md +32 -34
- data/database_cleaner-mongoid.gemspec +7 -10
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/mongoid3.gemfile +14 -0
- data/gemfiles/mongoid4.gemfile +14 -0
- data/gemfiles/mongoid5.gemfile +14 -0
- data/gemfiles/mongoid6.gemfile +14 -0
- data/gemfiles/mongoid7.gemfile +14 -0
- data/lib/database_cleaner/mongoid.rb +3 -8
- data/lib/database_cleaner/mongoid/deletion.rb +30 -0
- data/lib/database_cleaner/mongoid/mongoid4_mixin.rb +30 -0
- data/lib/database_cleaner/mongoid/mongoid5_mixin.rb +27 -0
- data/lib/database_cleaner/mongoid/version.rb +1 -1
- metadata +37 -30
- data/Gemfile.lock +0 -72
- data/lib/database_cleaner/mongo2/truncation_mixin.rb +0 -39
- data/lib/database_cleaner/mongoid/base.rb +0 -20
- data/lib/database_cleaner/mongoid/truncation.rb +0 -49
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b4857fc2f9d36f05ce84b3a48933c55ee817b4b74b1d3e290173861b059e7351
|
|
4
|
+
data.tar.gz: 86b440044adac4c88079d6e1bf0d9170a6416b13600e0892ae2620feb96dc29b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d9e5d5cb3dcedfc931d57911db0840906424b5bc9918be302124c8935dff955c81e7041651bf60b37f9f3342cdcdf612ea47cef035c52545939e20515e81cb6a
|
|
7
|
+
data.tar.gz: 21559884d495ad112819ea036bee4229d53d71911d70529034f89d7e9b75c9ccc2c4415531975590383ffaaf025b31b8a092d7fec1930f85b8eca1e5eaf46142
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
|
-
sudo: false
|
|
2
1
|
language: ruby
|
|
2
|
+
services:
|
|
3
|
+
- mongodb
|
|
3
4
|
rvm:
|
|
4
|
-
- 2.
|
|
5
|
-
|
|
5
|
+
- 2.5
|
|
6
|
+
- 2.6
|
|
7
|
+
- 2.7
|
|
8
|
+
gemfile:
|
|
9
|
+
- gemfiles/mongoid3.gemfile
|
|
10
|
+
- gemfiles/mongoid4.gemfile
|
|
11
|
+
- gemfiles/mongoid5.gemfile
|
|
12
|
+
- gemfiles/mongoid6.gemfile
|
|
13
|
+
- gemfiles/mongoid7.gemfile
|
|
14
|
+
jobs:
|
|
15
|
+
exclude:
|
|
16
|
+
# mongoid3-5 incompatible with BigDecimal changes in 2.7, it seems?
|
|
17
|
+
- rvm: 2.7
|
|
18
|
+
gemfile: gemfiles/mongoid3.gemfile
|
|
19
|
+
- rvm: 2.7
|
|
20
|
+
gemfile: gemfiles/mongoid4.gemfile
|
|
21
|
+
- rvm: 2.7
|
|
22
|
+
gemfile: gemfiles/mongoid5.gemfile
|
|
23
|
+
before_script:
|
|
24
|
+
- bin/setup
|
data/Appraisals
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
appraise "mongoid3" do
|
|
2
|
+
gem "mongoid", "~>3.0"
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
appraise "mongoid4" do
|
|
6
|
+
gem "mongoid", "~>4.0"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
appraise "mongoid5" do
|
|
10
|
+
gem "mongoid", "~>5.0"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
appraise "mongoid6" do
|
|
14
|
+
gem "mongoid", "~>6.0"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
appraise "mongoid7" do
|
|
18
|
+
gem "mongoid", "~>7.0"
|
|
19
|
+
end
|
|
20
|
+
|
data/Gemfile
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
source "https://rubygems.org"
|
|
2
2
|
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
|
4
|
-
|
|
5
3
|
# Specify your gem's dependencies in database_cleaner-mongoid.gemspec
|
|
6
4
|
gemspec
|
|
7
5
|
|
|
8
|
-
gem "database_cleaner",
|
|
9
|
-
|
|
6
|
+
gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
|
|
7
|
+
|
|
8
|
+
gem "byebug"
|
|
9
|
+
|
|
10
|
+
group :test do
|
|
11
|
+
gem "simplecov", require: false
|
|
12
|
+
gem "codecov", require: false
|
|
13
|
+
end
|
data/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://travis-ci.org/DatabaseCleaner/database_cleaner-mongoid)
|
|
4
4
|
[](https://codeclimate.com/github/DatabaseCleaner/database_cleaner-mongoid)
|
|
5
|
+
[](https://codecov.io/gh/DatabaseCleaner/database_cleaner-mongoid)
|
|
5
6
|
|
|
6
7
|
Clean your Mongoid databases with Database Cleaner.
|
|
7
8
|
|
|
@@ -18,40 +19,37 @@ end
|
|
|
18
19
|
|
|
19
20
|
## Supported Strategies
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
</tr>
|
|
52
|
-
</tbody>
|
|
53
|
-
</table>
|
|
22
|
+
The mongoid adapter only has one strategy: the deletion strategy.
|
|
23
|
+
|
|
24
|
+
## Strategy configuration options
|
|
25
|
+
|
|
26
|
+
`:only` and `:except` may take a list of collection names:
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
# Only delete the "users" collection.
|
|
30
|
+
DatabaseCleaner[:mongoid].strategy = :deletion, { only: ["users"] }
|
|
31
|
+
|
|
32
|
+
# Delete all collections except the "users" collection.
|
|
33
|
+
DatabaseCleaner[:mongoid].strategy = :deletion, { except: ["users"] }
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Adapter configuration options
|
|
37
|
+
|
|
38
|
+
`#db` defaults to the default Mongoid database, but can be specified manually in a few ways:
|
|
39
|
+
|
|
40
|
+
```ruby
|
|
41
|
+
# Redis URI string:
|
|
42
|
+
DatabaseCleaner[:mongoid].db = :logs
|
|
43
|
+
|
|
44
|
+
# Back to default:
|
|
45
|
+
DatabaseCleaner[:mongoid].db = :default
|
|
46
|
+
|
|
47
|
+
# Multiple Mongoid databases can be specified:
|
|
48
|
+
DatabaseCleaner[:mongoid, connection: :default]
|
|
49
|
+
DatabaseCleaner[:mongoid, connection: :shard_1]
|
|
50
|
+
DatabaseCleaner[:mongoid, connection: :shard_2]
|
|
51
|
+
```
|
|
54
52
|
|
|
55
53
|
## COPYRIGHT
|
|
56
54
|
|
|
57
|
-
See [LICENSE] for details.
|
|
55
|
+
See [LICENSE](LICENSE) for details.
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require "database_cleaner/mongoid/version"
|
|
1
|
+
require_relative "./lib/database_cleaner/mongoid/version"
|
|
5
2
|
|
|
6
3
|
Gem::Specification.new do |spec|
|
|
7
4
|
spec.name = "database_cleaner-mongoid"
|
|
8
5
|
spec.version = DatabaseCleaner::Mongoid::VERSION
|
|
9
|
-
spec.authors = ["Ernesto Tagwerker"]
|
|
6
|
+
spec.authors = ["Ernesto Tagwerker", "Micah Geisel"]
|
|
10
7
|
spec.email = ["ernesto@ombulabs.com"]
|
|
11
8
|
|
|
12
9
|
spec.summary = "Strategies for cleaning databases using Mongoid. Can be used to ensure a clean state for testing."
|
|
@@ -21,11 +18,11 @@ Gem::Specification.new do |spec|
|
|
|
21
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
19
|
spec.require_paths = ["lib"]
|
|
23
20
|
|
|
24
|
-
spec.add_dependency "database_cleaner", "~>
|
|
25
|
-
spec.add_dependency "database_cleaner-mongo", "~> 1.8.0"
|
|
21
|
+
spec.add_dependency "database_cleaner-core", "~>2.0.0"
|
|
26
22
|
spec.add_dependency "mongoid"
|
|
27
23
|
|
|
28
|
-
spec.add_development_dependency "bundler"
|
|
29
|
-
spec.add_development_dependency "
|
|
30
|
-
spec.add_development_dependency "
|
|
24
|
+
spec.add_development_dependency "bundler"
|
|
25
|
+
spec.add_development_dependency "appraisal"
|
|
26
|
+
spec.add_development_dependency "rake"
|
|
27
|
+
spec.add_development_dependency "rspec"
|
|
31
28
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
|
|
6
|
+
gem "byebug"
|
|
7
|
+
gem "mongoid", "~>3.0"
|
|
8
|
+
|
|
9
|
+
group :test do
|
|
10
|
+
gem "simplecov", require: false
|
|
11
|
+
gem "codecov", require: false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
gemspec path: "../"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
|
|
6
|
+
gem "byebug"
|
|
7
|
+
gem "mongoid", "~>4.0"
|
|
8
|
+
|
|
9
|
+
group :test do
|
|
10
|
+
gem "simplecov", require: false
|
|
11
|
+
gem "codecov", require: false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
gemspec path: "../"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
|
|
6
|
+
gem "byebug"
|
|
7
|
+
gem "mongoid", "~>5.0"
|
|
8
|
+
|
|
9
|
+
group :test do
|
|
10
|
+
gem "simplecov", require: false
|
|
11
|
+
gem "codecov", require: false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
gemspec path: "../"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
|
|
6
|
+
gem "byebug"
|
|
7
|
+
gem "mongoid", "~>6.0"
|
|
8
|
+
|
|
9
|
+
group :test do
|
|
10
|
+
gem "simplecov", require: false
|
|
11
|
+
gem "codecov", require: false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
gemspec path: "../"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
|
|
6
|
+
gem "byebug"
|
|
7
|
+
gem "mongoid", "~>7.0"
|
|
8
|
+
|
|
9
|
+
group :test do
|
|
10
|
+
gem "simplecov", require: false
|
|
11
|
+
gem "codecov", require: false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
gemspec path: "../"
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
require "database_cleaner/mongoid/version"
|
|
2
|
-
require "database_cleaner"
|
|
3
|
-
require "database_cleaner/mongoid/
|
|
4
|
-
|
|
5
|
-
module DatabaseCleaner::Mongoid
|
|
6
|
-
def self.default_strategy
|
|
7
|
-
:truncation
|
|
8
|
-
end
|
|
9
|
-
end
|
|
2
|
+
require "database_cleaner/core"
|
|
3
|
+
require "database_cleaner/mongoid/deletion"
|
|
10
4
|
|
|
5
|
+
DatabaseCleaner[:mongoid].strategy = :deletion
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'database_cleaner/strategy'
|
|
2
|
+
require 'database_cleaner/mongoid/mongoid4_mixin'
|
|
3
|
+
require 'database_cleaner/mongoid/mongoid5_mixin'
|
|
4
|
+
require 'mongoid/version'
|
|
5
|
+
|
|
6
|
+
module DatabaseCleaner
|
|
7
|
+
module Mongoid
|
|
8
|
+
class Deletion < Strategy
|
|
9
|
+
def initialize only: [], except: []
|
|
10
|
+
@only = only
|
|
11
|
+
@except = except
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
if ::Mongoid::VERSION < '5'
|
|
15
|
+
include ::DatabaseCleaner::Mongoid::Mongoid4Mixin
|
|
16
|
+
else
|
|
17
|
+
include ::DatabaseCleaner::Mongoid::Mongoid5Mixin
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def collections_to_delete
|
|
23
|
+
only = @only.any? ? @only : collections
|
|
24
|
+
(only - @except).map do |name|
|
|
25
|
+
database[name].find
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module DatabaseCleaner
|
|
2
|
+
module Mongoid
|
|
3
|
+
module Mongoid4Mixin
|
|
4
|
+
def clean
|
|
5
|
+
collections_to_delete.each(&:remove_all)
|
|
6
|
+
wait_for_removals_to_finish
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def database
|
|
12
|
+
::Mongoid.default_session
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def collections
|
|
16
|
+
if db != :default
|
|
17
|
+
database.use(db)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
database.command(listCollections: 1, filter: { 'name' => { '$not' => /.?system\.|\$/ } })['cursor']['firstBatch'].map do |collection|
|
|
21
|
+
collection['name']
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def wait_for_removals_to_finish
|
|
26
|
+
database.command(getlasterror: 1)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module DatabaseCleaner
|
|
2
|
+
module Mongoid
|
|
3
|
+
module Mongoid5Mixin
|
|
4
|
+
def clean
|
|
5
|
+
collections_to_delete.each(&:delete_many)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def database
|
|
11
|
+
if @db.nil? || @db == :default
|
|
12
|
+
::Mongoid::Clients.default
|
|
13
|
+
else
|
|
14
|
+
::Mongoid::Clients.with_name(@db)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def collections
|
|
19
|
+
if db != :default
|
|
20
|
+
database.use(db)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
database.collections.collect { |c| c.namespace.split('.',2)[1] }
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
metadata
CHANGED
|
@@ -1,51 +1,52 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: database_cleaner-mongoid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ernesto Tagwerker
|
|
8
|
+
- Micah Geisel
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: exe
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 2021-01-31 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: database_cleaner
|
|
15
|
+
name: database_cleaner-core
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
16
17
|
requirements:
|
|
17
18
|
- - "~>"
|
|
18
19
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
+
version: 2.0.0
|
|
20
21
|
type: :runtime
|
|
21
22
|
prerelease: false
|
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
24
|
requirements:
|
|
24
25
|
- - "~>"
|
|
25
26
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
27
|
+
version: 2.0.0
|
|
27
28
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
29
|
+
name: mongoid
|
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
|
30
31
|
requirements:
|
|
31
|
-
- - "
|
|
32
|
+
- - ">="
|
|
32
33
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
+
version: '0'
|
|
34
35
|
type: :runtime
|
|
35
36
|
prerelease: false
|
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
38
|
requirements:
|
|
38
|
-
- - "
|
|
39
|
+
- - ">="
|
|
39
40
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
41
|
+
version: '0'
|
|
41
42
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
43
|
+
name: bundler
|
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
|
44
45
|
requirements:
|
|
45
46
|
- - ">="
|
|
46
47
|
- !ruby/object:Gem::Version
|
|
47
48
|
version: '0'
|
|
48
|
-
type: :
|
|
49
|
+
type: :development
|
|
49
50
|
prerelease: false
|
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
52
|
requirements:
|
|
@@ -53,47 +54,47 @@ dependencies:
|
|
|
53
54
|
- !ruby/object:Gem::Version
|
|
54
55
|
version: '0'
|
|
55
56
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
57
|
+
name: appraisal
|
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
|
58
59
|
requirements:
|
|
59
|
-
- - "
|
|
60
|
+
- - ">="
|
|
60
61
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
62
|
+
version: '0'
|
|
62
63
|
type: :development
|
|
63
64
|
prerelease: false
|
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
66
|
requirements:
|
|
66
|
-
- - "
|
|
67
|
+
- - ">="
|
|
67
68
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
69
|
+
version: '0'
|
|
69
70
|
- !ruby/object:Gem::Dependency
|
|
70
71
|
name: rake
|
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
|
72
73
|
requirements:
|
|
73
|
-
- - "
|
|
74
|
+
- - ">="
|
|
74
75
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
76
|
+
version: '0'
|
|
76
77
|
type: :development
|
|
77
78
|
prerelease: false
|
|
78
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
80
|
requirements:
|
|
80
|
-
- - "
|
|
81
|
+
- - ">="
|
|
81
82
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
83
|
+
version: '0'
|
|
83
84
|
- !ruby/object:Gem::Dependency
|
|
84
85
|
name: rspec
|
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
|
86
87
|
requirements:
|
|
87
|
-
- - "
|
|
88
|
+
- - ">="
|
|
88
89
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
90
|
+
version: '0'
|
|
90
91
|
type: :development
|
|
91
92
|
prerelease: false
|
|
92
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
94
|
requirements:
|
|
94
|
-
- - "
|
|
95
|
+
- - ">="
|
|
95
96
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
97
|
+
version: '0'
|
|
97
98
|
description: Strategies for cleaning databases using Mongoid. Can be used to ensure
|
|
98
99
|
a clean state for testing.
|
|
99
100
|
email:
|
|
@@ -105,19 +106,25 @@ files:
|
|
|
105
106
|
- ".gitignore"
|
|
106
107
|
- ".rspec"
|
|
107
108
|
- ".travis.yml"
|
|
109
|
+
- Appraisals
|
|
108
110
|
- Gemfile
|
|
109
|
-
- Gemfile.lock
|
|
110
111
|
- LICENSE.txt
|
|
111
112
|
- README.md
|
|
112
113
|
- Rakefile
|
|
113
114
|
- bin/console
|
|
114
115
|
- bin/setup
|
|
115
116
|
- database_cleaner-mongoid.gemspec
|
|
117
|
+
- gemfiles/.bundle/config
|
|
118
|
+
- gemfiles/mongoid3.gemfile
|
|
119
|
+
- gemfiles/mongoid4.gemfile
|
|
120
|
+
- gemfiles/mongoid5.gemfile
|
|
121
|
+
- gemfiles/mongoid6.gemfile
|
|
122
|
+
- gemfiles/mongoid7.gemfile
|
|
116
123
|
- lib/database_cleaner-mongoid.rb
|
|
117
|
-
- lib/database_cleaner/mongo2/truncation_mixin.rb
|
|
118
124
|
- lib/database_cleaner/mongoid.rb
|
|
119
|
-
- lib/database_cleaner/mongoid/
|
|
120
|
-
- lib/database_cleaner/mongoid/
|
|
125
|
+
- lib/database_cleaner/mongoid/deletion.rb
|
|
126
|
+
- lib/database_cleaner/mongoid/mongoid4_mixin.rb
|
|
127
|
+
- lib/database_cleaner/mongoid/mongoid5_mixin.rb
|
|
121
128
|
- lib/database_cleaner/mongoid/version.rb
|
|
122
129
|
homepage: https://github.com/DatabaseCleaner/database_cleaner-mongoid
|
|
123
130
|
licenses:
|
|
@@ -138,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
138
145
|
- !ruby/object:Gem::Version
|
|
139
146
|
version: '0'
|
|
140
147
|
requirements: []
|
|
141
|
-
rubygems_version: 3.0.
|
|
148
|
+
rubygems_version: 3.0.3
|
|
142
149
|
signing_key:
|
|
143
150
|
specification_version: 4
|
|
144
151
|
summary: Strategies for cleaning databases using Mongoid. Can be used to ensure a
|
data/Gemfile.lock
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: ../..
|
|
3
|
-
specs:
|
|
4
|
-
database_cleaner (1.8.0)
|
|
5
|
-
|
|
6
|
-
PATH
|
|
7
|
-
remote: ..
|
|
8
|
-
specs:
|
|
9
|
-
database_cleaner-mongo (1.8.0)
|
|
10
|
-
database_cleaner (~> 1.8.0)
|
|
11
|
-
mongo
|
|
12
|
-
|
|
13
|
-
PATH
|
|
14
|
-
remote: .
|
|
15
|
-
specs:
|
|
16
|
-
database_cleaner-mongoid (1.8.0)
|
|
17
|
-
database_cleaner (~> 1.8.0)
|
|
18
|
-
database_cleaner-mongo (~> 1.8.0)
|
|
19
|
-
mongoid
|
|
20
|
-
|
|
21
|
-
GEM
|
|
22
|
-
remote: https://rubygems.org/
|
|
23
|
-
specs:
|
|
24
|
-
activemodel (5.2.4.1)
|
|
25
|
-
activesupport (= 5.2.4.1)
|
|
26
|
-
activesupport (5.2.4.1)
|
|
27
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
28
|
-
i18n (>= 0.7, < 2)
|
|
29
|
-
minitest (~> 5.1)
|
|
30
|
-
tzinfo (~> 1.1)
|
|
31
|
-
bson (4.5.0)
|
|
32
|
-
concurrent-ruby (1.1.5)
|
|
33
|
-
diff-lcs (1.3)
|
|
34
|
-
i18n (1.5.1)
|
|
35
|
-
concurrent-ruby (~> 1.0)
|
|
36
|
-
minitest (5.14.0)
|
|
37
|
-
mongo (2.10.2)
|
|
38
|
-
bson (>= 4.4.2, < 5.0.0)
|
|
39
|
-
mongoid (7.0.5)
|
|
40
|
-
activemodel (>= 5.1, < 6.1)
|
|
41
|
-
mongo (>= 2.5.1, < 3.0.0)
|
|
42
|
-
rake (10.4.2)
|
|
43
|
-
rspec (3.7.0)
|
|
44
|
-
rspec-core (~> 3.7.0)
|
|
45
|
-
rspec-expectations (~> 3.7.0)
|
|
46
|
-
rspec-mocks (~> 3.7.0)
|
|
47
|
-
rspec-core (3.7.1)
|
|
48
|
-
rspec-support (~> 3.7.0)
|
|
49
|
-
rspec-expectations (3.7.0)
|
|
50
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
51
|
-
rspec-support (~> 3.7.0)
|
|
52
|
-
rspec-mocks (3.7.0)
|
|
53
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
54
|
-
rspec-support (~> 3.7.0)
|
|
55
|
-
rspec-support (3.7.1)
|
|
56
|
-
thread_safe (0.3.6)
|
|
57
|
-
tzinfo (1.2.6)
|
|
58
|
-
thread_safe (~> 0.1)
|
|
59
|
-
|
|
60
|
-
PLATFORMS
|
|
61
|
-
ruby
|
|
62
|
-
|
|
63
|
-
DEPENDENCIES
|
|
64
|
-
bundler (~> 1.16)
|
|
65
|
-
database_cleaner!
|
|
66
|
-
database_cleaner-mongo!
|
|
67
|
-
database_cleaner-mongoid!
|
|
68
|
-
rake (~> 10.0)
|
|
69
|
-
rspec (~> 3.0)
|
|
70
|
-
|
|
71
|
-
BUNDLED WITH
|
|
72
|
-
1.17.3
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
module DatabaseCleaner
|
|
2
|
-
module Mongo2
|
|
3
|
-
module TruncationMixin
|
|
4
|
-
|
|
5
|
-
def clean
|
|
6
|
-
if @only
|
|
7
|
-
collections.each { |c| database[c].find.delete_many if @only.include?(c) }
|
|
8
|
-
else
|
|
9
|
-
collections.each { |c| database[c].find.delete_many unless @tables_to_exclude.include?(c) }
|
|
10
|
-
end
|
|
11
|
-
true
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
def database
|
|
17
|
-
if @db.nil? || @db == :default
|
|
18
|
-
::Mongoid::Clients.default
|
|
19
|
-
else
|
|
20
|
-
::Mongoid::Clients.with_name(@db)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def collections
|
|
25
|
-
if db != :default
|
|
26
|
-
database.use(db)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
database.collections.collect { |c| c.namespace.split('.',2)[1] }
|
|
30
|
-
|
|
31
|
-
# database['system.namespaces'].find(:name => { '$not' => /\.system\.|\$/ }).to_a.map do |collection|
|
|
32
|
-
# _, name = collection['name'].split('.', 2)
|
|
33
|
-
# name
|
|
34
|
-
# end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require 'database_cleaner/generic/base'
|
|
2
|
-
module DatabaseCleaner
|
|
3
|
-
module Mongoid
|
|
4
|
-
def self.available_strategies
|
|
5
|
-
%w[truncation]
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
module Base
|
|
9
|
-
include ::DatabaseCleaner::Generic::Base
|
|
10
|
-
|
|
11
|
-
def db=(desired_db)
|
|
12
|
-
@db = desired_db
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def db
|
|
16
|
-
@db || :default
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
require 'database_cleaner/mongoid/base'
|
|
2
|
-
require 'database_cleaner/generic/truncation'
|
|
3
|
-
require 'database_cleaner/mongo/truncation_mixin'
|
|
4
|
-
require 'database_cleaner/mongo2/truncation_mixin'
|
|
5
|
-
require 'database_cleaner/moped/truncation_base'
|
|
6
|
-
require 'mongoid/version'
|
|
7
|
-
|
|
8
|
-
module DatabaseCleaner
|
|
9
|
-
module Mongoid
|
|
10
|
-
class Truncation
|
|
11
|
-
include ::DatabaseCleaner::Mongoid::Base
|
|
12
|
-
include ::DatabaseCleaner::Generic::Truncation
|
|
13
|
-
|
|
14
|
-
if ::Mongoid::VERSION < '3'
|
|
15
|
-
|
|
16
|
-
include ::DatabaseCleaner::Mongo::TruncationMixin
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def database
|
|
21
|
-
::Mongoid.database
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
elsif ::Mongoid::VERSION < '5'
|
|
25
|
-
|
|
26
|
-
include ::DatabaseCleaner::Moped::TruncationBase
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def session
|
|
31
|
-
::Mongoid::VERSION > "5.0.0" ? ::Mongoid.default_client : ::Mongoid.default_session
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def database
|
|
35
|
-
if not(@db.nil? or @db == :default)
|
|
36
|
-
::Mongoid.databases[@db]
|
|
37
|
-
else
|
|
38
|
-
::Mongoid.database
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
else
|
|
43
|
-
|
|
44
|
-
include ::DatabaseCleaner::Mongo2::TruncationMixin
|
|
45
|
-
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|