switchman 3.3.3 → 3.3.4

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: 786c667d13377d8e04408f506d0bdb01cf64143a89ba029c0fc373d840851c01
4
- data.tar.gz: 01a1e23d2622783d9cc93d36cbec0dbbfd1e4e71d264e7a5e92db9f5446475f2
3
+ metadata.gz: 9dfbc3eb712e4dabeaf71e1772014d3fcc50f439d7266c03943050e4054791f2
4
+ data.tar.gz: 902b59d7077cab4e9c583b55e5f1c3e4df6565e678b806f7df4515033031ea65
5
5
  SHA512:
6
- metadata.gz: 536073d8679b9b4bc5aa1facfea63ac6289caacca60177264321a75bae80c3795bb7941636cb27b1478ac64a6f0f4df9508a5f4ad6f401f200762050ba2e3a9e
7
- data.tar.gz: 64a835f1bf27b2a783f9e834004c43d2c8588b3df22468d5c795e9f6b273d70d1ae8b2645ffab7ff2b23cc8567a0af7d60c37b9136463f0e93378ff965ed0139
6
+ metadata.gz: cba1cdfe3b5297443fe62064db702a3164fab8939497196e2c325e3a28fb6c4d1bbbd64698dd7c861c7f60b32eb5d91d6c1273ec4f8d3eafe45f675f5fcc36b1
7
+ data.tar.gz: b66c46f377262622339d18bd5167c6fca048b02e8167f9636aefae642afca1987ec51c71ed68a4fb3177fd0176c589b4f587c3336cc863f4b3478ed25503af53
@@ -3,6 +3,21 @@
3
3
  module Switchman
4
4
  module ActiveRecord
5
5
  module ConnectionPool
6
+ def get_schema_cache(connection)
7
+ self.schema_cache ||= SharedSchemaCache.get_schema_cache(connection)
8
+ self.schema_cache.connection = connection
9
+
10
+ self.schema_cache
11
+ end
12
+
13
+ # rubocop:disable Naming/AccessorMethodName override method
14
+ def set_schema_cache(cache)
15
+ cache.instance_variables.each do |x|
16
+ self.schema_cache.instance_variable_set(x, cache.instance_variable_get(x))
17
+ end
18
+ end
19
+ # rubocop:enable Naming/AccessorMethodName override method
20
+
6
21
  def default_schema
7
22
  connection unless @schemas
8
23
  # default shard will not switch databases immediately, so it won't be set yet
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Switchman
4
+ class SharedSchemaCache
5
+ def self.get_schema_cache(connection)
6
+ @schema_cache ||= ::ActiveRecord::ConnectionAdapters::SchemaCache.new(connection)
7
+ @schema_cache.connection = connection
8
+ @schema_cache
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Switchman
4
- VERSION = '3.3.3'
4
+ VERSION = '3.3.4'
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.3.3
4
+ version: 3.3.4
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: 2023-03-11 00:00:00.000000000 Z
13
+ date: 2023-03-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -290,6 +290,7 @@ files:
290
290
  - lib/switchman/rails.rb
291
291
  - lib/switchman/shard.rb
292
292
  - lib/switchman/sharded_instrumenter.rb
293
+ - lib/switchman/shared_schema_cache.rb
293
294
  - lib/switchman/standard_error.rb
294
295
  - lib/switchman/test_helper.rb
295
296
  - lib/switchman/unsharded_record.rb