switchman 3.5.22 → 3.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: fa5da3b192752676ea8513c8fd05d72e347b10979b7b47ada9cdf008941fc2ac
4
- data.tar.gz: 1da3c8eba9d967ca1a3edd550ecc7dd8bb1dea6193be3a752a65e95dc0beb54d
3
+ metadata.gz: 30e02a7b02e23693a5bab2272c0d51d452ca8f22aac18bf869c68280a002a333
4
+ data.tar.gz: c6e252c1c8fae37d78d801f446ebb6ddeb83c82b89690eda4bff7f8157e93c07
5
5
  SHA512:
6
- metadata.gz: 7ba322eda93832f04595bb93f52153c61db3df1848404d80daf83e4b77b070f45c2d84cc2b6a5ba90c68cd5fbe26745f7ff2932b1a510ad15559f8234dab9bd2
7
- data.tar.gz: 2453c5bccf84d20766340fe60512aec89547d27287832806964688c630f2af5d90070932c49e215f4a6ce209dfb701b1afa181ea1abe4fb8a009c03b55dea88e
6
+ metadata.gz: 2ad549fbd26947a8ae1fc61e966741d1541b767429be8f4c3c57b1955390bbab2481629e88450ad31ea6d8ae219801713740841c70a07283028c7ccbcfd60caf
7
+ data.tar.gz: 9f2481438cdc6d232e758174f405aeb641c1d02467172679cd2cb72ea4cd18569c0a00c626e9514de4dadd76cca2cc7c72dd80e28287e60e9bdd2c2632360021
@@ -83,7 +83,7 @@ module Switchman
83
83
  config_or_env ||= if current_shard == ::Rails.env.to_sym && current_role == :primary
84
84
  :primary
85
85
  else
86
- "#{current_shard}/#{current_role}".to_sym
86
+ :"#{current_shard}/#{current_role}"
87
87
  end
88
88
 
89
89
  super(config_or_env)
@@ -64,7 +64,7 @@ module Switchman
64
64
  end
65
65
 
66
66
  def tls_key
67
- "#{object_id}_shard".to_sym
67
+ :"#{object_id}_shard"
68
68
  end
69
69
  end
70
70
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Switchman
4
+ module ActiveRecord
5
+ module PendingMigrationConnection
6
+ def self.current_switchman_shard
7
+ ::ActiveRecord::Base.current_switchman_shard
8
+ end
9
+ end
10
+ end
11
+ end
@@ -44,6 +44,12 @@ module Switchman
44
44
  primary_shard.activate(klass.connection_class_for_self) { super }
45
45
  end
46
46
 
47
+ if ::Rails.version > "7.1.2"
48
+ def transaction(...)
49
+ primary_shard.activate(klass.connection_class_for_self) { super }
50
+ end
51
+ end
52
+
47
53
  def explain
48
54
  activate { |relation| relation.call_super(:explain, Relation) }
49
55
  end
@@ -58,10 +64,9 @@ module Switchman
58
64
  end
59
65
 
60
66
  %I[update_all delete_all].each do |method|
61
- arg_params = (RUBY_VERSION <= "2.8") ? "*args" : "*args, **kwargs"
62
67
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
63
- def #{method}(#{arg_params})
64
- result = self.activate(unordered: true) { |relation| relation.call_super(#{method.inspect}, Relation, #{arg_params}) }
68
+ def #{method}(*args, **kwargs)
69
+ result = self.activate(unordered: true) { |relation| relation.call_super(#{method.inspect}, Relation, *args, **kwargs) }
65
70
  result = result.sum if result.is_a?(Array)
66
71
  result
67
72
  end
@@ -12,14 +12,8 @@ module Switchman
12
12
  method.super_method
13
13
  end
14
14
 
15
- if RUBY_VERSION <= "2.8"
16
- def call_super(method, above_module, *args, &block)
17
- super_method_above(method, above_module).call(*args, &block)
18
- end
19
- else
20
- def call_super(method, above_module, *args, **kwargs, &block)
21
- super_method_above(method, above_module).call(*args, **kwargs, &block)
22
- end
15
+ def call_super(method, above_module, ...)
16
+ super_method_above(method, above_module).call(...)
23
17
  end
24
18
  end
25
19
  end
@@ -78,6 +78,10 @@ module Switchman
78
78
  ::ActiveRecord::MigrationContext.prepend(ActiveRecord::MigrationContext)
79
79
  ::ActiveRecord::Migrator.prepend(ActiveRecord::Migrator)
80
80
 
81
+ if ::Rails.version > "7.1.3"
82
+ ::ActiveRecord::PendingMigrationConnection.include(ActiveRecord::PendingMigrationConnection)
83
+ end
84
+
81
85
  ::ActiveRecord::Reflection::AbstractReflection.include(ActiveRecord::Reflection::AbstractReflection)
82
86
  ::ActiveRecord::Reflection::AssociationReflection.prepend(ActiveRecord::Reflection::AssociationScopeCache)
83
87
  ::ActiveRecord::Reflection::ThroughReflection.prepend(ActiveRecord::Reflection::AssociationScopeCache)
@@ -13,9 +13,8 @@ module Switchman
13
13
  end
14
14
 
15
15
  %w[update_all delete_all].each do |method|
16
- arg_params = (RUBY_VERSION <= "2.8") ? "*args" : "*args, **kwargs"
17
16
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
18
- def #{method}(#{arg_params})
17
+ def #{method}(*args, **kwargs)
19
18
  db = Shard.current(connection_class_for_self).database_server
20
19
  db.unguard { super }
21
20
  end
@@ -3,7 +3,7 @@
3
3
  module Switchman
4
4
  class ShardedInstrumenter < ::SimpleDelegator
5
5
  def initialize(instrumenter, shard_host)
6
- super instrumenter
6
+ super(instrumenter)
7
7
  @shard_host = shard_host
8
8
  end
9
9
 
@@ -23,7 +23,7 @@ module Switchman
23
23
  end
24
24
  }
25
25
  end
26
- super name, payload
26
+ super(name, payload)
27
27
  end
28
28
  end
29
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Switchman
4
- VERSION = "3.5.22"
4
+ VERSION = "3.6.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: switchman
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.22
4
+ version: 3.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-02-26 00:00:00.000000000 Z
13
+ date: 2024-03-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -249,6 +249,7 @@ files:
249
249
  - lib/switchman/active_record/log_subscriber.rb
250
250
  - lib/switchman/active_record/migration.rb
251
251
  - lib/switchman/active_record/model_schema.rb
252
+ - lib/switchman/active_record/pending_migration_connection.rb
252
253
  - lib/switchman/active_record/persistence.rb
253
254
  - lib/switchman/active_record/postgresql_adapter.rb
254
255
  - lib/switchman/active_record/predicate_builder.rb
@@ -297,14 +298,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
297
298
  requirements:
298
299
  - - ">="
299
300
  - !ruby/object:Gem::Version
300
- version: '2.7'
301
+ version: '3.0'
301
302
  required_rubygems_version: !ruby/object:Gem::Requirement
302
303
  requirements:
303
304
  - - ">="
304
305
  - !ruby/object:Gem::Version
305
306
  version: '0'
306
307
  requirements: []
307
- rubygems_version: 3.1.6
308
+ rubygems_version: 3.2.33
308
309
  signing_key:
309
310
  specification_version: 4
310
311
  summary: Rails sharding magic