Class: Puppet::Pops::UniqueMergeStrategy

Inherits:
MergeStrategy show all
Defined in:
lib/puppet/pops/merge_strategy.rb

Overview

Merges two values that must be either scalar or arrays into a unique set of values.

Scalar values will be converted into a one element arrays and array values will be flattened prior to forming the unique set. The order of the elements is preserved with e1 being the first contributor of elements and e2 the second.

Constant Summary

Constants inherited from MergeStrategy

MergeStrategy::NOT_FOUND, MergeStrategy::TypeAsserter, MergeStrategy::TypeParser

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from MergeStrategy

add_strategy, #configuration, #initialize, merge, #merge, #merge_lookup, #options, strategy, strategy_keys

Constructor Details

This class inherits a constructor from Puppet::Pops::MergeStrategy

Class Method Details

.keyObject



236
237
238
# File 'lib/puppet/pops/merge_strategy.rb', line 236

def self.key
  :unique
end

Instance Method Details

#checked_merge(e1, e2) ⇒ Array<Object>

Returns The unique set of elements.

Parameters:

Returns:



244
245
246
# File 'lib/puppet/pops/merge_strategy.rb', line 244

def checked_merge(e1, e2)
  convert_value(e1) | convert_value(e2)
end

#convert_value(e) ⇒ Object



248
249
250
# File 'lib/puppet/pops/merge_strategy.rb', line 248

def convert_value(e)
  e.is_a?(Array) ? e.flatten : [e]
end