Class: Kitchen::DataMunger
- Inherits:
-
Object
- Object
- Kitchen::DataMunger
- Defined in:
- lib/kitchen/data_munger.rb
Overview
Class to handle recursive merging of configuration between platforms, suites, and common data.
This object will mutate the data Hash passed into its constructor and so should not be reused or shared across threads.
Instance Method Summary collapse
- #busser_data_for(suite, platform) ⇒ Object
- #driver_data_for(suite, platform) ⇒ Object
-
#initialize(data, kitchen_config = {}) ⇒ DataMunger
constructor
A new instance of DataMunger.
- #platform_data ⇒ Object
- #provisioner_data_for(suite, platform) ⇒ Object
- #suite_data ⇒ Object
Constructor Details
#initialize(data, kitchen_config = {}) ⇒ DataMunger
Returns a new instance of DataMunger.
32 33 34 35 36 37 38 39 |
# File 'lib/kitchen/data_munger.rb', line 32 def initialize(data, kitchen_config = {}) @data = data @kitchen_config = kitchen_config convert_legacy_driver_format! convert_legacy_chef_paths_format! convert_legacy_require_chef_omnibus_format! move_chef_data_to_provisioner! end |
Instance Method Details
#busser_data_for(suite, platform) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/kitchen/data_munger.rb', line 41 def busser_data_for(suite, platform) merged_data_for(:busser, suite, platform, :version).tap do |bdata| set_kitchen_config_at!(bdata, :kitchen_root) set_kitchen_config_at!(bdata, :test_base_path) set_kitchen_config_at!(bdata, :log_level) end end |
#driver_data_for(suite, platform) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/kitchen/data_munger.rb', line 49 def driver_data_for(suite, platform) merged_data_for(:driver, suite, platform).tap do |ddata| set_kitchen_config_at!(ddata, :kitchen_root) set_kitchen_config_at!(ddata, :test_base_path) set_kitchen_config_at!(ddata, :log_level) end end |
#platform_data ⇒ Object
57 58 59 |
# File 'lib/kitchen/data_munger.rb', line 57 def platform_data data.fetch(:platforms, []) end |
#provisioner_data_for(suite, platform) ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/kitchen/data_munger.rb', line 61 def provisioner_data_for(suite, platform) merged_data_for(:provisioner, suite, platform).tap do |pdata| set_kitchen_config_at!(pdata, :kitchen_root) set_kitchen_config_at!(pdata, :test_base_path) set_kitchen_config_at!(pdata, :log_level) combine_arrays!(pdata, :run_list, :platform, :suite) end end |
#suite_data ⇒ Object
70 71 72 |
# File 'lib/kitchen/data_munger.rb', line 70 def suite_data data.fetch(:suites, []) end |