# Lita [![Build Status](https://travis-ci.org/jimmycuadra/lita.png)](https://travis-ci.org/jimmycuadra/lita) [![Code Climate](https://codeclimate.com/github/jimmycuadra/lita.png)](https://codeclimate.com/github/jimmycuadra/lita) [![Coverage Status](https://coveralls.io/repos/jimmycuadra/lita/badge.png)](https://coveralls.io/r/jimmycuadra/lita) **Lita** is a chat bot written in Ruby with persistent storage provided by [Redis](http://redis.io/). It can connect to any chat service (given that there is an [adapter](#adapters) available for it) and can have new behavior added via [handlers](#handlers). The plugin system is managed with regular RubyGems and [Bundler](http://gembundler.com/). Automate your business and have fun with your very own robot companion. ## Dependencies * Ruby 2.0 * Redis ## Installation First, install the gem with `gem install lita`. This gives you access to the `lita` commmand. Run `lita help` to list available tasks. Generate a new Lita instance by running `lita new NAME`. This will create a new directory called NAME (defaults to "lita") with a Gemfile and Lita configuration file. ## Usage To start your Lita instance, simply run `bundle exec lita`. This will load up all the plugins (adapters and handlers) declared in your Gemfile, load any configuration you've defined (more on that later) and start the bot. ## Adapters The core Lita gem by itself doesn't do much. To make real use of it, you'll want to install an adapter gem to allow Lita to connect to the chat service of your choice. Find the gem for the service you want to use on [the list of adapters](https://github.com/jimmycuadra/lita/wiki/Adapters), then add it to your Gemfile. For example: ``` ruby gem "lita-hipchat" ``` Adapters will likely require some configuration to be able to connect. See the documentation for the adapter for details. Without installing an adapter, you can use the default shell adapter to chat with Lita in your terminal. Lita doesn't respond to any messages by default, however, so you'll want to add some new behavior to Lita via handlers. ## Handlers Handlers are gems that add new behavior to Lita. They are responsible for listening for incoming messages and responding to them appropriately. Find the handler gems you want for your bot on [the list of handlers](https://github.com/jimmycuadra/lita/wiki/Handlers), then add them to your Gemfile. For example: ``` ruby gem "lita-karma" ``` ## Configuration To configure Lita, edit the file `lita_config.rb` generated by the `lita new` command. This is just a plain Ruby file that will be evaluated when the bot is starting up. A Lita config file looks something like this: ``` ruby Lita.configure do |config| config.robot.name = "Sir Bottington" config.robot.adapter = :example_chat_service config.adapter.username = "bottington" config.adapter.password = "secret" config.redis.host = "redis.example.com" config.handlers.karma.rate_limit = 300 config.handlers.google_images.safe_search = false end ``` The main config objects are: * robot: General settings for Lita. * name: The name the bot will use on the chat service. * adapter: A symbol or string indicating the adapter to load. * adapter: Options for the chosen adapter. See the adapter's documentation. * redis: Options for the Redis connection. See the [Redis gem](https://github.com/redis/redis-rb) documentation. * handlers: Handlers may choose to expose a config object here with their own options. See the handler's documentation. ## Acknowledgements Lita draws much inspiration from GitHub's fantastic [Hubot](http://hubot.github.com/). ## License [MIT](http://opensource.org/licenses/MIT)