class ActiveRecord::Sharding::ShardRepository

Attributes

base_class[R]

Public Class Methods

new(cluster_config, base_class) click to toggle source
# File lib/active_record/sharding/shard_repository.rb, line 6
def initialize(cluster_config, base_class)
  @base_class = base_class

  shards = cluster_config.connections.map do |connection_name|
    [connection_name, generate_model_for_shard(connection_name)]
  end

  @shards = Hash[shards]
end

Public Instance Methods

all() click to toggle source
# File lib/active_record/sharding/shard_repository.rb, line 20
def all
  @shards.values
end
fetch(connection_name) click to toggle source
# File lib/active_record/sharding/shard_repository.rb, line 16
def fetch(connection_name)
  @shards.fetch connection_name
end

Private Instance Methods

generate_class_name(connection_name) click to toggle source
# File lib/active_record/sharding/shard_repository.rb, line 26
def generate_class_name(connection_name)
  "ShardFor#{connection_name.to_s.tr('-', '_').classify}"
end