Class: Kitchen::DataMunger::MergeResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/kitchen/data_munger.rb

Overview

Resolves the default/common/platform/suite layers for one plugin key.

Instance Method Summary collapse

Constructor Details

#initialize(data_munger) ⇒ MergeResolver

Returns a new instance of MergeResolver.



688
689
690
# File 'lib/kitchen/data_munger.rb', line 688

def initialize(data_munger)
  @data_munger = data_munger
end

Instance Method Details

#merged_data_for(key, suite, platform, default_key) ⇒ Hash

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Merges the default, common, platform, and suite layers for one plugin key, with later layers winning over earlier ones.

Parameters:

  • key (Symbol)

    the plugin key to merge, such as :driver

  • suite (String)

    a suite name

  • platform (String)

    a platform name

  • default_key (Symbol)

    the key used when normalizing data sub-hashes

Returns:

  • (Hash)

    a new merged Hash



702
703
704
705
706
707
708
709
# File 'lib/kitchen/data_munger.rb', line 702

def merged_data_for(key, suite, platform, default_key)
  ddata = data_munger.send(:normalized_default_data, key, default_key, suite, platform)
  cdata = data_munger.send(:normalized_common_data, key, default_key)
  pdata = data_munger.send(:normalized_platform_data, key, default_key, platform)
  sdata = data_munger.send(:normalized_suite_data, key, default_key, suite)

  ddata.rmerge(cdata.rmerge(pdata.rmerge(sdata)))
end