Class: Ecu::CombinedListComparison

Inherits:
Object
  • Object
show all
Defined in:
lib/ecu/combined_list_comparison.rb

Instance Method Summary collapse

Constructor Details

#initialize(left, right) ⇒ CombinedListComparison

Returns a new instance of CombinedListComparison.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ecu/combined_list_comparison.rb', line 8

def initialize(left, right)

  # TODO: This could/should be more leaniant and convert
  # {Signal/Label}Lists on the fly to allow for comparison

  unless left.is_a?(CombinedList) && right.is_a?(CombinedList)
    fail "Can only merge CombinedList (left: #{left.class}, right: #{right.class})!"
  end

  @signal_comparison = SignalListComparison.new(left.signals, right.signals)
  @label_comparison  = LabelListComparison.new(left.labels, right.labels)
end

Instance Method Details

#differencesObject



33
34
35
# File 'lib/ecu/combined_list_comparison.rb', line 33

def differences
  signal_comparison.differences + label_comparison.differences
end

#left_exclusiveObject



25
26
27
# File 'lib/ecu/combined_list_comparison.rb', line 25

def left_exclusive
  signal_comparison.left_exclusive + label_comparison.left_exclusive
end

#merge(priority: :right) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/ecu/combined_list_comparison.rb', line 37

def merge(priority: :right)
  CombinedList.new \
    signal_comparison.merge(priority: priority),
    label_comparison.merge(priority: priority),
    signal_comparison.headers,         # Both should merge headers the same
    signal_comparison.subheaders       # way, so it doesn't matter
end

#names(spec) ⇒ Object



21
22
23
# File 'lib/ecu/combined_list_comparison.rb', line 21

def names(spec)
  signal_comparison.names(spec) + label_comparison.names(spec)
end

#right_exclusiveObject



29
30
31
# File 'lib/ecu/combined_list_comparison.rb', line 29

def right_exclusive
  signal_comparison.right_exclusive + label_comparison.right_exclusive
end