replica_pools 2.5.0 → 2.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5266f3b52cb6ff8d9e54175b60ee4938a2765ac08fc5c1a09af659b8a93d61f4
4
- data.tar.gz: ad735b62e57f38f238941e579b106f744c41db7b2985d9a7044fd4fa3f738227
3
+ metadata.gz: da0145ee587f2856d0ba448914437caf148e8825abc9e2b31a853e8c6585ffdb
4
+ data.tar.gz: 26ffb29f8c44dcaefa6f0ba16452ab4af4757c46e1f660d76f6e3906cc2edb06
5
5
  SHA512:
6
- metadata.gz: a8a5292802eab9a70512d8e91b6838556614f35c43efd3d277c54b838e913168980bfbab0dedfd961ab55e4a0dc1b65f5422ee0cb3f4afddacc923d3a75b26e7
7
- data.tar.gz: 9c7e5fa395316788a77e836a82a83a1e6141df829ea573539421e95e8d4b3ade55e6588afd85990dbbc2101fc519006312c022f1ad1524e1f74dc4e25a19fa2d
6
+ metadata.gz: 70883d9c60ccfc07230b262af71c476d2944321e371a6bbdc4ba873eefe17e49e9185ac1bae7a95b30f51f6874b2a8d313fe2b35dc3b9c3253918b590d8a5798
7
+ data.tar.gz: c47b4975d6bbc30e44602ed51a60ea9d827624b3dabf726ad54d21524691e8acbf78545d7b1afecf5322d5122fce2a908b0461a68f6411a0f16e058354356c64
@@ -64,8 +64,8 @@ module ReplicaPools
64
64
  end
65
65
  end
66
66
 
67
- def transaction(*args, &block)
68
- with_leader { leader.transaction(*args, &block) }
67
+ def transaction(...)
68
+ with_leader { leader.transaction(...) }
69
69
  end
70
70
 
71
71
  def next_replica!
@@ -86,9 +86,9 @@ module ReplicaPools
86
86
  # Proxies any unknown methods to leader.
87
87
  # Safe methods have been generated during `setup!`.
88
88
  # Creates a method to speed up subsequent calls.
89
- def method_missing(method, *args, &block)
90
- self.class.define_method(method) do |*args, &block|
91
- route_to(leader, method, *args, &block).tap do
89
+ def method_missing(method, *args, **kwargs, &block)
90
+ self.class.define_method(method) do |*args, **kwargs, &block|
91
+ route_to(leader, method, *args, **kwargs, &block).tap do
92
92
  if %i[insert delete update].include?(method)
93
93
  leader.retrieve_connection.clear_query_cache
94
94
  end
@@ -34,18 +34,20 @@ module ReplicaPools
34
34
  end
35
35
 
36
36
  def config_hash
37
- if ActiveRecord::VERSION::MAJOR > 6
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
@@ -18,11 +18,11 @@ module ReplicaPools
18
18
  # select_all is trickier. it needs to use the leader
19
19
  # connection for cache logic, but ultimately pass its query
20
20
  # through to whatever connection is current.
21
- def select_all(*args)
21
+ def select_all(*args, **kwargs)
22
22
  relation, name, raw_binds = args
23
23
 
24
24
  if !query_cache_enabled || locked?(relation)
25
- return route_to(current, :select_all, *args)
25
+ return route_to(current, :select_all, *args, **kwargs)
26
26
  end
27
27
 
28
28
  # duplicate binds_from_relation behavior introduced in 4.2.
@@ -38,9 +38,9 @@ module ReplicaPools
38
38
  args[2] = binds
39
39
 
40
40
  if Gem::Version.new(ActiveRecord.version) < Gem::Version.new('5.1')
41
- cache_sql(sql, binds) { route_to(current, :select_all, *args) }
41
+ cache_sql(sql, binds) { route_to(current, :select_all, *args, **kwargs) }
42
42
  else
43
- cache_sql(sql, name, binds) { route_to(current, :select_all, *args) }
43
+ cache_sql(sql, name, binds) { route_to(current, :select_all, *args, **kwargs) }
44
44
  end
45
45
  end
46
46
 
@@ -1,3 +1,3 @@
1
1
  module ReplicaPools
2
- VERSION = "2.5.0"
2
+ VERSION = "2.6.1"
3
3
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: replica_pools
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Drabik
8
8
  - Lance Ivy
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-03-13 00:00:00.000000000 Z
12
+ date: 2023-04-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -143,7 +143,7 @@ homepage: https://github.com/kickstarter/replica_pools
143
143
  licenses:
144
144
  - MIT
145
145
  metadata: {}
146
- post_install_message:
146
+ post_install_message:
147
147
  rdoc_options: []
148
148
  require_paths:
149
149
  - lib
@@ -151,21 +151,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - ">="
153
153
  - !ruby/object:Gem::Version
154
- version: '0'
154
+ version: 2.7.0
155
155
  required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '1.2'
160
160
  requirements: []
161
- rubygems_version: 3.2.33
162
- signing_key:
161
+ rubygems_version: 3.1.6
162
+ signing_key:
163
163
  specification_version: 4
164
164
  summary: Connection proxy for ActiveRecord for leader / replica setups.
165
165
  test_files:
166
- - spec/config/test_model.rb
167
- - spec/connection_proxy_spec.rb
166
+ - spec/spec_helper.rb
168
167
  - spec/pool_spec.rb
169
- - spec/query_cache_spec.rb
170
168
  - spec/slave_pools_spec.rb
171
- - spec/spec_helper.rb
169
+ - spec/config/test_model.rb
170
+ - spec/query_cache_spec.rb
171
+ - spec/connection_proxy_spec.rb