class SubZero::Client

Attributes

config[R]
sid[R]

Public Class Methods

new(sid) { |config| ... } click to toggle source
# File lib/sub_zero/client.rb, line 6
def initialize sid
  @sid, @config = sid.to_s.upcase, Configuration.default
  yield @config if block_given?
end

Public Instance Methods

[](verb) click to toggle source
# File lib/sub_zero/client.rb, line 35
def [] verb
  call verb
end
call(verb, payload = {}) { |response| ... } click to toggle source
# File lib/sub_zero/client.rb, line 15
def call verb, payload = {}, options = {}
  sz_verb = verb.to_s.upcase.gsub('_', '/')

  request = Message.new(type: 'REQ', subtype: sid, verb: sz_verb,
                        payload: payload, options: options)

  response = socket.call(request)

  if block_given?
    yield response
  else
    fail Error.new(response) if response.error?
    response.payload
  end
end
call!(verb, payload = {}) click to toggle source
# File lib/sub_zero/client.rb, line 31
def call! verb, payload = {}, options = {}, &block
  call verb, payload, options, &block
end
method_missing(method, payload = {}) click to toggle source
# File lib/sub_zero/client.rb, line 39
def method_missing method, payload = {}, options = {}, &block
  if method.to_s.end_with? '!'
    call! method.to_s.delete('!'), payload, options, &block
  else
    call method, payload, options, &block
  end
end
socket() click to toggle source
# File lib/sub_zero/client.rb, line 11
def socket
  Socket.new config
end