Class: Tako::Repository
- Inherits:
-
Object
- Object
- Tako::Repository
- Defined in:
- lib/tako/repository.rb
Class Method Summary collapse
- .add(shard_name, conf) ⇒ Object
- .clear ⇒ Object
- .create_proxy(shard_name) ⇒ Object
- .proxy_classes ⇒ Object
- .proxy_configs ⇒ Object
- .shard_names ⇒ Object
Class Method Details
.add(shard_name, conf) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# 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 ⇒ Object
12 13 14 15 16 17 18 19 |
# 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) ⇒ Object
33 34 35 |
# 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 ⇒ Object
8 9 10 |
# File 'lib/tako/repository.rb', line 8 def proxy_classes @proxy_classes ||= {} end |
.proxy_configs ⇒ Object
4 5 6 |
# File 'lib/tako/repository.rb', line 4 def proxy_configs @proxy_configs ||= {} end |
.shard_names ⇒ Object
37 38 39 |
# File 'lib/tako/repository.rb', line 37 def shard_names proxy_configs.keys end |