class Sequel::SchemaSharding::Finder

Public Instance Methods

lookup(table_name, id) click to toggle source
# File lib/sequel/schema-sharding/finder.rb, line 18
def lookup(table_name, id)
  shard_number = shard_for_id(table_name, id)
  physical_shard = config.logical_shard_configs(table_name)[shard_number]

  conn = Sequel::SchemaSharding.connection_manager[physical_shard]
  schema = Sequel::SchemaSharding.connection_manager.schema_for(table_name, shard_number)

  Result.new(conn, schema, shard_number)
end

Private Instance Methods

config() click to toggle source
# File lib/sequel/schema-sharding/finder.rb, line 39
def config
  Sequel::SchemaSharding.config
end
ring(table_name) click to toggle source
# File lib/sequel/schema-sharding/finder.rb, line 34
def ring(table_name)
  @rings ||= {}
  @rings[table_name] ||= Sequel::SchemaSharding::Ring.new(config.logical_shard_configs(table_name).keys)
end
shard_for_id(table_name, id) click to toggle source
# File lib/sequel/schema-sharding/finder.rb, line 30
def shard_for_id(table_name, id)
  ring(table_name).shard_for_id(id)
end