class BlendedConfig

Constants

VERSION

Public Class Methods

group(name, &options) click to toggle source
# File lib/blended_config.rb, line 8
def self.group(name, &options)
  option_group = OptionGroup.new(name, &options)
  option_groups << option_group

  define_method(name) { option_group }
end
new(env: ENV, **options) click to toggle source
# File lib/blended_config.rb, line 30
def initialize(env: ENV, **options)
  bind_config_file(options)
  bind_environment(env)
end
option(name, &resolution) click to toggle source
# File lib/blended_config.rb, line 15
def self.option(name, &resolution)
  option_resolver = OptionResolver.new(name, &resolution)
  option_resolvers << option_resolver

  define_method(name) { option_resolver }
end
option_groups() click to toggle source
# File lib/blended_config.rb, line 22
def self.option_groups
  @option_groups ||= []
end
option_resolvers() click to toggle source
# File lib/blended_config.rb, line 26
def self.option_resolvers
  @option_resolvers ||= []
end

Private Instance Methods

bind_config_file(options) click to toggle source
# File lib/blended_config.rb, line 37
def bind_config_file(options)
  source = Sources::File.new(options)

  bind_source(:file, source)
end
bind_environment(environment) click to toggle source
# File lib/blended_config.rb, line 43
def bind_environment(environment)
  source = Sources::Environment.new(environment)

  bind_source(:env, source)
end
bind_source(key, source) click to toggle source
# File lib/blended_config.rb, line 51
def bind_source(key, source)
  self.class.option_groups.each do |option_group|
    option_group.bind_source(key, source)
  end
end