1
0
зеркало из https://github.com/glebtv/telegram-bot.git synced 2026-09-05 18:45:51 +03:00

Simplified .wrap method, added for Botan

Этот коммит содержится в:
Max Melentiev
2016-05-18 21:09:45 +03:00
родитель 91e0aa2096
Коммит 27602b20bd
11 изменённых файлов: 169 добавлений и 92 удалений

Просмотреть файл

@@ -2,7 +2,6 @@ require 'json'
require 'httpclient'
require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/hash/keys'
require 'telegram/bot/debug_client'
module Telegram
module Bot
@@ -10,23 +9,12 @@ module Telegram
URL_TEMPLATE = 'https://api.telegram.org/bot%s/'.freeze
autoload :TypedResponse, 'telegram/bot/client/typed_response'
extend Initializers
include DebugClient
class << self
# Accepts different options to initialize bot.
def wrap(input)
case input
when self then input
when Array then input.map(&method(__callee__))
when Hash then
input = input.stringify_keys
new input['token'], input['username'], botan: input['botan']
when Symbol
Telegram.bots[input] or
raise "Bot #{input} not configured, check Telegram.bots_config."
else
new(input)
end
def by_id(id)
Telegram.bots[id]
end
# Prepend TypedResponse module.
@@ -45,12 +33,11 @@ module Telegram
attr_reader :client, :token, :username, :base_uri, :botan
def initialize(token, username = nil, botan: nil)
def initialize(token = nil, username = nil, botan: nil, **options)
@client = HTTPClient.new
@token = token
@username = username
@base_uri = format URL_TEMPLATE, token
@botan = Botan.new(botan) if botan
@token = token || options[:token]
@username = username || options[:username]
@base_uri = format URL_TEMPLATE, self.token
end
def request(action, body = {}) # rubocop:disable PerceivedComplexity