class Telegram::ClientAdapter
Attributes
bot_name[RW]
connection[RW]
options[RW]
queue_namespace[RW]
Public Instance Methods
api()
click to toggle source
# File lib/telegram/client_adapter.rb, line 57 def api @api_proxy end
configure() { |self| ... }
click to toggle source
# File lib/telegram/client_adapter.rb, line 26 def configure yield self self end
on_message_received(&block)
click to toggle source
# File lib/telegram/client_adapter.rb, line 51 def on_message_received &block @receive_callbacks ||= [] @receive_callbacks << block end
send_command(command, payload)
click to toggle source
# File lib/telegram/client_adapter.rb, line 67 def send_command command, payload raw_data = Marshal.dump(serialize_command(command,payload)) @channel.default_exchange.publish raw_data, routing_key: @send_queue.name end
send_message(payload)
click to toggle source
# File lib/telegram/client_adapter.rb, line 62 def send_message payload api.send_message payload end
start()
click to toggle source
# File lib/telegram/client_adapter.rb, line 32 def start send_queue_name = "#{queue_prefix}.commands" receive_queue_name = "#{queue_prefix}.messages" @channel = connection.create_channel @send_queue = @channel.queue send_queue_name @receive_queue = @channel.queue receive_queue_name @receive_queue.subscribe do |info,metadata,raw_data| data = Marshal.load(raw_data) @receive_callbacks.each do |callback| callback.call(data) end end @api_proxy = ApiProxy.new(self) end
Private Instance Methods
queue_prefix()
click to toggle source
# File lib/telegram/client_adapter.rb, line 79 def queue_prefix "#{queue_namespace}.#{bot_name}" end
serialize_command(command, payload)
click to toggle source
# File lib/telegram/client_adapter.rb, line 75 def serialize_command command, payload {command: command, payload: payload} end