Module: Octopus::AssociationCollection

Defined in:
lib/octopus/association_collection.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/octopus/association_collection.rb', line 3

def self.included(base)
  base.instance_eval do
    alias_method_chain :reader, :octopus
    alias_method_chain :writer, :octopus
    alias_method_chain :ids_reader, :octopus
    alias_method_chain :ids_writer, :octopus
    alias_method_chain :create, :octopus
    alias_method_chain :create!, :octopus
    alias_method_chain :build, :octopus
  end
end

Instance Method Details

#build_with_octopus(*args, &block) ⇒ Object



15
16
17
18
# File 'lib/octopus/association_collection.rb', line 15

def build_with_octopus(*args, &block)
  owner.reload_connection
  build_without_octopus(*args, &block)
end

#count(*args) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/octopus/association_collection.rb', line 54

def count(*args)
  if should_wrap_the_connection?
    Octopus.using(@owner.current_shard) { super }
  else
    super
  end
end

#create_with_octopus(*args, &block) ⇒ Object



40
41
42
43
# File 'lib/octopus/association_collection.rb', line 40

def create_with_octopus(*args, &block)
  owner.reload_connection
  create_without_octopus(*args, &block)
end

#create_with_octopus!(*args, &block) ⇒ Object



45
46
47
48
# File 'lib/octopus/association_collection.rb', line 45

def create_with_octopus!(*args, &block)
  owner.reload_connection
  create_without_octopus!(*args, &block)
end

#ids_reader_with_octopus(*args) ⇒ Object



30
31
32
33
# File 'lib/octopus/association_collection.rb', line 30

def ids_reader_with_octopus(*args)
  owner.reload_connection
  ids_reader_without_octopus(*args)
end

#ids_writer_with_octopus(*args) ⇒ Object



35
36
37
38
# File 'lib/octopus/association_collection.rb', line 35

def ids_writer_with_octopus(*args)
  owner.reload_connection
  ids_writer_without_octopus(*args)
end

#reader_with_octopus(*args) ⇒ Object



20
21
22
23
# File 'lib/octopus/association_collection.rb', line 20

def reader_with_octopus(*args)
  owner.reload_connection
  reader_without_octopus(*args)
end

#should_wrap_the_connection?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/octopus/association_collection.rb', line 50

def should_wrap_the_connection?
  @owner.respond_to?(:current_shard) && @owner.current_shard != nil
end

#writer_with_octopus(*args) ⇒ Object



25
26
27
28
# File 'lib/octopus/association_collection.rb', line 25

def writer_with_octopus(*args)
  owner.reload_connection
  writer_without_octopus(*args)
end