Module: Octopus::Model::ClassMethods

Includes:
SharedMethods
Defined in:
lib/octopus/model.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SharedMethods

#clean_table_name, clear_active_connections_with_octopus!, clear_all_connections_with_octopus!, connected_with_octopus?, connection_pool_with_octopus, connection_proxy, connection_with_octopus, #hijack_connection, #hijack_initializer, #set_current_shard, should_use_normal_connection?, #using

Class Method Details

.extended(base) ⇒ Object



149
150
151
152
153
# File 'lib/octopus/model.rb', line 149

def self.extended(base)
  base.class_attribute(:replicated)
  base.class_attribute(:sharded)
  base.hijack_methods
end

Instance Method Details

#hijack_methodsObject



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/octopus/model.rb', line 163

def hijack_methods
  class << self
    attr_accessor :custom_octopus_connection
    attr_accessor :custom_octopus_table_name

    if Octopus.rails3?
      alias_method_chain(:set_table_name, :octopus)
    end

    def table_name=(value = nil)
      self.custom_octopus_table_name = true
      super
    end
  end
end

#octopus_establish_connection(spec = ENV['DATABASE_URL']) ⇒ Object



184
185
186
187
# File 'lib/octopus/model.rb', line 184

def octopus_establish_connection(spec = ENV['DATABASE_URL'])
  self.custom_octopus_connection = true if spec
  establish_connection(spec)
end

#octopus_set_table_name(value = nil) ⇒ Object



189
190
191
192
# File 'lib/octopus/model.rb', line 189

def octopus_set_table_name(value = nil)
  ActiveSupport::Deprecation.warn "Calling `octopus_set_table_name` is deprecated and will be removed in Octopus 1.0.", caller
  set_table_name(value)
end

#replicated_modelObject



155
156
157
# File 'lib/octopus/model.rb', line 155

def replicated_model
  self.replicated = true
end

#set_table_name_with_octopus(value = nil, &block) ⇒ Object



179
180
181
182
# File 'lib/octopus/model.rb', line 179

def set_table_name_with_octopus(value = nil, &block)
  self.custom_octopus_table_name = true
  set_table_name_without_octopus(value, &block)
end

#sharded_modelObject



159
160
161
# File 'lib/octopus/model.rb', line 159

def sharded_model
  self.sharded = true
end