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