class Cql::Client::Connector

@private

Public Class Methods

new(steps) click to toggle source
# File lib/cql/client/connector.rb, line 55
def initialize(steps)
  @steps = steps.dup
end

Public Instance Methods

connect(host) click to toggle source
# File lib/cql/client/connector.rb, line 59
def connect(host)
  pending_connection = PendingConnection.new(host)
  seed = Future.resolved(pending_connection)
  f = @steps.reduce(seed) do |chain, step|
    chain.flat_map do |pending_connection|
      step.run(pending_connection)
    end
  end
  f.map do |pending_connection|
    pending_connection.connection
  end
end