active_record_shards 3.11.0 → 3.11.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
  SHA1:
3
- metadata.gz: b2e0335664e4c146e1d5270e519fd102eda815fa
4
- data.tar.gz: 074003c3628875cf9e94cb8a8d1aa0f009baa9d1
3
+ metadata.gz: 3cbfb7e59c8d4f61eed565d7a674fb674ddf2071
4
+ data.tar.gz: a0cb38cbe1854083eda4a7ccf343cc06e62bb86c
5
5
  SHA512:
6
- metadata.gz: 4caa2e0aeea79f006eef29d1dd6b5c80908c68f72de26c3383ed13cc85682586a5d62cd3bad0460bf969b4d8f26fadc7167f730a468bfd1c8d12bfcbeb776497
7
- data.tar.gz: 5fa6b720056fab9c81c95c49e5e0ad474d85cae217910e68b1e3f5040082c6c5dd693bfd40524e6476fee75a7008847308d8940493c5422b4fd0848b26388c23
6
+ metadata.gz: 4bd58f711a2a3754bd44cf99df5dcd1aa465cd97b103da5ba96b527683bd725aacd594da410083d9ef5bd10845ac6281a7704373acd6d222fa29a814cd36df94
7
+ data.tar.gz: f7a37e019a03eb4645252b2cbcd38d3b71c318b3af27f7aecb467a1b41cf926e21b105e070f361e0a17ea2d7568d7dde3f95b69b645682de7d90e8fbc5d685d9
@@ -6,8 +6,13 @@ module ActiveRecordShards
6
6
  SHARD_NAMES_CONFIG_KEY = 'shard_names'.freeze
7
7
 
8
8
  def self.extended(base)
9
- base.singleton_class.send(:alias_method, :columns_without_default_shard, :columns)
10
- base.singleton_class.send(:alias_method, :columns, :columns_with_default_shard)
9
+ if ActiveRecord::VERSION::MAJOR >= 5
10
+ base.singleton_class.send(:alias_method, :load_schema_without_default_shard!, :load_schema!)
11
+ base.singleton_class.send(:alias_method, :load_schema!, :load_schema_with_default_shard!)
12
+ else
13
+ base.singleton_class.send(:alias_method, :columns_without_default_shard, :columns)
14
+ base.singleton_class.send(:alias_method, :columns, :columns_with_default_shard)
15
+ end
11
16
 
12
17
  base.singleton_class.send(:alias_method, :table_exists_without_default_shard?, :table_exists?)
13
18
  base.singleton_class.send(:alias_method, :table_exists?, :table_exists_with_default_shard?)
@@ -177,8 +182,14 @@ module ActiveRecordShards
177
182
  end
178
183
  end
179
184
 
180
- def columns_with_default_shard
181
- with_default_shard { columns_without_default_shard }
185
+ if ActiveRecord::VERSION::MAJOR >= 5
186
+ def load_schema_with_default_shard!
187
+ with_default_shard { load_schema_without_default_shard! }
188
+ end
189
+ else
190
+ def columns_with_default_shard
191
+ with_default_shard { columns_without_default_shard }
192
+ end
182
193
  end
183
194
 
184
195
  def table_exists_with_default_shard?
@@ -24,11 +24,22 @@ module ActiveRecordShards
24
24
  end
25
25
 
26
26
  def on_slave_by_default?
27
- base_class.instance_variable_get(:@on_slave_by_default)
27
+ if self == ActiveRecord::Base
28
+ false
29
+ else
30
+ base = base_class
31
+ if base.instance_variable_defined?(:@on_slave_by_default)
32
+ base.instance_variable_get(:@on_slave_by_default)
33
+ end
34
+ end
28
35
  end
29
36
 
30
37
  def on_slave_by_default=(value)
31
- base_class.instance_variable_set(:@on_slave_by_default, value)
38
+ if self == ActiveRecord::Base
39
+ raise ArgumentError, "Cannot set on_slave_by_default on ActiveRecord::Base"
40
+ else
41
+ base_class.instance_variable_set(:@on_slave_by_default, value)
42
+ end
32
43
  end
33
44
 
34
45
  module InstanceMethods
@@ -10,7 +10,7 @@ module ActiveRecordShards
10
10
  end
11
11
 
12
12
  def self.enable
13
- ActiveRecord::Base.connection.class.prepend(Methods)
13
+ ActiveRecord::Base.on_shard(nil) { ActiveRecord::Base.connection.class.prepend(Methods) }
14
14
  end
15
15
  end
16
16
  end
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: 3.11.0
4
+ version: 3.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mick Staugaard
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-09-05 00:00:00.000000000 Z
13
+ date: 2017-09-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -229,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
229
  version: '0'
230
230
  requirements: []
231
231
  rubyforge_project:
232
- rubygems_version: 2.5.1
232
+ rubygems_version: 2.6.13
233
233
  signing_key:
234
234
  specification_version: 4
235
235
  summary: Simple database switching for ActiveRecord.