- Read config from secrets when credentials don't provide it in rails >= 5.2.
- Remove botan.io support. It's already shut down, so it should not be a braking change. https://github.com/botanio/sdk#this-service-will-be-shut-down-on-25th-may-2018
- Make integration & controller specs consistent.
Breaking changes for controller specs:
- Changed signature
dispatch(bot, update) => dispatch(update, bot)
. update
helper is symbolized by default.build_update(type, data)
is dropped in favor ofdeep_stringify(type => data)
.
- Changed signature
- Provide support for integration testing of bots in poller mode and non-Rails apps.
Breaking changes:
- Requiring
telegram/bot/rspec/integration
is deprecated in favor oftelegram/bot/rspec/integration/rails
. :telegram_bot
rspec tag is replaced withtelegram_bot: :rails
.
- Requiring
- Breaking change. Use bang-methods as actions for commands.
This prevents calling context contextual actions and payload specific actions with commands.
Translation helper strips
!
from action name for lazy translations. - Breaking change. Drop
.context_handler
,.context_to_action!
methods. Use pass action name directly to#save_context
. It's the same as.context_to_action!
is enabled by default. - Class-level helper for lazy translations.
- Extracted typed response mappings to telegram-bot-types gem. It now provides definitions for all API v3.5 methods.
- Fix #chat for non-message updates with TypedUpdates enabled
rescue_from
.- Support for
credentials
store in Rails 5.2. - Deprecate
telegram_webhooks
in favor oftelegram_webhook
. It was too complicated and such routes looked ugly.
- Fix spec helpers for callback queries.
- New methods from Bot API v3.5
- Collect all api helper-methods in Client::ApiHelper module.
- Add
bin/fetch-telegram-methods
to update API methods list from website.
- Fix
set_webhook
rake task for async bots with self-issued certificates. - Make
#session
raise error when store is not configured, don't use Rails.cache as fallback for session_store. - Allow use different sessions for MessageContext.
- New API methods and payload types (up to Bot API 3.2).
- Fix rails 5.1.x support.
- RSpec context for callback_query updates.
edit_message
helper.- ClientStub saves and returns token. Fixes testing multiple bots.
- Raise descriptive error when accessing not-configured bot.
- Release dependencies for Rails 5.1.
- Rails 5.1 deep symbolized secrets support.
- Fixed poller for typed response.
- Remove Bot::StaleChat in favor of Bot::Forbidden, as Telegram adds more and more new descriptions. Please open an issue if you face a problem.
- Support
(edited_)channel_post
updates. - New methods from 2.3, 2.3.1 API updates.
- Integration helpers for RSpec.
- Fix for ruby 2.2.0 bug by @bob-frost.
- Async API requests.
- One more description for StaleChat error.
- edit_message_* methods.
- API methods from 2016-10-03 update
- Fix typo in module name: CallbackQueyContext -> CallbackQueryContext.
- Take
chat
frommessage
for callback queries - RSpec matchers.
- Fixed
#reply_with
, now it setsreply_to_message_id
as it's supposed to. Added#respond_with
which works the same way, but doesn't setreply_to_message_id
. Please, replace all occurrences ofreply_with
torespond_with
to keep it working the old way. - Fixes for Rails 5:
- Controller callbacks
- Middleware
- Setup travis builds
- Rails 5 support by @dreyks (#4).
- Fixed issues with poller in production (#3)
- Bot API 2.1
- Fixed possible crashes when payload type is not supported.
Provides empty session when neither
from
norchat
is defined.
- New Bot API methods.
- Helpers for inline keyboards, support for callback_query (with contextual actions).
- Changed action methods signature
#inline_query(payload) -> #inline_query(query, offset)
#chosen_inline_result(payload)
->#chosen_inline_result(result_id, query)
- MessageContext doesn't use second #process call to run contextual action.
- Botan.io metrics.
- StaleChat error.
- Encode arrays as json in request body.
- MessageContext.
- Running controller action without update.
- Client.wrap supports symbols.
- Improved testing utils: ability to process multiple updates on same controller instance, stubbing all clients in application.