class Telegram::Connection
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/telegram/connection.rb, line 3 def initialize super @connected = false @on_connect = nil @on_disconnect = nil @callback = nil @available = true end
Public Instance Methods
available?()
click to toggle source
# File lib/telegram/connection.rb, line 12 def available? @available end
communicate(*messages, &callback)
click to toggle source
# File lib/telegram/connection.rb, line 16 def communicate(*messages, &callback) @available = false @callback = callback messages = messages.each_with_index.map { |m, i| if i > 0 m = "\"#{m}\"" end m }.join(' ') << "\n" send_data(messages) end
connected?()
click to toggle source
# File lib/telegram/connection.rb, line 47 def connected? @connected end
connection_completed()
click to toggle source
@api private
# File lib/telegram/connection.rb, line 37 def connection_completed @connected = true @on_connect.call unless @on_connect.nil? end
on_connect=(block)
click to toggle source
# File lib/telegram/connection.rb, line 28 def on_connect=(block) @on_connect = block end
on_disconnect=(block)
click to toggle source
# File lib/telegram/connection.rb, line 32 def on_disconnect=(block) @on_disconnect = block end
receive_data(data)
click to toggle source
# File lib/telegram/connection.rb, line 51 def receive_data(data) begin result = _receive_data(data) rescue result = nil end @callback.call(!result.nil?, result) unless @callback.nil? @callback = nil @available = true end
unbind()
click to toggle source
# File lib/telegram/connection.rb, line 42 def unbind @connected = false @on_disconnect.call unless @on_disconnect.nil? end
Protected Instance Methods
_receive_data(data)
click to toggle source
# File lib/telegram/connection.rb, line 63 def _receive_data(data) if data[0..6] == 'ANSWER ' lf = data.index("\n") + 1 lflf = data.index("\n\n", lf) - 1 data = data[lf..lflf] data = Oj.load(data) end data end