class Serf::Client::Client

Public Class Methods

new(opts, &block) click to toggle source
# File lib/serf/client.rb, line 22
def initialize opts, &block
  @address = opts[:address] || 'localhost'
  @port = opts[:port] || 7373

  @connection = Connection.supervise(@address, @port).actors.first
  @connection.handshake
end

Public Instance Methods

auth(key, &block) click to toggle source
# File lib/serf/client.rb, line 42
def auth key, &block
  @connection.call(:auth, {'AuthKey' => key }, &block)
end
event(name, payload='', coalesce=true, &block) click to toggle source
# File lib/serf/client.rb, line 46
def event name, payload='', coalesce=true, &block
  @connection.call(:event, {'Name' => name, 'Payload' => payload, 'Coalesce' => coalesce}, &block)
end
force_leave(name, &block) click to toggle source
# File lib/serf/client.rb, line 70
def force_leave name, &block
  @connection.call(:'force-leave', {'Node' => name}, &block)
end
join() click to toggle source
# File lib/serf/client.rb, line 78
def join; end
leave(&block) click to toggle source
# File lib/serf/client.rb, line 74
def leave &block
  @connection.call(:leave, &block)
end
members(&block) click to toggle source
# File lib/serf/client.rb, line 66
def members &block
  @connection.call(:members, &block)
end
monitor(level='DEBUG', &block) click to toggle source
# File lib/serf/client.rb, line 62
def monitor level='DEBUG', &block
  @connection.call(:monitor, {'LogLevel' => level}, &block)
end
query(opts, &block) click to toggle source
# File lib/serf/client.rb, line 30
def query opts, &block
  o = {}
  o['Name'] = opts[:name] if opts[:name]
  o['Payload'] = opts[:payload] if opts[:payload]
  o['Timeout'] = opts[:timeout] if opts[:timeout]
  o['FilterNodes'] = opts[:filter_nodes] if opts[:filter_nodes]
  o['FilterTags'] = opts[:filter_tags] if opts[:filter_tags]
  o['RequestAck'] = opts[:request_ack] if opts[:request_ack]

  @connection.call(:query, o, &block)
end
respond(id, payload, &block) click to toggle source
# File lib/serf/client.rb, line 54
def respond id, payload, &block
  @connection.call(:respond, {'ID' => id, "Payload" => payload}, &block)
end
stop(seqid, &block) click to toggle source
# File lib/serf/client.rb, line 58
def stop seqid, &block
  @connection.call(:stop, &block)
end
stream(type, &block) click to toggle source
# File lib/serf/client.rb, line 50
def stream type, &block
  @connection.call(:stream, {'Type' => type}, &block)
end