Sha256: 8eba9b9d3ec1f40eb529618981887ecc1e4e05dd38bdc39be437440f03da40b5

Contents?: true

Size: 1 KB

Versions: 5

Compression:

Stored size: 1 KB

Contents

require 'sequel'
require 'sequel/extensions/connection_validator'
Sequel::Deprecation.output = false
Sequel.split_symbols = true

module Cranium::Database

  def self.connection
    @connection ||= setup_connection(Cranium.configuration.greenplum_connection_string)
  end



  def self.[](name)
    @connections ||= {}
    @connections[name] ||= setup_connection(@definitions[name].connect_to)
  end



  def self.register_database(name, &block)
    @definitions ||= Cranium::DefinitionRegistry.new Cranium::DSL::DatabaseDefinition
    @definitions.register_definition name, &block
  end



  private


  def self.setup_connection(connection_string)
    connection = if Cranium.configuration.log_queries
                   Sequel.connect(connection_string, loggers: Cranium.configuration.loggers)
                 else
                   Sequel.connect(connection_string)
                 end
    connection.extension :connection_validator
    connection.pool.connection_validation_timeout = -1
    return connection
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cranium-0.6.1 lib/cranium/database.rb
cranium-0.5 lib/cranium/database.rb
cranium-0.4.3 lib/cranium/database.rb
cranium-0.4.2 lib/cranium/database.rb
cranium-0.4.1 lib/cranium/database.rb