Class: ActiveRecord::ShardFor::AbstractShardRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord/shard_for/abstract_shard_repository.rb

Direct Known Subclasses

STIShardRepository, ShardRepository

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#shardsObject (readonly)

Returns the value of attribute shards.



4
5
6
# File 'lib/activerecord/shard_for/abstract_shard_repository.rb', line 4

def shards
  @shards
end

Instance Method Details

#allArray<Class>

Returns:

  • (Array<Class>)


24
25
26
# File 'lib/activerecord/shard_for/abstract_shard_repository.rb', line 24

def all
  shards.values
end

#fetch(connection_name) ⇒ Class

Returns A model class for this shard.

Parameters:

  • connection_name (Symbol)

Returns:

  • (Class)

    A model class for this shard



8
9
10
# File 'lib/activerecord/shard_for/abstract_shard_repository.rb', line 8

def fetch(connection_name)
  shards.fetch(connection_name)
end

#fetch_by_key(key) ⇒ Class?

Returns A AR model class.

Parameters:

  • key (Object)

    sharding key object for connection

Returns:

  • (Class, nil)

    A AR model class.



14
15
16
17
18
19
20
21
# 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