Class: RSpec::Terraform::Configuration::Providers::Confidante
- Defined in:
- lib/rspec/terraform/configuration/providers/confidante.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
-
#merger ⇒ Object
readonly
Returns the value of attribute merger.
-
#overrides_selector ⇒ Object
readonly
Returns the value of attribute overrides_selector.
-
#parameters ⇒ Object
readonly
Returns the value of attribute parameters.
-
#scope_selector ⇒ Object
readonly
Returns the value of attribute scope_selector.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ Confidante
constructor
A new instance of Confidante.
- #resolve(overrides = {}) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(opts = {}) ⇒ Confidante
Returns a new instance of Confidante.
22 23 24 25 26 27 28 29 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 22 def initialize(opts = {}) super() @parameters = opts[:parameters] || [] @scope_selector = opts[:scope_selector] || ->(o) { o } @overrides_selector = opts[:overrides_selector] || ->(o) { o } @configuration = ::Confidante.configuration @merger = opts[:merger] || Merger.new end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
14 15 16 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 14 def configuration @configuration end |
#merger ⇒ Object (readonly)
Returns the value of attribute merger.
14 15 16 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 14 def merger @merger end |
#overrides_selector ⇒ Object (readonly)
Returns the value of attribute overrides_selector.
14 15 16 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 14 def overrides_selector @overrides_selector end |
#parameters ⇒ Object (readonly)
Returns the value of attribute parameters.
14 15 16 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 14 def parameters @parameters end |
#scope_selector ⇒ Object (readonly)
Returns the value of attribute scope_selector.
14 15 16 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 14 def scope_selector @scope_selector end |
Instance Method Details
#resolve(overrides = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rspec/terraform/configuration/providers/confidante.rb', line 31 def resolve(overrides = {}) resolved_configuration = configuration .for_scope(scope_selector.call(overrides)) .for_overrides(overrides_selector.call(overrides)) result = parameters.inject({}) do |acc, parameter| value = resolved_configuration.send(parameter) value.nil? ? acc : acc.merge(parameter => value) end merger.merge(result, overrides) end |