class Ribbon::Intercom::Client::SDK::Adapters::Adapter

Public Class Methods

new(*args) click to toggle source
# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 6
def initialize(*args)
  connect(*args)
end

Public Instance Methods

call(method_name, *args) click to toggle source

Call the method on the service.

@deprecated This method is only called by tests. Don’t call it elsewhere.

# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 14
def call(method_name, *args)
  send_packet(
    method_queue: Packet::MethodQueue.new.enqueue(method_name, *args)
  )
end
connect(*args) click to toggle source

Connect to a service. The specific arguments depend on the Adapter subclass.

# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 46
def connect(*args)
  raise NotImplementedError
end
connected?() click to toggle source

Returns whether or not the Adapter is connected to a service.

# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 52
def connected?
  raise NotImplementedError
end
dup() click to toggle source
Calls superclass method
# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 37
def dup
  super.tap { |adapter|
    adapter.headers = @headers.dup if @headers
  }
end
headers(new_headers={}) click to toggle source

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

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

Send a packet to the service and returns the Packet returned by the service.

# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 22
def send_packet(packet)
  packet = Packet.new(packet) if packet.is_a?(Hash)

  send_packet!(packet.encode).tap { |response|
    raise TypeError, "send_packet! should return an Adapter::Response" unless response.is_a?(Response)
  }.packet
end
send_packet!(packet) click to toggle source

Actually send the packet to the service. Should return an Adapter::Response object.

# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 58
def send_packet!(packet)
  raise NotImplementedError
end

Protected Instance Methods

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

Private Instance Methods

_encode_args(*args) click to toggle source

Encode the arguments for transmission to the service.

# File lib/ribbon/intercom/client/sdk/adapters/adapter.rb, line 72
def _encode_args(*args)
  Base64.strict_encode64(Marshal.dump(Utils.sanitize(args)))
end