class Botomizer::Client
Public Class Methods
new(client, options = {})
click to toggle source
# File lib/botomizer/client.rb, line 2 def initialize(client, options = {}) begin require "botomizer/#{client}".downcase @bot = Object.const_get("Botomizer::#{client.capitalize}") @cache = Botomizer::Cache.new(options[:cache] || nil, :botomizer_cmd) @name = client @bot.options = options @bot.client = self rescue LoadError raise Botomizer::UnsupportedClient.new("Unsupported client #{client}") end end
Public Instance Methods
bot()
click to toggle source
# File lib/botomizer/client.rb, line 32 def bot @bot end
cache()
click to toggle source
# File lib/botomizer/client.rb, line 36 def cache @cache end
chat()
click to toggle source
# File lib/botomizer/client.rb, line 28 def chat bot.chat end
clean_history()
click to toggle source
# File lib/botomizer/client.rb, line 58 def clean_history @cache.delete(chat.id) end
delete_message(id = nil)
click to toggle source
# File lib/botomizer/client.rb, line 86 def delete_message(id = nil) bot.delete_message(id) end
delete_message!(id = nil)
click to toggle source
# File lib/botomizer/client.rb, line 90 def delete_message!(id = nil) result = delete_message(id) raise Botomizer::ResponseError.new(result[:message]) if result[:status] == :failed result end
delete_previous_message()
click to toggle source
# File lib/botomizer/client.rb, line 96 def delete_previous_message if @cache.exists?("prev_#{chat.id}") delete_message(@cache.fetch("prev_#{chat.id}")) end end
handle(request, handler)
click to toggle source
# File lib/botomizer/client.rb, line 40 def handle(request, handler) bot.parse_request(request) handler = handler.new(self) if message.cmd? @cache.write(chat.id, message.cmd) else message.cmd = @cache.fetch(chat.id) end if handler.respond_to? "cmd_#{message.cmd}" handler.public_send("cmd_#{message.cmd}") else handler.cmd_fallback end end
message()
click to toggle source
# File lib/botomizer/client.rb, line 24 def message bot.message end
name()
click to toggle source
# File lib/botomizer/client.rb, line 16 def name @name end
send(method, query = {})
click to toggle source
# File lib/botomizer/client.rb, line 62 def send(method, query = {}) bot.send(method, query) end
send!(method, query = {})
click to toggle source
# File lib/botomizer/client.rb, line 66 def send!(method, query = {}) result = send(method, query) raise Botomizer::ResponseError.new(result[:message]) if result[:status] == :failed result end
send_message(text, options = {})
click to toggle source
# File lib/botomizer/client.rb, line 72 def send_message(text, options = {}) result = bot.send_message(text, options) @cache.write("prev_#{chat.id}", result[:message_id]) if result.has_key?(:message_id) result end
send_message!(text, options = {})
click to toggle source
# File lib/botomizer/client.rb, line 80 def send_message!(text, options = {}) result = send_message(text, options) raise Botomizer::ResponseError.new(result[:message]) if result[:status] == :failed result end
webhook()
click to toggle source
# File lib/botomizer/client.rb, line 20 def webhook @bot.webhook end