Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kaize/configus

Configus helps you easily manage environment specific settings
https://github.com/kaize/configus

Last synced: about 1 month ago
JSON representation

Configus helps you easily manage environment specific settings

Awesome Lists containing this project

README

        

# 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