class Attr::Gather::Aggregators::ShallowMerge

Shallowly merges results

@api public

Public Class Methods

new(reverse: false, merge_input: true, **) click to toggle source

Initialize a new DeepMerge aggregator

@param reverse [Boolean] merge results in reverse order @param merge_input [Boolean] merge the result with the initial input

@api private

Calls superclass method Attr::Gather::Aggregators::Base::new
# File lib/attr/gather/aggregators/shallow_merge.rb, line 18
def initialize(reverse: false, merge_input: true, **)
  @reverse = reverse
  @merge_input = merge_input
  super
end

Public Instance Methods

call(input, execution_results) click to toggle source
# File lib/attr/gather/aggregators/shallow_merge.rb, line 24
def call(input, execution_results)
  execution_results = execution_results.reverse_each if reverse?

  execution_results.reduce(@merge_input ? input : EMPTY_HASH) do |memo, res|
    memo.merge(unwrap_result(res))
  end
end

Private Instance Methods

reverse?() click to toggle source
# File lib/attr/gather/aggregators/shallow_merge.rb, line 34
def reverse?
  @reverse
end