All Versions
Latest Version
Avg Release Cycle
59 days
Latest Release
1354 days ago

Changelog History

  • v4.7.1

    September 16, 2016

    🛠 Fixes:

    • 💎 An upper bound on the version of Rack Lita depends on has been added so Lita can still be installed on Ruby 2.0. (Rack 2.0 requires Ruby 2.2.)
  • v4.7.0

    January 02, 2016

    🔋 Features:

    • 📇 Lita::Message#extensions has been added as a place for plugins to store arbitrary metadata associated with a message.
  • v4.6.1

    September 03, 2015

    🐛 Bug fixes:

    • 🛠 Fixed a regression from v4.6.0 that caused the replies method in RSpec examples to always return the value it had when it was first called.
  • v4.6.0

    August 29, 2015

    🔋 Features:

    • Adapters can now implement chat-service-specific functionality by implementing Lita::Adapter#chat_service. This is available to handers through Lita::Robot#chat_service. See the Slack adapter for an example.
    • 🏗 A new built-in adapter, Lita::Adapters::Test has been extracted from the Lita::RSpec internals and can be used to build integrations for other testing frameworks.

    👌 Improvements:

    • The send_message and send_command helper methods in RSpec now accept a boolean :privately option for marking the message as private.

    🐛 Bug fixes:

    • Exceptions raised in event callbacks now only crash the event handler and not the robot.
  • v4.5.0

    August 21, 2015

    🔋 Features:

    • Custom helper methods for templates. Make methods available to a template by using the new render_template_with_helpers method, which lets you pass in an array of modules to extend onto the template evaluation context.
    • 🆕 New event: :message_dispatched, fired every time an incoming message matches a handler's chat route. The payload includes the message, the route, the handler class, and the robot.
    • New event: :route_authorization_failed, fired whenever an incoming message fails to match a route because the sending user was not in the proper authorization group. The payload includes the message, the route, and the robot.

    👌 Improvements:

    • 🚚 Lita is now tested against JRuby and Rubinius 2.x. It works with both implementations, with the exception of the daemonization feature on JRuby. This feature is being removed in Lita 5 anyway, so anyone using it now should migrate to a dedicated process manager.
    • The send_message and send_command helper methods in RSpec now take a :from option to specify the source room.
    • New convenience methods to reduce Law of Demeter violations: Lita::Message#room_object, Lita::Message#private_message?, Lita::Response#private_message?, and Lita::Response#room.
    • ✅ Less verbose #inspect output for Lita::Robot objects, making test failure output easier to read.
    • 🔌 The line that registers a plugin with the global Lita registry in generated plugin files now uses self so it's less painful if you decide to rename the plugin.
    • ⚡️ The http_router gem was finally updated so Lita no longer monkey patches it.
    • 📚 Many small documentation and code quality improvements.

    🐛 Bug fixes:

    • Messages are now more strict about being interpreted as commands. If the message is directed at the bot by using its mention name, it must include a space (after an optional comma or colon) before any additional text. This prevents messages that start with words that happen to be the same characters as the bot's mention name from being accidentally treated as commands. This behavior does not apply to messages addressing the bot via its alias, which is intended to be a single character like a slash, exclamation point, or period.
  • v4.4.3

    June 12, 2015
    • 🛠 Fixed: Rooms are only persisted to Redis if they can be verified by the existence of a Lita::Room object.
    • 🛠 Fixed: A few missing and incorrect pieces of API documentation.
  • v4.4.2

    June 12, 2015
    • 🛠 Fixed: Lita::Robot#persisted_rooms is now public.
  • v4.4.1

    June 10, 2015
    • 🛠 Fixed: Lita::Robot#roster now publicly exposes Lita::Adapter#roster, as was intended for version 4.4.0.

    🚀 See v4.4.0 for the full details of the 4.4 release.

  • v4.4.0

    June 10, 2015
    • ➕ Added: Lita::Robot#mention_format will turn a user's mention name into the format used to notify them for the loaded adapter.
    • ➕ Added: Lita::Room is the equivalent of Lita::User but for a chat room. It supports a nearly identical interface, persisting the room's unique ID and a hash of arbitrary metadata to Redis.
    • ➕ Added: Lita::Source#room_object is applicable Lita::Room. Lita::Source#room continues to return the room's unique ID as a string.
    • 🔄 Changed: Lita::Source now accepts either a string or a Lita::Room object for its :room keyword argument.
    • ➕ Added: Lita::Adapter now supports a new abstract method, roster, for returning a list of users in a room.
    • 🔄 Changed: Rooms targeted by the join and part commands are now persisted to Redis. Adapters can use this persistent list to keep track of which rooms the robot should join when it starts. The :loaded event now includes a new key/value pair in its payload: :room_ids, containing an array of string IDs of these rooms.
    • ➕ Added: New configuration attribute: config.robot.log_formatter accepts a proc that will be used to format log messages.
    • 🛠 Fixed: Various missing API documentation blocks have been added.

    🚀 The following change was accidentally left out of this release, but has been released in v4.4.1:

    • 🛠 Fixed: Lita::Robot#roster now publicly exposes Lita::Adapter#roster.
  • v4.3.2

    April 03, 2015
    • 🔄 Changed: Generated plugins default to version 0.1.0 per SemVer.
    • 🔄 Changed: When is false, the shell chat better simulates a group chat room by labeling the room "shell" in Lita::Source objects.