Class: ActiveRecord::Turntable::Shard

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/turntable/shard.rb

Direct Known Subclasses

MasterShard, SeqShard

Constant Summary collapse

DEFAULT_CONFIG =
{
  "connection" => (defined?(Rails) ? Rails.env : "development")
}.with_indifferent_access

Instance Method Summary collapse

Constructor Details

#initialize(shard_spec) ⇒ Shard

Returns a new instance of Shard.



7
8
9
10
# File 'lib/active_record/turntable/shard.rb', line 7

def initialize(shard_spec)
  @config = DEFAULT_CONFIG.merge(shard_spec)
  @name = @config["connection"]
end

Instance Method Details

#connectionObject



16
17
18
19
20
# File 'lib/active_record/turntable/shard.rb', line 16

def connection
  connection = connection_pool.connection
  connection.turntable_shard_name = name
  connection
end

#connection_poolObject



12
13
14
# File 'lib/active_record/turntable/shard.rb', line 12

def connection_pool
  @connection_pool ||= retrieve_connection_pool
end

#nameObject



22
23
24
# File 'lib/active_record/turntable/shard.rb', line 22

def name
  @name
end