class Figaro::Application
Constants
- FIGARO_ENV_PREFIX
Attributes
environment[W]
path[W]
Public Class Methods
new(options = {})
click to toggle source
# File lib/figaro/application.rb, line 12 def initialize(options = {}) @path = options[:path] @environment = options[:environment] end
Public Instance Methods
configuration()
click to toggle source
# File lib/figaro/application.rb, line 25 def configuration global_configuration.merge(environment_configuration) end
environment()
click to toggle source
# File lib/figaro/application.rb, line 21 def environment (@environment || default_environment).to_s end
load()
click to toggle source
# File lib/figaro/application.rb, line 29 def load configuration.each do |key, value| set(key, value) unless skip?(key) end end
path()
click to toggle source
# File lib/figaro/application.rb, line 17 def path (@path || default_path).to_s end
Private Instance Methods
default_environment()
click to toggle source
# File lib/figaro/application.rb, line 41 def default_environment raise NotImplementedError end
default_path()
click to toggle source
# File lib/figaro/application.rb, line 37 def default_path raise NotImplementedError end
environment_configuration()
click to toggle source
# File lib/figaro/application.rb, line 57 def environment_configuration raw_configuration.fetch(environment) { {} } end
global_configuration()
click to toggle source
# File lib/figaro/application.rb, line 53 def global_configuration raw_configuration.reject { |_, value| value.is_a?(Hash) } end
non_string_configuration!(value)
click to toggle source
# File lib/figaro/application.rb, line 73 def non_string_configuration!(value) warn "WARNING: Use strings for Figaro configuration. #{value.inspect} was converted to #{value.to_s.inspect}." end
parse(path)
click to toggle source
# File lib/figaro/application.rb, line 49 def parse(path) File.exist?(path) && YAML.load(ERB.new(File.read(path)).result) || {} end
raw_configuration()
click to toggle source
# File lib/figaro/application.rb, line 45 def raw_configuration (@parsed ||= Hash.new { |hash, path| hash[path] = parse(path) })[path] end
set(key, value)
click to toggle source
# File lib/figaro/application.rb, line 61 def set(key, value) non_string_configuration!(key) unless key.is_a?(String) non_string_configuration!(value) unless value.is_a?(String) ::ENV[key.to_s] = value.to_s ::ENV[FIGARO_ENV_PREFIX + key.to_s] = value.to_s end
skip?(key)
click to toggle source
# File lib/figaro/application.rb, line 69 def skip?(key) ::ENV.key?(key.to_s) && !::ENV.key?(FIGARO_ENV_PREFIX + key.to_s) end