kaize/configus

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# 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