database_cleaner-active_record 2.0.0.beta2 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53199df54296cd17b30bf241e2ca431323b7bef7c4361240f63a682be6d02ee9
4
- data.tar.gz: 668c5fbe4726841ff27034bcf81de0f98c6ba9494aa2a0cb3fcbade1bfb63d74
3
+ metadata.gz: e2c9c7514dc1bea223af68a8a3822b1fb07e227911897166432f6018ab5b23a9
4
+ data.tar.gz: b3217f7ad1128617b17be1872207df59317204aa7912bca0a00e0aab77490d15
5
5
  SHA512:
6
- metadata.gz: 253bced62511194095bef9671ed30602be05d2c417ba39e79dd7b2df7b58f5f602551ccd53c91ad451746bfb9e6086e107818d089c0b37256e4035098bb10fdf
7
- data.tar.gz: 5a4b22a83f03b8064b77e966c277ae9ebc98ff9ca44c0bb229df817a6b21fc0853b454f7307ae195e4184281f0f6e4d2bfc207b2845fe95e358488c90de70f92
6
+ metadata.gz: 74e5baa1c2eb6de6b39213d9d192dcb649ff069d8ac5a9ad3d9347beb40b68a15c29a16149e2338098d246db3fdb6a7a22baef9911f4be5fb1954560d87e2b81
7
+ data.tar.gz: 991af4358084057df8efd4a05d7fa0eb75756ee8f940a7f2bd2e2da2a65a64a1bd96f668c355948e16b04c33b407276d2076f5bec5b47631e6682dd0a5221408
@@ -10,6 +10,7 @@ gemfile:
10
10
  - gemfiles/rails_5.1.gemfile
11
11
  - gemfiles/rails_5.2.gemfile
12
12
  - gemfiles/rails_6.0.gemfile
13
+ - gemfiles/rails_6.1.gemfile
13
14
  before_install:
14
15
  - bin/setup
15
16
  cache:
data/Appraisals CHANGED
@@ -9,3 +9,7 @@ end
9
9
  appraise "rails-6.0" do
10
10
  gem "rails", "~>6.0.0"
11
11
  end
12
+
13
+ appraise "rails-6.1" do
14
+ gem "rails", "~>6.1.0"
15
+ end
data/README.md CHANGED
@@ -73,8 +73,8 @@ DatabaseCleaner[:active_record].db = :logs
73
73
  DatabaseCleaner[:active_record].db = :default
74
74
 
75
75
  # Multiple databases can be specified:
76
- DatabaseCleaner[:active_record, connection: :default]
77
- DatabaseCleaner[:active_record, connection: :logs]
76
+ DatabaseCleaner[:active_record, db: :default]
77
+ DatabaseCleaner[:active_record, db: :logs]
78
78
  ```
79
79
 
80
80
  ## Common Errors
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "database_cleaner-core", "~>2.0.0.beta2"
22
- spec.add_dependency "activerecord"
21
+ spec.add_dependency "database_cleaner-core", "~>2.0.0"
22
+ spec.add_dependency "activerecord", ">= 5.a"
23
23
 
24
24
  spec.add_development_dependency "bundler"
25
25
  spec.add_development_dependency "appraisal"
@@ -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 "rails", "~>6.1.0"
7
+ gem "byebug"
8
+
9
+ group :test do
10
+ gem "simplecov", require: false
11
+ gem "codecov", require: false
12
+ end
13
+
14
+ gemspec path: "../"
@@ -45,26 +45,32 @@ module DatabaseCleaner
45
45
  private
46
46
 
47
47
  def load_config
48
- if self.db != :default && self.db.is_a?(Symbol) && File.file?(DatabaseCleaner::ActiveRecord.config_file_location)
48
+ if db != :default && db.is_a?(Symbol) && File.file?(DatabaseCleaner::ActiveRecord.config_file_location)
49
49
  connection_details = YAML::load(ERB.new(IO.read(DatabaseCleaner::ActiveRecord.config_file_location)).result)
50
- @connection_hash = valid_config(connection_details)[self.db.to_s]
50
+ @connection_hash = valid_config(connection_details, db.to_s)
51
51
  end
52
52
  end
53
53
 
54
- def valid_config(connection_file)
55
- if !::ActiveRecord::Base.configurations.nil? && !::ActiveRecord::Base.configurations.empty?
56
- if connection_file != ::ActiveRecord::Base.configurations
57
- return ::ActiveRecord::Base.configurations
58
- end
54
+ def valid_config(connection_file, db)
55
+ return connection_file[db] unless (active_record_config_hash = active_record_config_hash_for(db))
56
+
57
+ active_record_config_hash
58
+ end
59
+
60
+ def active_record_config_hash_for(db)
61
+ if ::ActiveRecord.version >= Gem::Version.new('6.1')
62
+ ::ActiveRecord::Base.configurations&.configs_for(name: db)&.configuration_hash
63
+ else
64
+ ::ActiveRecord::Base.configurations[db]
59
65
  end
60
- connection_file
61
66
  end
62
67
 
63
68
  def lookup_from_connection_pool
64
- if ::ActiveRecord::Base.respond_to?(:descendants)
65
- database_name = connection_hash["database"] || connection_hash[:database]
66
- models = ::ActiveRecord::Base.descendants
67
- models.select(&:connection_pool).detect { |m| m.connection_pool.spec.config[:database] == database_name }
69
+ return unless ::ActiveRecord::Base.respond_to?(:descendants)
70
+
71
+ database_name = connection_hash['database'] || connection_hash[:database]
72
+ ::ActiveRecord::Base.descendants.select(&:connection_pool).detect do |model|
73
+ database_for(model) == database_name
68
74
  end
69
75
  end
70
76
 
@@ -72,6 +78,14 @@ module DatabaseCleaner
72
78
  ::ActiveRecord::Base.establish_connection(connection_hash)
73
79
  ::ActiveRecord::Base
74
80
  end
81
+
82
+ def database_for(model)
83
+ if model.connection_pool.respond_to?(:db_config) # ActiveRecord >= 6.1
84
+ model.connection_pool.db_config.configuration_hash[:database]
85
+ else
86
+ model.connection_pool.spec.config[:database]
87
+ end
88
+ end
75
89
  end
76
90
  end
77
91
  end
@@ -1,5 +1,5 @@
1
1
  module DatabaseCleaner
2
2
  module ActiveRecord
3
- VERSION = "2.0.0.beta2"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_cleaner-active_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernesto Tagwerker
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-05-30 00:00:00.000000000 Z
12
+ date: 2021-01-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: database_cleaner-core
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 2.0.0.beta2
20
+ version: 2.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 2.0.0.beta2
27
+ version: 2.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: activerecord
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: 5.a
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '0'
41
+ version: 5.a
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +160,7 @@ files:
160
160
  - gemfiles/rails_5.1.gemfile
161
161
  - gemfiles/rails_5.2.gemfile
162
162
  - gemfiles/rails_6.0.gemfile
163
+ - gemfiles/rails_6.1.gemfile
163
164
  - lib/database_cleaner-active_record.rb
164
165
  - lib/database_cleaner/active_record.rb
165
166
  - lib/database_cleaner/active_record/base.rb
@@ -183,9 +184,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
184
  version: '0'
184
185
  required_rubygems_version: !ruby/object:Gem::Requirement
185
186
  requirements:
186
- - - ">"
187
+ - - ">="
187
188
  - !ruby/object:Gem::Version
188
- version: 1.3.1
189
+ version: '0'
189
190
  requirements: []
190
191
  rubygems_version: 3.0.3
191
192
  signing_key: