Sha256: 52976f71bbbba2a6371f465eaa4ecd763698fc052d079ec7db38909e621d1b7a
Contents?: true
Size: 1023 Bytes
Versions: 2
Compression:
Stored size: 1023 Bytes
Contents
require 'hiera' require 'active_support' require 'active_support/core_ext/hash/keys' module Confidante class Configuration def initialize(opts = {}) options = { overrides: {}, scope: {}, }.merge(opts.to_options) unless options[:hiera] options[:hiera] = Hiera.new(config: 'config/hiera.yaml') end @overrides = options[:overrides] @scope = options[:scope] @hiera = options[:hiera] end def for_overrides(overrides) Configuration.new( overrides: overrides, scope: @scope, hiera: @hiera) end def for_scope(scope) Configuration.new( overrides: @overrides, scope: scope, hiera: @hiera) end def method_missing(method, *args, &block) @hiera.lookup( method.to_s, nil, {'cwd' => Dir.pwd} .merge(@scope.stringify_keys) .merge({'overrides' => @overrides.to_h.stringify_keys})) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
confidante-0.7.0 | lib/confidante/configuration.rb |
confidante-0.6.0 | lib/confidante/configuration.rb |