Sha256: 92473dc834a2dc51a0864ae3dc4b94b6962dbde210b3a9e696d0607479dd1dbb
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
module Motel module MultiTenant extend ActiveSupport::Concern included do mattr_accessor :motel, instance_writer: false self.default_connection_handler = ConnectionAdapters::ConnectionHandler.new self.motel = Manager end module ClassMethods def establish_connection(config) resolver = ConnectionAdapters::ConnectionSpecification::Resolver.new(motel.tenants) spec = resolver.spec(config) connection_handler.establish_connection (ENV['TENANT'] || self.name), spec end def connection_pool connection_handler.retrieve_connection_pool(current_tenant) end def retrieve_connection connection_handler.retrieve_connection(current_tenant) end def connected? connection_handler.connected?(current_tenant) end def remove_connection(tenant_name = current_tenant) connection_handler.remove_connection(tenant_name) end def arel_engine ActiveRecord::Base end def current_tenant motel.determines_tenant or raise Motel::NoCurrentTenantError end end end end ActiveSupport.on_load(:active_record) do include Motel::MultiTenant end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
motel-activerecord-1.0.1 | lib/motel/multi_tenant.rb |
motel-activerecord-1.0.0 | lib/motel/multi_tenant.rb |