Class: Ballast::Configuration
- Inherits:
-
HashWithIndifferentAccess
- Object
- HashWithIndifferentAccess
- Ballast::Configuration
- Defined in:
- lib/ballast/configuration.rb
Overview
A class which loads a list of YAML files in a folder and expose them in a dotted notation. For each file, only the subsection for the current environment is loaded, so each YAML document should be an hash.
Class Method Summary (collapse)
-
+ (String) default_environment
Returns the default environment.
-
+ (String) default_root
Returns the default root directory to lookup a configuration.
Instance Method Summary (collapse)
-
- (Configuration) initialize(*sections, root: nil, environment: nil)
constructor
Creates a new configuration.
Constructor Details
- (Configuration) initialize(*sections, root: nil, environment: nil)
Creates a new configuration.
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ballast/configuration.rb', line 30 def initialize(*sections, root: nil, environment: nil) super() root ||= ::Ballast::Configuration.default_root environment ||= ::Ballast::Configuration.default_environment sections.each do |section| content = load_section(root, section) self[section.underscore] = content.fetch(environment, {}) end enable_dotted_access end |
Class Method Details
+ (String) default_environment
Returns the default environment. It will be the first non-nil of the following: Rails environment, the Rack environment or “production”.
20 21 22 |
# File 'lib/ballast/configuration.rb', line 20 def self.default_environment defined?(Rails) ? Rails.env : ENV.fetch("RACK_ENV", "production") end |
+ (String) default_root
Returns the default root directory to lookup a configuration. It will be the Rails root if set or the current folder.
13 14 15 |
# File 'lib/ballast/configuration.rb', line 13 def self.default_root defined?(Rails) ? Rails.root.to_s : Dir.pwd end |