Sha256: a3f728ad51e480e1e4a297e7cc334b9d2c3191a812b6095e12965414fc947467

Contents?: true

Size: 955 Bytes

Versions: 23

Compression:

Stored size: 955 Bytes

Contents

require 'singleton'
require 'clickhouse'
require 'active_support/core_ext/hash/keys'
require 'active_support/concern'

module ActiveHouse
  class Configuration
    include Singleton

    MAIN_NAME = :main
    CONNECTION_KEYS = [
        :url, :urls, :host, :port, :scheme, :database
    ].freeze

    class << self
      alias configuration instance
    end

    attr_reader :connection_config, :logger

    def logger=(value)
      @logger = value
      Clickhouse.logger = @logger
    end

    def connection_config=(value)
      @connection_config = value.deep_symbolize_keys
    end

    def connection_config_for(name = nil)
      name ||= MAIN_NAME
      name = name.to_sym
      config = if name == MAIN_NAME
                 connection_config.key?(name) ? connection_config.fetch(name) : connection_config
               else
                 connection_config.fetch(name)
               end
      config.slice(*CONNECTION_KEYS)
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
active_house-0.7.0 lib/active_house/configuration.rb
active_house-0.6.6 lib/active_house/configuration.rb
active_house-0.6.5 lib/active_house/configuration.rb
active_house-0.6.4 lib/active_house/configuration.rb
active_house-0.6.3 lib/active_house/configuration.rb
active_house-0.6.2 lib/active_house/configuration.rb
active_house-0.6.1 lib/active_house/configuration.rb
active_house-0.6.0 lib/active_house/configuration.rb
active_house-0.5.1 lib/active_house/configuration.rb
active_house-0.5.0 lib/active_house/configuration.rb
active_house-0.4.0 lib/active_house/configuration.rb
active_house-0.3.2 lib/active_house/configuration.rb
active_house-0.3.1 lib/active_house/configuration.rb
active_house-0.3.0 lib/active_house/configuration.rb
active_house-0.2.2 lib/active_house/configuration.rb
active_house-0.2.1 lib/active_house/configuration.rb
active_house-0.2.0 lib/active_house/configuration.rb
active_house-0.1.5 lib/active_house/configuration.rb
active_house-0.1.4 lib/active_house/configuration.rb
active_house-0.1.3 lib/active_house/configuration.rb