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