YamlProperties

If you find yourself often setting app config in yaml files for different environments etc. Then this can be quite useful to simply access those variables.

Examples

YamlProperties.redis_port

Will by default read a value from a YAML file in config/properties.yml

redis_port: 1369

Also can be added to a module or class like

module Shutl
  extend YamlProperties
end

Override filename like this

module Shutl
  extend YamlProperties
  def self.yaml_file
    ENV['SINATRA_ENV'] == 'development' ? 'config/properties.yml' : 'config/properties_production.yml'
  end
end

Temporarily override values in e.g. cucumber


#lib/shutl.rb
module Shutl
  extend YamlProperties
end

#features/support/env.rb
After do |scenario|
  YamlProperties.reset!
end

#features/step_definitions/egg_steps.rb
Given /\AThere are \d+ eggs in a dozen\z/ |dozen|
  YamlProperties.override_attribute :egg, dozen
end

Yadayada

gem 'yaml_config'

Usual gem/bundler usage/contribution guidelines