class Ribbon::Intercom::Client::SDK::Adapters::LocalAdapter
Attributes
channel_secret[RW]
channel_token[RW]
service[R]
Public Instance Methods
connect(service, params={})
click to toggle source
# File lib/ribbon/intercom/client/sdk/adapters/local_adapter.rb, line 10 def connect(service, params={}) case service when Service @service = service else raise ArgumentError, "Expected a service, got: #{service.inspect}" end @channel_token = params[:channel_token] @channel_secret = params[:channel_secret] end
connected?(*args)
click to toggle source
# File lib/ribbon/intercom/client/sdk/adapters/local_adapter.rb, line 22 def connected?(*args) !!service end
send_packet!(encoded_packet)
click to toggle source
Mimics an HTTP PUT
# File lib/ribbon/intercom/client/sdk/adapters/local_adapter.rb, line 28 def send_packet!(encoded_packet) response = service.call( _http_headers.merge( 'HTTP_AUTHORIZATION' => _http_auth, 'REQUEST_METHOD' => 'PUT', 'rack.input' => StringIO.new(encoded_packet) ) ) Adapter::Response.new(response[2], response[0], response[1]) end
Private Instance Methods
_header_to_http(name)
click to toggle source
# File lib/ribbon/intercom/client/sdk/adapters/local_adapter.rb, line 50 def _header_to_http(name) "HTTP_#{name.to_s.upcase.gsub('-', '_')}" end
_http_auth()
click to toggle source
# File lib/ribbon/intercom/client/sdk/adapters/local_adapter.rb, line 42 def _http_auth "Basic #{Base64.strict_encode64("#{channel_token}:#{channel_secret}")}" end
_http_headers()
click to toggle source
# File lib/ribbon/intercom/client/sdk/adapters/local_adapter.rb, line 46 def _http_headers Hash[headers.map { |name, value| [_header_to_http(name), value] }] end