Module: Octopus::Model::InstanceMethods
Class Method Summary
collapse
Instance Method Summary
collapse
#clean_table_name, connection_pool_with_octopus, connection_proxy, connection_with_octopus, #hijack_connection, #hijack_initializer, #set_current_shard, should_use_normal_connection?, #using
Class Method Details
.included(base) ⇒ Object
93
94
95
96
97
|
# File 'lib/octopus/model.rb', line 93
def self.included(base)
base.send(:alias_method, :equality_without_octopus, :==)
base.send(:alias_method, :==, :equality_with_octopus)
base.send(:alias_method, :eql?, :==)
end
|
Instance Method Details
#equality_with_octopus(comparison_object) ⇒ Object
117
118
119
|
# File 'lib/octopus/model.rb', line 117
def equality_with_octopus(comparison_object)
equality_without_octopus(comparison_object) && comparison_object.current_shard == current_shard
end
|
#reload_connection ⇒ Object
112
113
114
115
|
# File 'lib/octopus/model.rb', line 112
def reload_connection()
return unless should_set_current_shard?
self.class.connection_proxy.current_shard = self.current_shard
end
|
#reload_connection_safe(&block) ⇒ Object
103
104
105
106
107
108
109
110
|
# File 'lib/octopus/model.rb', line 103
def reload_connection_safe(&block)
return yield unless should_set_current_shard?
original = self.class.connection_proxy.current_shard
self.class.connection_proxy.current_shard = self.current_shard
result = yield
self.class.connection_proxy.current_shard = original
result
end
|
#should_set_current_shard? ⇒ Boolean
99
100
101
|
# File 'lib/octopus/model.rb', line 99
def should_set_current_shard?
self.respond_to?(:current_shard) && !self.current_shard.nil?
end
|