class Confidante::Configuration
Public Class Methods
new(opts = {})
click to toggle source
# File lib/confidante/configuration.rb, line 9 def initialize(opts = {}) options = { overrides: {}, scope: {}, }.merge(opts.to_options) unless options[:hiera] options[:hiera] = Hiera.new(config: 'config/hiera.yaml') end unless options[:converters] options[:converters] = [Confidante::Converters::EvaluatingConverter.new] end @overrides = options[:overrides] @scope = options[:scope] @hiera = options[:hiera] @converters = options[:converters] end
Public Instance Methods
for_overrides(overrides)
click to toggle source
# File lib/confidante/configuration.rb, line 30 def for_overrides(overrides) Configuration.new( overrides: overrides, scope: @scope, hiera: @hiera, converters: @converters) end
for_scope(scope)
click to toggle source
# File lib/confidante/configuration.rb, line 38 def for_scope(scope) Configuration.new( overrides: @overrides, scope: scope, hiera: @hiera, converters: @converters) end
method_missing(method, *args, &block)
click to toggle source
# File lib/confidante/configuration.rb, line 46 def method_missing(method, *args, &block) scope = {'cwd' => Dir.pwd} .merge(@scope.stringify_keys) .merge({'overrides' => @overrides.to_h.stringify_keys}) @converters.inject(@hiera.lookup(method.to_s, nil, scope)) do |v, c| c.convert(v) end end