Skip to content

j4rs/loadcfg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

loadcfg

Rails gem for read environment variables configuration, just follow some convention.

Install

gem install loadcfg

or then add gem ‘loadcfg’ to your Gemfile and run:

bundle install

Usage

Let’s say you have some configuration variables that depend of the environment you are working on, for example config/facebook.yml

development:
  app_id: <the_app_id_for_development_env>
  secret_key: <the_secret_key_for_development_env>
  callback_url: <the_callback_url_for_development_env>
test:
  app_id: <the_app_id_for_test_env>
  secret_key: <the_secret_key_for_test_env>
  callback_url: <the_callback_url_for_test_env>
staging:
  app_id: <the_app_id_for_staging_env>
  secret_key: <the_secret_key_for_staging_env>
  callback_url: <the_callback_url_for_staging_env>
production:
  app_id: <the_app_id_for_production_env>
  secret_key: <the_secret_key_for_production_env>
  callback_url: <the_callback_url_for_production_env>

One of the conventions is that you should put the file in the config directory of your rails project, then, in any class where you want to use the constants you just need to call loadconfig method passing the config file name as a symbol, for example:

class FacebookHelper
  loadconfig :facebook
end

that’s going to generate a constant for each key in the yaml config file, each constant will has file name as a prefix, for example:

class FacebookHelper
  loadconfig :facebook

  def some_method_that_deals_with_facebook_api
    fb_id = FACEBOOK_APP_ID
    fb_secret_key = FACEBOOK_SECRET_KEY
    # here fb_id and fb_secret_key contain the values you gave them for the environment you are working on
  end
end

Options

There is a couple of options you can pass to loadconfig method

loadconfig :facebook, :environment => :my_environment, :ignore_not_found => true

If there’s no my_environment entry in the config/facebook.yml file there will be no exception raised.

That’s it.

About

Load environment configuration as constants just knowing the YAML file name.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages