class Ribbon::Intercom::Client::SDK

Attributes

adapter[R]

Public Class Methods

new(*args) click to toggle source
# File lib/ribbon/intercom/client/sdk.rb, line 12
def initialize(*args)
  case args.first
  when Adapters::Adapter
    self.adapter = args.first
  else
    self.adapter = Adapters::HttpAdapter.new(*args)
  end
end

Public Instance Methods

begin() click to toggle source
# File lib/ribbon/intercom/client/sdk.rb, line 21
def begin
  Utils::MethodChain.begin { |methods|
    queue = Packet::MethodQueue.new
    methods.each { |meth, *args| queue.enqueue(meth, *args) }
    send_packet(method_queue: queue).retval
  }
end
call(method_name, *args) click to toggle source

Calls the method on the adapter returning the response Packet

# File lib/ribbon/intercom/client/sdk.rb, line 46
def call(method_name, *args)
  send_packet(
    method_queue: Packet::MethodQueue.new.enqueue(method_name, *args)
  )
end
connect(*args) click to toggle source
# File lib/ribbon/intercom/client/sdk.rb, line 36
def connect(*args)
  adapter.connect(*args)
end
connected?() click to toggle source
# File lib/ribbon/intercom/client/sdk.rb, line 40
def connected?
  adapter.connected?
end
dup() click to toggle source
Calls superclass method
# File lib/ribbon/intercom/client/sdk.rb, line 60
def dup
  super.tap { |sdk|
    sdk.adapter = adapter.dup
  }
end
headers(new_headers={}) click to toggle source

Returns the headers defined for this SDK. Optionally, you may also define additional headers you’d like to add/override.

# File lib/ribbon/intercom/client/sdk.rb, line 32
def headers(new_headers={})
  adapter.headers(new_headers)
end
send_packet(packet) click to toggle source

Sends the packet with the adapter, returning the response Packet.

Intended to be called by Package.

# File lib/ribbon/intercom/client/sdk.rb, line 56
def send_packet(packet)
  _process_response(adapter.send_packet(packet))
end

Protected Instance Methods

adapter=(adapter) click to toggle source
# File lib/ribbon/intercom/client/sdk.rb, line 68
def adapter=(adapter)
  @adapter = adapter
end

Private Instance Methods

_handle_response_error(packet) click to toggle source

Raises an error depending on what went wrong.

# File lib/ribbon/intercom/client/sdk.rb, line 93
def _handle_response_error(packet)
  raise 'packet contains no error' unless packet.error?
  raise packet.error
end
_process_response(packet) click to toggle source

Process a Packet object returned by Adapter#send_packet.

# File lib/ribbon/intercom/client/sdk.rb, line 84
def _process_response(packet)
  _handle_response_error(packet) if packet.error?

  Package.init_packages(packet.retval, self)
  packet
end
method_missing(meth, *args, &block) click to toggle source

Simulates calling the remote method as if it were a local method.

Intended to be called by end-users.

# File lib/ribbon/intercom/client/sdk.rb, line 78
def method_missing(meth, *args, &block)
  call(meth, *args).retval
end