class ActiveRecord::ShardFor::AbstractShardRepository
Attributes
shards[R]
Public Instance Methods
all()
click to toggle source
@return [Array<Class>]
# File lib/activerecord/shard_for/abstract_shard_repository.rb, line 24 def all shards.values end
fetch(connection_name)
click to toggle source
@param [Symbol] connection_name @return [Class] A model class for this shard
# File lib/activerecord/shard_for/abstract_shard_repository.rb, line 8 def fetch(connection_name) shards.fetch(connection_name) end
fetch_by_key(key)
click to toggle source
@param [Object] key sharding key object for connection @return [Class, nil] A AR model class.
# File lib/activerecord/shard_for/abstract_shard_repository.rb, line 14 def fetch_by_key(key) shards.values.find do |model| case model.assigned_key when Range then model.assigned_key.include?(key) else model.assigned_key == key end end end
Private Instance Methods
generate_shard_name(connection_name)
click to toggle source
@param [Symbol] connection_name @return [String]
# File lib/activerecord/shard_for/abstract_shard_repository.rb, line 32 def generate_shard_name(connection_name) "ShardFor#{connection_name.to_s.tr('-', '_').classify}" end