module Telegram::Bot::UpdatesController::CallbackQueryContext
Use separate actions for different callback queries. It doesn't require session support. Simply add `%{context}:` prefix to data.
Protected Instance Methods
action_for_callback_query()
click to toggle source
Uses context_from_callback_query
as context name. If context is present checks if `%context%_callback_query` is valid action method and returns it if so. Context is stripped from data in this case. Otherwise returns `super`.
It wont raise ActionNotFound as MessageContext
does, because `data` param is controlled by client.
Calls superclass method
# File lib/telegram/bot/updates_controller/callback_query_context.rb, line 16 def action_for_callback_query context, new_data = context_from_callback_query if context action_name = "#{context}_callback_query" if action_method?(action_name) action_options = {type: :callback_query_context, context: context} return [[action_name, action_options], [new_data]] end end super end
context_from_callback_query()
click to toggle source
# File lib/telegram/bot/updates_controller/callback_query_context.rb, line 28 def context_from_callback_query data = payload['data'] return unless data parts = data.split(':', 2) parts if parts.size > 1 end