Easy Ruby on Rails application and environment configuration.
Envious is used to configure environment variables for Ruby on Rails 3 applications. It allows you to add configuration variables without the need to add configuration files to your repository.
Envious works by supplying your with an environment_vars.yml
configuration file. When your Rails app is loaded, configurations options from this file are also loaded and added to the local Environment variable hash. The configuration options can then be accessed using the ENV[KEY]
syntax.
Add this line to your application's Gemfile:
gem 'envious'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install envious
After installation, run the following to create config/environment_vars.yml
, and add it to your .gitignore
.
$ rails generate envious:setup
Setting up configuration with Envious is easy. To begin, simply add some variables to your config/environment_vars.yml
that you would like available in the ENV
hash. Keep in mind that Envious uses Rails.env
to allow configuration based on your current environment.
development:
USERNAME: "cat"
production:
USERNAME: "dog"
API_KEY: "ABCXYZ"
In the above case, ENV["API_KEY"]
will produce "ABCXYZ"
because any values not under an environment will be available in all environments. In development ENV["USERNAME"]
will be "cat", and it will be
"dog"` in production.
Since Envious configuration is loaded when your Rails app loads, the ENV
hash is available anywhere in your application where you may need to call upon your configuration.
Envious allows easy transfer of local environment variables to heroku using a simple rake task. To copy local settings to Heroku use:
$ rake envious:heroku:push
The environment used is dependant on Heroku's RAILS_ENV
configuration setting. If it is blank, Envious assumes it is using production
. Changing this setting on Heroku is simple. To change Heroku's RAILS_ENV
to development, use the following command:
$ heroku config:add RAILS_ENV=development
Envious makes it easy to export environment variables to a file for used on Cloud66 using a rake task. To copy local settings to a file formatted for used in the Cloud66 stack environment variable window use:
$ rake envious:cloud66:export > vars.txt
This will export your settings in config/environment_vars.yml
to a file called vars.txt
in your current directory. This is formatted and ready to be uploaded to Cloud66. By default, this will export your production environment variables.
To export environment variables for other environments, you can use an optional argument to the rake task:
$ rake envious:cloud66:export[development] > vars.txt
The command above will export all your development environment variables in config/environment_vars.yml
to a file called vars.txt
. development
can be replaced with any other environments to export those values.
If you have any questions or issues with Envious, please add an issue on GitHub, or send a pull request.