This gem allows you to quickly convert YML files into a Config object where the attributes can be accessed using dot, hash symbol or hash string notation.
Add this line to your application's Gemfile:
gem 'quandl-config'
And then execute:
$ bundle
Or install it yourself as:
$ gem install quandl-config
- Create a
ymlfile with the same file name as your class. For example:
class: A::B::C
file name: config/a/b/c.yml
- Extend the
Quandl::Configurableclass. This adds a configuration class method.
class A::B::C
extend Quandl::Configurable
endpry
pry> A::B::C.configuration
=> #<Quandl::Config language="spanish", hello="hola">class A::B::Special
extend Quandl::Configurable
def self.file_name
'database_zip_uploader'
end
endclass A::B::C
include Quandl::Configurable
endThat's ok. Quandl::Config will find your config file if it's in a config folder in the root of your app. See also the How do I override default values? for more information.
You can override default values by adding a configuration_options method to your class/instance. The options available to be overwritten are:
root_path- Override this when you want to change the default path to your configuration files root folder. (default: your project path)environment- Override this when you are not using a rails project and don't set the environment viaENV['RAILS_ENV']
class A::B::Special
extend Quandl::Configurable
def self.configuration_options
{
root_path: Pathname.new('~/configs/my_project'),
environment: ENV['MY_PROJECT']
}
end
endquandl-config utilizes an internal caching schema to save previously loaded configurations so that they don't load twice. You may need to restart your server in certain cases depending on how quandl-config was used in your project.
Additionally if you have included via include Quandl::Configurable you can use the following method to reset the internal config. This however will not work when extending the module.
Quandl::Config.clear_internal_cache- Fork it ( https://github.com/[my-github-username]/quandl-config/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request