Lita Dotenv Config Loader
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:
- all paths begin with
LITA_
- all paths are designed to match Lita configure paths
- optional type coercion is available by setting the type as a suffix:
- Symbol:
__TYPESYM
- Boolean:
__TYPEBOOL
- Integer:
__TYPEINT
- JSON:
__TYPEJSON
- JSON with symbole keys:
__TYPEJSONSYM
- 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
Links
Project Repo
Lita
Contributing
- Fork it ( http://github.com/grokify/lita_dotenv/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - 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