class Tako::Repository

Public Class Methods

add(shard_name, conf) click to toggle source
# File lib/tako/repository.rb, line 21
def add(shard_name, conf)
  shard_name = shard_name.to_sym
  return if proxy_configs[shard_name]

  temporary_class = Class.new(ActiveRecord::Base)
  const_set("TAKO_AR_CLASS_#{shard_name.upcase}", temporary_class)
  temporary_class.establish_connection(conf)

  proxy_classes[shard_name] = temporary_class
  proxy_configs[shard_name] = conf
end
clear() click to toggle source
# File lib/tako/repository.rb, line 12
def clear
  proxy_classes.each do |shard_name, proxy_class|
    proxy_class.connection.disconnect!
    remove_const("TAKO_AR_CLASS_#{shard_name.upcase}")
  end
  proxy_configs.clear
  proxy_classes.clear
end
create_proxy(shard_name) click to toggle source
# File lib/tako/repository.rb, line 33
def create_proxy(shard_name)
  Proxy.new(shard_name, proxy_classes[shard_name.to_sym].connection_without_tako)
end
proxy_classes() click to toggle source
# File lib/tako/repository.rb, line 8
def proxy_classes
  @proxy_classes ||= {}
end
proxy_configs() click to toggle source
# File lib/tako/repository.rb, line 4
def proxy_configs
  @proxy_configs ||= {}
end
shard_names() click to toggle source
# File lib/tako/repository.rb, line 37
def shard_names
  proxy_configs.keys
end