class Redshift::Client::Configuration

Constants

DEFAULT_SSL_MODE

Attributes

dbname[R]
host[R]
password[R]
port[R]
user[R]

Public Class Methods

new(host, port, user, password, dbname, sslmode) click to toggle source
# File lib/redshift/client/configuration.rb, line 50
def initialize(host, port, user, password, dbname, sslmode)
  @host = host
  @port = port || 5439
  @user = user
  @password = password
  @dbname = dbname
  @sslmode = sslmode || DEFAULT_SSL_MODE
end
resolve(config = {}) click to toggle source
# File lib/redshift/client/configuration.rb, line 13
def resolve(config = {})
  config.reverse_merge!(parse_redshift_url)

  Configuration.new(
    config[:host],
    config[:port],
    config[:user],
    config[:password],
    config[:dbname],
    config[:sslmode]
  )
end

Private Class Methods

parse_redshift_url() click to toggle source
# File lib/redshift/client/configuration.rb, line 28
def parse_redshift_url
  uri = URI.parse(ENV['REDSHIFT_URL'])
  {
    host: uri.host,
    port: uri.port,
    user: uri.user,
    password: uri.password,
    dbname: uri.path[1..-1],
    sslmode: sslmode(uri)
  }
rescue
  {}
end
sslmode(uri) click to toggle source
# File lib/redshift/client/configuration.rb, line 42
def sslmode(uri)
  if uri.query
    param = CGI.parse(uri.query)['sslmode']
    param && param[0]
  end
end

Public Instance Methods

params() click to toggle source
# File lib/redshift/client/configuration.rb, line 59
def params
  {
    host: @host,
    port: @port,
    user: @user,
    password: @password,
    dbname: @dbname,
    sslmode: @sslmode
  }
end