active_record_shards 5.3.2 → 5.3.3
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 +4 -4
- data/lib/active_record_shards/model.rb +13 -19
- data/lib/active_record_shards.rb +11 -0
- 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: e71e05125d6c15ad696e8243cb09234c09d29e1c381b47adeee2a81b0b79e188
|
4
|
+
data.tar.gz: f06e143aabfc0e14d3058e03acc367e54d0219bcbf9355df57ee33e174393dbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60629cde5e087c941d9ce3d753a57c5d73f37cbd78d9e7b0f6f1d921834c25267371a0b2e957a92112eac3f295a837a2a41681cda63dc3a6bfd981811dfbcd91
|
7
|
+
data.tar.gz: 2c4e012130eead2088089cefb2204508141b3bd5056f733ccd26029fa053ae78b10b077750b64f5b364731b752842210086e368f813b3b1b333e9cdf2fecefb9
|
@@ -11,26 +11,20 @@ module ActiveRecordShards
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def is_sharded? # rubocop:disable Naming/PredicateName
|
14
|
-
|
15
|
-
# doesn't work until Ruby 2.7 (and this gem currently supports 2.6) because
|
16
|
-
# the sharded attr_accessor is private. Private methods must be called without
|
17
|
-
# a receiver, but Ruby 2.7+ does allow an explicit "self" as a receiver.
|
18
|
-
return sharded unless sharded.nil?
|
14
|
+
return @_ars_model_is_sharded unless @_ars_model_is_sharded.nil?
|
19
15
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
base_class.is_sharded?
|
33
|
-
end
|
16
|
+
@_ars_model_is_sharded =
|
17
|
+
if self == ActiveRecord::Base
|
18
|
+
sharded != false && supports_sharding?
|
19
|
+
elsif self == base_class
|
20
|
+
if sharded.nil?
|
21
|
+
ActiveRecord::Base.is_sharded?
|
22
|
+
else
|
23
|
+
sharded != false
|
24
|
+
end
|
25
|
+
else
|
26
|
+
base_class.is_sharded?
|
27
|
+
end
|
34
28
|
end
|
35
29
|
|
36
30
|
def on_replica_by_default?
|
data/lib/active_record_shards.rb
CHANGED
@@ -27,6 +27,17 @@ module ActiveRecordShards
|
|
27
27
|
env || 'development'
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
# Busts internal caches kept by active_record_shards, for things which are _supposed_ to be the
|
32
|
+
# same for the life of the process. You shouldn't need to call this unless you're doing something
|
33
|
+
# truly evil like changing RAILS_ENV after boot
|
34
|
+
def self.reset_app_env!
|
35
|
+
@app_env = nil
|
36
|
+
models = [ActiveRecord::Base] + ActiveRecord::Base.descendants
|
37
|
+
models.each do |model|
|
38
|
+
model.remove_instance_variable(:@_ars_model_is_sharded) if model.instance_variable_defined?(:@_ars_model_is_sharded)
|
39
|
+
end
|
40
|
+
end
|
30
41
|
end
|
31
42
|
|
32
43
|
ActiveRecord::Base.extend(ActiveRecordShards::ConfigurationParser)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_record_shards
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.3.
|
4
|
+
version: 5.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Quorning
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2023-04-
|
16
|
+
date: 2023-04-28 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: activerecord
|