module DbCharmer::ActiveRecord::ClassAttributes
Public Instance Methods
db_charmer_connection_level()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 81 def db_charmer_connection_level db_charmer_connection_levels[self.name] || 0 end
db_charmer_connection_level=(level)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 77 def db_charmer_connection_level=(level) db_charmer_connection_levels[self.name] = level end
db_charmer_connection_levels()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 73 def db_charmer_connection_levels Thread.current[:db_charmer_connection_levels] ||= Hash.new(0) end
db_charmer_connection_proxies()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 40 def db_charmer_connection_proxies Thread.current[:db_charmer_connection_proxies] ||= {} end
db_charmer_connection_proxy()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 48 def db_charmer_connection_proxy db_charmer_connection_proxies[self.name] end
db_charmer_connection_proxy=(proxy)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 44 def db_charmer_connection_proxy=(proxy) db_charmer_connection_proxies[self.name] = proxy end
db_charmer_database_remappings()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 100 def db_charmer_database_remappings Thread.current[:db_charmer_database_remappings] ||= Hash.new end
db_charmer_database_remappings=(mappings)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 104 def db_charmer_database_remappings=(mappings) raise "Mappings must be nil or respond to []" if mappings && (! mappings.respond_to?(:[])) Thread.current[:db_charmer_database_remappings] = mappings || {} end
db_charmer_default_connection()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 19 def db_charmer_default_connection @@db_charmer_default_connections[self.name] end
db_charmer_default_connection=(conn)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 15 def db_charmer_default_connection=(conn) @@db_charmer_default_connections[self.name] = conn end
db_charmer_force_slave_reads()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 61 def db_charmer_force_slave_reads db_charmer_force_slave_reads_flags[self.name] end
db_charmer_force_slave_reads=(force)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 57 def db_charmer_force_slave_reads=(force) db_charmer_force_slave_reads_flags[self.name] = force end
db_charmer_force_slave_reads?()
click to toggle source
Slave reads are used in two cases:
- per-model slave reads are enabled (see db_magic method for more details) - global slave reads enforcing is enabled (in a controller action)
# File lib/db_charmer/active_record/class_attributes.rb, line 68 def db_charmer_force_slave_reads? db_charmer_force_slave_reads || DbCharmer.force_slave_reads? end
db_charmer_force_slave_reads_flags()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 53 def db_charmer_force_slave_reads_flags Thread.current[:db_charmer_force_slave_reads] ||= {} end
db_charmer_model_connection_proxy()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 111 def db_charmer_model_connection_proxy db_charmer_connection_proxy || db_charmer_default_connection end
db_charmer_opts()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 9 def db_charmer_opts @@db_charmer_opts[self.name] || {} end
db_charmer_opts=(opts)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 5 def db_charmer_opts=(opts) @@db_charmer_opts[self.name] = opts end
db_charmer_random_slave()
click to toggle source
Returns a random connection from the list of slaves configured for this AR class
# File lib/db_charmer/active_record/class_attributes.rb, line 34 def db_charmer_random_slave return nil unless db_charmer_slaves.any? db_charmer_slaves[rand(db_charmer_slaves.size)] end
db_charmer_remapped_connection()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 90 def db_charmer_remapped_connection return nil unless db_charmer_top_level_connection? name = :master proxy = db_charmer_model_connection_proxy name = proxy.db_charmer_connection_name.to_sym if proxy remapped = db_charmer_database_remappings[name] remapped ? DbCharmer::ConnectionFactory.connect(remapped, true) : nil end
db_charmer_slaves()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 29 def db_charmer_slaves @@db_charmer_slaves[self.name] || [] end
db_charmer_slaves=(slaves)
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 25 def db_charmer_slaves=(slaves) @@db_charmer_slaves[self.name] = slaves end
db_charmer_top_level_connection?()
click to toggle source
# File lib/db_charmer/active_record/class_attributes.rb, line 85 def db_charmer_top_level_connection? db_charmer_connection_level.zero? end