class Cql::Client::InitializeStep

@private

Public Class Methods

new(cql_version, compressor, logger) click to toggle source
# File lib/cql/client/connector.rb, line 105
def initialize(cql_version, compressor, logger)
  @cql_version = cql_version
  @compressor = compressor
  @logger = logger
end

Public Instance Methods

run(pending_connection) click to toggle source
# File lib/cql/client/connector.rb, line 111
def run(pending_connection)
  compression = @compressor && @compressor.algorithm
  supported_algorithms = pending_connection[:compression]
  if @compressor && !supported_algorithms.include?(@compressor.algorithm)
    @logger.warn(%[Compression algorithm "#{@compressor.algorithm}" not supported (server supports "#{supported_algorithms.join('", "')}")])
    compression = nil
  elsif @compressor
    @logger.debug('Using "%s" compression' % @compressor.algorithm)
  end
  f = pending_connection.execute(Protocol::StartupRequest.new(@cql_version, compression))
  f.map do |startup_response|
    if startup_response.is_a?(AuthenticationRequired)
      pending_connection.with_authentication_class(startup_response.authentication_class)
    else
      pending_connection
    end
  end
end