https://github.com/grokify/lita_dotenv
Load a Lita configuration from ENV and .env.
https://github.com/grokify/lita_dotenv
Last synced: 3 months ago
JSON representation
Load a Lita configuration from ENV and .env.
- Host: GitHub
- URL: https://github.com/grokify/lita_dotenv
- Owner: grokify
- License: mit
- Created: 2016-09-02T05:20:48.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-14T03:38:49.000Z (over 8 years ago)
- Last Synced: 2024-10-18T18:27:39.249Z (8 months ago)
- Language: Ruby
- Homepage:
- Size: 5.86 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
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](https://www.lita.io/) 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 existsThe `lita_config.rb` file should be as simple as:
```ruby
require 'lita_dotenv'Lita.configure do |config|
config = LitaDotenv.new(config).config
end
```## Installation
Add `lita_dotenv` to your Lita instance's Gemfile:
``` ruby
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:
1. Symbol: `__TYPESYM`
2. Boolean: `__TYPEBOOL`
3. Integer: `__TYPEINT`
4. JSON: `__TYPEJSON`
5. JSON with symbole keys: `__TYPEJSONSYM`
4. 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:
```ruby
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](CHANGELOG.md)
## Links
Project Repo
* https://github.com/grokify/lita_dotenv
Lita
* https://www.lita.io/
## 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](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