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