lib/telegram/bot/updates_controller/reply_helpers.rb in telegram-bot-0.7.4 vs lib/telegram/bot/updates_controller/reply_helpers.rb in telegram-bot-0.8.0

- old
+ new

@@ -1,23 +1,25 @@ module Telegram module Bot class UpdatesController module ReplyHelpers - # Helper to call bot's `send_#{type}` method with already set `chat_id` and - # `reply_to_message_id`: + # Helper to call bot's `send_#{type}` method with already set `chat_id`: # - # reply_with :message, text: 'Hello!' - # reply_with :message, text: '__Hello!__', parse_mode: :Markdown - # reply_with :photo, photo: File.open(photo_to_send), caption: "It's incredible!" - def reply_with(type, params) - method = "send_#{type}" + # respond_with :message, text: 'Hello!' + # respond_with :message, text: '__Hello!__', parse_mode: :Markdown + # respond_with :photo, photo: File.open(photo_to_send), caption: "It's incredible!" + def respond_with(type, params) chat = self.chat + chat_id = chat && chat['id'] or raise 'Can not respond_with when chat is not present' + bot.public_send("send_#{type}", params.merge(chat_id: chat_id)) + end + + # Same as respond_with but also sets `reply_to_message_id`. + def reply_with(type, params) payload = self.payload - params = params.merge( - chat_id: (chat && chat['id'] or raise 'Can not reply_with when chat is not present'), - reply_to_message: payload && payload['message_id'], - ) - bot.public_send(method, params) + message_id = payload && payload['message_id'] + params = params.merge(reply_to_message_id: message_id) if message_id + respond_with(type, params) end # Same as reply_with, but for inline queries. def answer_inline_query(results, params = {}) params = params.merge(