class TelegramBot::PollListener
Public Class Methods
new(client, interval)
click to toggle source
# File lib/telegram_bot/poll_listener.rb, line 3 def initialize(client, interval) @client = client @interval = interval @offset_id = nil @terminate_signal = false end
Public Instance Methods
get_updates()
click to toggle source
# File lib/telegram_bot/poll_listener.rb, line 39 def get_updates updates = @client.get_updates(offset: @offset_id, limit: 50) updates end
message_received(msg)
click to toggle source
# File lib/telegram_bot/poll_listener.rb, line 10 def message_received(msg) @client.append_history(msg) @client.handle(msg) end
save_offset()
click to toggle source
# File lib/telegram_bot/poll_listener.rb, line 45 def save_offset @client.get_updates(limit: 0, offset: @offset_id) end
start!()
click to toggle source
# File lib/telegram_bot/poll_listener.rb, line 19 def start! @terminate_signal = false loop do get_updates.each do |update| message_received(update.message) @offset_id = update.id + 1 if @terminate_signal save_offset break end end break if @terminate_signal sleep @interval end end
stop!()
click to toggle source
# File lib/telegram_bot/poll_listener.rb, line 15 def stop! @terminate_signal = true end