class BlendedConfig::OptionGroup

Public Class Methods

new(name, &options) click to toggle source
# File lib/blended_config/option_group.rb, line 5
def initialize(name, &options)
  @name      = name
  @resolvers = []

  instance_exec(&options)
end

Public Instance Methods

bind_source(key, source) click to toggle source
# File lib/blended_config/option_group.rb, line 22
def bind_source(key, source)
  source.prefix_with(@name)

  @resolvers.each do |resolver|
    resolver.bind_source(key, source)
  end
end
option(option_name, &resolution) click to toggle source
# File lib/blended_config/option_group.rb, line 12
def option(option_name, &resolution)
  resolver = OptionResolver.new(option_name, &resolution)

  @resolvers << resolver

  self.class.class_exec do
    define_method(option_name) { resolver.value }
  end
end