README.md
# Configus
[![Gem Version](https://badge.fury.io/rb/configus.svg)](https://rubygems.org/gems/configus)
[![Build Status](https://travis-ci.org/kaize/configus.svg)](https://travis-ci.org/kaize/configus)
[![Dependency Status](https://gemnasium.com/kaize/configus.svg)](https://gemnasium.com/kaize/configus)
[![Code Climate](https://codeclimate.com/github/kaize/configus.svg)](https://codeclimate.com/github/kaize/configus)
[![Coverage Status](https://coveralls.io/repos/kaize/configus/badge.svg?branch=master)](https://coveralls.io/r/kaize/configus)
## Summary
Configus helps you easily manage environment specific settings
## Installing
Add this to your `Gemfile`:
gem "configus"
## Examples
### Definition
``` ruby
Configus.build :development do # set current environment
env :production do
site_name 'Example'
web do
domain 'example.com'
protocol 'https'
port 80
uri -> { "#{protocol}://#{domain}:#{port}" }
end
site_uri -> { web.uri }
email do
pop do
address 'pop.example.com'
port 110
end
smtp do
address 'smtp.example.com'
port 25
end
end
end
env :development, :parent => :production do
web do
domain 'localhost'
protocol 'http'
port 9292
end
email do
smtp do
address 'smpt.text.example.com'
end
end
end
end
```
### Usage
configus.site_name # => 'Example'
configus.web.uri # => 'https://example.com:80'
configus.site_uri # => 'https://example.com:80'
configus.email.pop.port # => 110
### Rails
define your config in `lib/configus.rb`
Configus.build Rails.env do
# settings
end
reload
# config/environments/development.rb
ActionDispatch::Reloader.to_prepare do
load Rails.root.join('lib/configus.rb')
end
## Similar
* https://github.com/markbates/configatron
* https://github.com/railsjedi/rails_config