database_cleaner-active_record 2.0.0.beta2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: