class Figaro::Application
Constants
- FIGARO_ENV_PREFIX
Public Class Methods
new(options = {})
click to toggle source
# File lib/figaro/application.rb, line 10 def initialize(options = {}) @options = options.inject({}) { |m, (k, v)| m[k.to_sym] = v; m } end
Public Instance Methods
configuration()
click to toggle source
# File lib/figaro/application.rb, line 31 def configuration global_configuration.merge(environment_configuration) end
each(&block)
click to toggle source
# File lib/figaro/application.rb, line 41 def each(&block) configuration.each(&block) end
environment()
click to toggle source
# File lib/figaro/application.rb, line 22 def environment environment = @options.fetch(:environment) { default_environment } environment.nil? ? nil : environment.to_s end
environment=(environment)
click to toggle source
# File lib/figaro/application.rb, line 27 def environment=(environment) @options[:environment] = environment end
load()
click to toggle source
# File lib/figaro/application.rb, line 35 def load each do |key, value| skip?(key) ? key_skipped!(key) : set(key, value) end end
path()
click to toggle source
# File lib/figaro/application.rb, line 14 def path @options.fetch(:path) { default_path }.to_s end
path=(path)
click to toggle source
# File lib/figaro/application.rb, line 18 def path=(path) @options[:path] = path end
Private Instance Methods
default_environment()
click to toggle source
# File lib/figaro/application.rb, line 51 def default_environment nil end
default_path()
click to toggle source
# File lib/figaro/application.rb, line 47 def default_path raise NotImplementedError end
environment_configuration()
click to toggle source
# File lib/figaro/application.rb, line 67 def environment_configuration raw_configuration[environment] || {} end
global_configuration()
click to toggle source
# File lib/figaro/application.rb, line 63 def global_configuration raw_configuration.reject { |_, value| value.is_a?(Hash) } end
key_skipped!(key)
click to toggle source
# File lib/figaro/application.rb, line 87 def key_skipped!(key) warn "WARNING: Skipping key #{key.inspect}. Already set in ENV." end
non_string_configuration!(value)
click to toggle source
# File lib/figaro/application.rb, line 83 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 59 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 55 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 71 def set(key, value) non_string_configuration!(key) unless key.is_a?(String) non_string_configuration!(value) unless value.is_a?(String) || value.nil? ::ENV[key.to_s] = value.nil? ? nil : value.to_s ::ENV[FIGARO_ENV_PREFIX + key.to_s] = value.nil? ? nil: value.to_s end
skip?(key)
click to toggle source
# File lib/figaro/application.rb, line 79 def skip?(key) ::ENV.key?(key.to_s) && !::ENV.key?(FIGARO_ENV_PREFIX + key.to_s) end