Sha256: e05f70af2fc7a61dbe3aa5dbe99a75f36b1b7789892ca780e2d0c177183b990f
Contents?: true
Size: 805 Bytes
Versions: 1
Compression:
Stored size: 805 Bytes
Contents
module Slavery class ConnectionHolder < ActiveRecord::Base self.abstract_class = true class << self # for delayed activation def activate(target) spec = ActiveRecord::Base.configurations["#{ActiveRecord::ConnectionHandling::RAILS_ENV.call}_#{target}"] raise Error.new("Slave target '#{target}' is invalid!") if spec.nil? establish_connection spec end end end class << self def connection_holder(target) klass_name = "Slavery#{target.to_s.camelize}ConnectionHolder" slave_connections[klass_name] ||= begin klass = Class.new(Slavery::ConnectionHolder) do self.abstract_class = true end Object.const_set(klass_name, klass) klass.activate(target) klass end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slavery-3.0.0 | lib/slavery/connection_holder.rb |