replica_pools 2.6.0 → 2.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/replica_pools/connection_proxy.rb +9 -3
- data/lib/replica_pools/pools.rb +16 -13
- data/lib/replica_pools/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe6224f74496648e6a90578eca09d572a1a76dc354787755be545e5b1e986655
|
4
|
+
data.tar.gz: 6b38d4c3366e1e3d73081522d77c7a4ff6742d7d08fb91341efb46b4001f916b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee964bfeea8cfb1424649808d72bc606426f61d31e2310a4fbed5838de11a0731ee81a68098ec92194f938b3a4ce018e722f418bece8f6007f3437e0f335e59f
|
7
|
+
data.tar.gz: 7e5055af2da714269dfcd9ee50642438e4ec5a8b2c7036105945306bc594cee243e648478a2c979af33f9f992f956af96102903e6cd05414abe3309365a2b93e
|
@@ -33,10 +33,16 @@ module ReplicaPools
|
|
33
33
|
# this ivar is for ConnectionAdapter compatibility
|
34
34
|
# some gems (e.g. newrelic_rpm) will actually use
|
35
35
|
# instance_variable_get(:@config) to find it.
|
36
|
-
|
37
|
-
|
36
|
+
@config = current.send(ReplicaPools::ConnectionProxy.get_connection_config_method_name)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.get_connection_config_method_name
|
40
|
+
# 6.1 supports current.connection_config
|
41
|
+
# but warns of impending deprecation in 6.2
|
42
|
+
if ActiveRecord::VERSION::STRING.to_f >= 6.1
|
43
|
+
:connection_db_config
|
38
44
|
else
|
39
|
-
|
45
|
+
:connection_config
|
40
46
|
end
|
41
47
|
end
|
42
48
|
|
data/lib/replica_pools/pools.rb
CHANGED
@@ -34,28 +34,30 @@ module ReplicaPools
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def config_hash
|
37
|
-
if ActiveRecord::VERSION::MAJOR
|
38
|
-
# in Rails = 7, ActiveRecord::Base.configurations.to_h has been deprecated
|
39
|
-
ActiveRecord::Base.configurations.configs_for.map do |c|
|
40
|
-
[c.env_name, c.configuration_hash.transform_keys(&:to_s)]
|
41
|
-
end.to_h
|
42
|
-
elsif ActiveRecord::VERSION::MAJOR == 6
|
43
|
-
# in Rails = 6, `configurations` is an instance of ActiveRecord::DatabaseConfigurations
|
44
|
-
ActiveRecord::Base.configurations.to_h
|
45
|
-
else
|
37
|
+
if ActiveRecord::VERSION::MAJOR < 6
|
46
38
|
# in Rails < 6, it's just a hash
|
47
|
-
ActiveRecord::Base.configurations
|
39
|
+
return ActiveRecord::Base.configurations
|
48
40
|
end
|
41
|
+
|
42
|
+
if ActiveRecord::VERSION::MAJOR == 6 && ActiveRecord::VERSION::MINOR < 1
|
43
|
+
# in Rails = 6.0, `configurations` is an instance of ActiveRecord::DatabaseConfigurations
|
44
|
+
return ActiveRecord::Base.configurations.to_h
|
45
|
+
end
|
46
|
+
|
47
|
+
# in Rails >= 6.1, ActiveRecord::Base.configurations.to_h has been deprecated
|
48
|
+
ActiveRecord::Base.configurations.configs_for.map do |c|
|
49
|
+
[c.env_name, c.configuration_hash.transform_keys(&:to_s)]
|
50
|
+
end.to_h
|
49
51
|
end
|
50
52
|
|
51
53
|
# generates a unique ActiveRecord::Base subclass for a single replica
|
52
54
|
def connection_class(pool_name, replica_name, connection_name)
|
53
55
|
class_name = "#{pool_name.camelize}#{replica_name.camelize}"
|
54
|
-
|
56
|
+
connection_config_method_name = ReplicaPools::ConnectionProxy.get_connection_config_method_name
|
55
57
|
ReplicaPools.const_set(class_name, Class.new(ActiveRecord::Base) do |c|
|
56
58
|
c.abstract_class = true
|
57
|
-
c.define_singleton_method(
|
58
|
-
configurations.configs_for(connection_name.to_s)
|
59
|
+
c.define_singleton_method(connection_config_method_name) do
|
60
|
+
configurations.configs_for(env_name: connection_name.to_s, include_hidden: true)
|
59
61
|
end
|
60
62
|
end)
|
61
63
|
|
@@ -63,5 +65,6 @@ module ReplicaPools
|
|
63
65
|
c.establish_connection(connection_name.to_sym)
|
64
66
|
end
|
65
67
|
end
|
68
|
+
|
66
69
|
end
|
67
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: replica_pools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Drabik
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-04-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|