Lita Dotenv Config Loader

[![Gem Version][gem-version-svg]][gem-version-link] [![Dependency Status][dependency-status-svg]][dependency-status-link] [![Code Climate][codeclimate-status-svg]][codeclimate-status-link] [![Scrutinizer Code Quality][scrutinizer-status-svg]][scrutinizer-status-link] [![Downloads][downloads-svg]][downloads-link] [![Docs][docs-rubydoc-svg]][docs-rubydoc-link] [![License][license-svg]][license-link]

lita_dotenv is designed to allow storing an entire Lita bot config in an .env file including the following:

  • map environment variables to Lita config properties
  • coerce environment variable value types to Ruby types
  • load .env file if exists

The lita_config.rb file should be as simple as:

require 'lita_dotenv'

Lita.configure do |config|
  config = LitaDotenv.new(config).config
end

Installation

Add lita_dotenv to your Lita instance's Gemfile:

gem "lita_dotenv"

Configuration

.env

DotenvConfig uses a simple parser that follows the following rules for assigning ENV variable names to Lita paths:

  1. all paths begin with LITA_
  2. all paths are designed to match Lita configure paths
  3. optional type coercion is available by setting the type as a suffix:
  4. Symbol: __TYPESYM
  5. Boolean: __TYPEBOOL
  6. Integer: __TYPEINT
  7. JSON: __TYPEJSON
  8. JSON with symbole keys: __TYPEJSONSYM
  9. underscores are handled in paths by using camelCase starting with a lowercase letter where an underscore is inserted before each uppercase letter
LITA_ROBOT_NAME=Configbot          # config.robot.name = 'Configbot'
LITA_ROBOT_LOCALE__TYPESYM=en      # config.robot.locale = :en
LITA_ROBOT_logLevel__TYPESYM=info  # config.robot.log_level = :info

lita_config.rb

In the ideal case, the lita_config.rb file should be as simple as:

require 'lita_dotenv'

Lita.configure do |config|
  config = LitaDotenv.new(config).config
end

To Do

  • Map config hash key values, e.g. config.redis[:url]

Change Log

See CHANGELOG.md

Project Repo

Lita

Contributing

  1. Fork it ( http://github.com/grokify/lita_dotenv/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

Lita Dotenv Config Loader is available under the MIT license. See LICENSE.txt for details.

Lita Dotenv Config Loader © 2016 by John Wang

[gem-version-svg]: https://badge.fury.io/rb/lita_dotenv.svg [gem-version-link]: http://badge.fury.io/rb/lita_dotenv [downloads-svg]: http://ruby-gem-downloads-badge.herokuapp.com/lita_dotenv [downloads-link]: https://rubygems.org/gems/lita_dotenv [dependency-status-svg]: https://gemnasium.com/grokify/lita_dotenv.svg [dependency-status-link]: https://gemnasium.com/grokify/lita_dotenv [codeclimate-status-svg]: https://codeclimate.com/github/grokify/lita_dotenv/badges/gpa.svg [codeclimate-status-link]: https://codeclimate.com/github/grokify/lita_dotenv [scrutinizer-status-svg]: https://scrutinizer-ci.com/g/grokify/lita_dotenv/badges/quality-score.png?b=master [scrutinizer-status-link]: https://scrutinizer-ci.com/g/grokify/lita_dotenv/?branch=master [docs-rubydoc-svg]: https://img.shields.io/badge/docs-rubydoc-blue.svg [docs-rubydoc-link]: http://www.rubydoc.info/gems/lita_dotenv/ [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg [license-link]: https://github.com/grokify/lita_dotenv/blob/master/LICENSE.txt