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