Sha256: 2b5118c81dfa9ec1bfef473efbf88a785d9fce0740fb0a6078639b2142721372

Contents?: true

Size: 860 Bytes

Versions: 4

Compression:

Stored size: 860 Bytes

Contents

require "clickhouse/connection/client"
require "clickhouse/connection/logger"
require "clickhouse/connection/query"

module Clickhouse
  class Connection

    DEFAULT_CONFIG = {
      :scheme => "http",
      :host => "localhost",
      :port => 8123
    }

    include Client
    include Logger
    include Query

    def initialize(config = {})
      @config = normalize_config(config)
    end

  private

    def normalize_config(config)
      config = config.inject({}) do |hash, (key, value)|
        hash[key.to_sym] = value
        hash
      end

      if config[:url]
        uri = URI Clickhouse::Utils.normalize_url(config[:url])
        config[:scheme] = uri.scheme
        config[:host] = uri.host
        config[:port] = uri.port
        config.delete(:url)
      end

      DEFAULT_CONFIG.merge(config.reject{|_k, v| v.nil?})
    end

  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
ch-client-0.0.1 lib/clickhouse/connection.rb
clickhouse-0.1.10 lib/clickhouse/connection.rb
clickhouse-0.1.9 lib/clickhouse/connection.rb
clickhouse-0.1.8 lib/clickhouse/connection.rb