Class: Telegram::Bot::Api
- Inherits:
-
Object
- Object
- Telegram::Bot::Api
- Defined in:
- lib/telegram/bot/api.rb
Constant Summary collapse
- ENDPOINTS =
%w( getUpdates setWebhook getMe sendMessage forwardMessage sendPhoto sendAudio sendDocument sendSticker sendVideo sendVoice sendLocation sendVenue sendContact sendChatAction getUserProfilePhotos getFile kickChatMember unbanChatMember answerCallbackQuery editMessageText editMessageCaption editMessageReplyMarkup answerInlineQuery getChat leaveChat getChatAdministrators getChatMember getChatMembersCount ).freeze
- REPLY_MARKUP_TYPES =
[ Telegram::Bot::Types::ReplyKeyboardMarkup, Telegram::Bot::Types::ReplyKeyboardHide, Telegram::Bot::Types::ForceReply, Telegram::Bot::Types::InlineKeyboardMarkup ].freeze
- INLINE_QUERY_RESULT_TYPES =
[ Telegram::Bot::Types::InlineQueryResultArticle, Telegram::Bot::Types::InlineQueryResultPhoto, Telegram::Bot::Types::InlineQueryResultGif, Telegram::Bot::Types::InlineQueryResultMpeg4Gif, Telegram::Bot::Types::InlineQueryResultVideo, Telegram::Bot::Types::InlineQueryResultAudio, Telegram::Bot::Types::InlineQueryResultVoice, Telegram::Bot::Types::InlineQueryResultDocument, Telegram::Bot::Types::InlineQueryResultLocation, Telegram::Bot::Types::InlineQueryResultVenue, Telegram::Bot::Types::InlineQueryResultContact, Telegram::Bot::Types::InlineQueryResultCachedPhoto, Telegram::Bot::Types::InlineQueryResultCachedGif, Telegram::Bot::Types::InlineQueryResultCachedMpeg4Gif, Telegram::Bot::Types::InlineQueryResultCachedSticker, Telegram::Bot::Types::InlineQueryResultCachedDocument, Telegram::Bot::Types::InlineQueryResultCachedVideo, Telegram::Bot::Types::InlineQueryResultCachedVoice, Telegram::Bot::Types::InlineQueryResultCachedAudio ].freeze
Instance Attribute Summary collapse
-
#token ⇒ Object
readonly
Returns the value of attribute token.
Instance Method Summary collapse
- #call(endpoint, raw_params = {}) ⇒ Object
-
#initialize(token) ⇒ Api
constructor
A new instance of Api.
- #method_missing(method_name, *args, &block) ⇒ Object
- #respond_to_missing?(*args) ⇒ Boolean
Constructor Details
#initialize(token) ⇒ Api
Returns a new instance of Api.
42 43 44 |
# File 'lib/telegram/bot/api.rb', line 42 def initialize(token) @token = token end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/telegram/bot/api.rb', line 46 def method_missing(method_name, *args, &block) endpoint = method_name.to_s endpoint = camelize(endpoint) if endpoint.include?('_') ENDPOINTS.include?(endpoint) ? call(endpoint, *args) : super end |
Instance Attribute Details
#token ⇒ Object (readonly)
Returns the value of attribute token.
40 41 42 |
# File 'lib/telegram/bot/api.rb', line 40 def token @token end |
Instance Method Details
#call(endpoint, raw_params = {}) ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/telegram/bot/api.rb', line 60 def call(endpoint, raw_params = {}) params = build_params(raw_params) response = conn.post("/bot#{token}/#{endpoint}", params) if response.status == 200 JSON.parse(response.body) else raise Exceptions::ResponseError.new(response), 'Telegram API has returned the error.' end end |
#respond_to_missing?(*args) ⇒ Boolean
53 54 55 56 57 58 |
# File 'lib/telegram/bot/api.rb', line 53 def respond_to_missing?(*args) method_name = args[0].to_s method_name = camelize(method_name) if method_name.include?('_') ENDPOINTS.include?(method_name) || super end |