module ActiveRecordShards::Model
Attributes
sharded[RW]
Public Class Methods
extended(base)
click to toggle source
# File lib/active_record_shards/model.rb, line 65 def self.extended(base) base.send(:include, InstanceMethods) base.after_initialize :initialize_shard_and_replica end
Public Instance Methods
is_sharded?()
click to toggle source
# File lib/active_record_shards/model.rb, line 13 def is_sharded? # rubocop:disable Naming/PredicateName if self == ActiveRecord::Base sharded != false && supports_sharding? elsif self == base_class if sharded.nil? ActiveRecord::Base.is_sharded? else sharded != false end else base_class.is_sharded? end end
not_sharded()
click to toggle source
# File lib/active_record_shards/model.rb, line 5 def not_sharded if self != ActiveRecord::Base && self != base_class raise "You should only call not_sharded on direct descendants of ActiveRecord::Base" end self.sharded = false end
on_replica_by_default=(value)
click to toggle source
# File lib/active_record_shards/model.rb, line 39 def on_replica_by_default=(value) if self == ActiveRecord::Base raise ArgumentError, "Cannot set on_replica_by_default on ActiveRecord::Base" else base_class.instance_variable_set(:@on_replica_by_default, value) end end
Also aliased as: on_slave_by_default=
on_replica_by_default?()
click to toggle source
# File lib/active_record_shards/model.rb, line 27 def on_replica_by_default? if self == ActiveRecord::Base false else base = base_class if base.instance_variable_defined?(:@on_replica_by_default) base.instance_variable_get(:@on_replica_by_default) end end end
Also aliased as: on_slave_by_default?