module Apartment::Tenant

def self.jdbc_mysql_adapter(config)

def self.jdbc_mysql_adapter(config)
  Adapters::JDBCMysqlAdapter.new config
end

def self.jdbc_postgresql_adapter(config)

def self.jdbc_postgresql_adapter(config)
  if Apartment.use_schemas
    Adapters::JDBCPostgresqlSchemaAdapter.new(config)
  else
    Adapters::JDBCPostgresqlAdapter.new(config)
  end
end

def self.mysql2_adapter(config)

def self.mysql2_adapter(config)
  if Apartment.use_schemas
    Adapters::Mysql2SchemaAdapter.new(config)
  else
    Adapters::Mysql2Adapter.new(config)
  end
end

def self.postgis_adapter(config)

def self.postgis_adapter(config)
  postgresql_adapter(config)
end

def self.postgresql_adapter(config)

def self.postgresql_adapter(config)
  adapter = Adapters::PostgresqlAdapter
  adapter = Adapters::PostgresqlSchemaAdapter if Apartment.use_schemas
  adapter = Adapters::PostgresqlSchemaFromSqlAdapter if Apartment.use_sql && Apartment.use_schemas
  adapter.new(config)
end

def self.sqlite3_adapter(config)

def self.sqlite3_adapter(config)
  Adapters::Sqlite3Adapter.new(config)
end

def adapter

Returns:
  • (subclass of Apartment::AbstractAdapter) -
def adapter
  Thread.current[:apartment_adapter] ||= begin
    adapter_method = "#{config[:adapter]}_adapter"
    if defined?(JRUBY_VERSION)
      case config[:adapter]
      when /mysql/
        adapter_method = 'jdbc_mysql_adapter'
      when /postgresql/
        adapter_method = 'jdbc_postgresql_adapter'
      end
    end
    begin
      require "apartment/adapters/#{adapter_method}"
    rescue LoadError
      raise "The adapter `#{adapter_method}` is not yet supported"
    end
    unless respond_to?(adapter_method)
      raise AdapterNotFound, "database configuration specifies nonexistent #{config[:adapter]} adapter"
    end
    send(adapter_method, config)
  end
end

def config


Fetch the rails database configuration
def config
  @config ||= Apartment.connection_config
end

def reload!(config = nil)


Reset config and adapter so they are regenerated
def reload!(config = nil)
  Thread.current[:apartment_adapter] = nil
  @config = config
end