Class: HashDeepDiff::Factories::Comparison

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hash_deep_diff/factories/comparison.rb

Overview

Factory for Comparison

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reporting_engine:) ⇒ Comparison (private)

Returns a new instance of Comparison.



32
33
34
# File 'lib/hash_deep_diff/factories/comparison.rb', line 32

def initialize(reporting_engine:)
  @reporting_engine = reporting_engine
end

Instance Attribute Details

#deltaObject (readonly, private)

Returns the value of attribute delta.



30
31
32
# File 'lib/hash_deep_diff/factories/comparison.rb', line 30

def delta
  @delta
end

#reporting_engineObject (readonly, private)

Returns the value of attribute reporting_engine.



30
31
32
# File 'lib/hash_deep_diff/factories/comparison.rb', line 30

def reporting_engine
  @reporting_engine
end

Instance Method Details

#compare_leftObject (private)

compare Hash with nothing (deletion)



44
45
46
47
48
# File 'lib/hash_deep_diff/factories/comparison.rb', line 44

def compare_left
  HashDeepDiff::Comparison.new(left, NO_VALUE, change_key,
                               delta_engine: delta.class,
                               reporting_engine: reporting_engine)
end

#compare_rightObject (private)

compare nothing with Hash (addition)



51
52
53
54
55
# File 'lib/hash_deep_diff/factories/comparison.rb', line 51

def compare_right
  HashDeepDiff::Comparison.new(NO_VALUE, right, change_key,
                               delta_engine: delta.class,
                               reporting_engine: reporting_engine)
end

#comparison(delta:, modifier: nil) ⇒ Comparison

factory function

Returns:



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/hash_deep_diff/factories/comparison.rb', line 15

def comparison(delta:, modifier: nil)
  @delta = delta

  case modifier
  when nil
    full_compare
  when :left
    compare_left
  when :right
    compare_right
  end
end

#full_compareObject (private)

compare two hashes



37
38
39
40
41
# File 'lib/hash_deep_diff/factories/comparison.rb', line 37

def full_compare
  HashDeepDiff::Comparison.new(left, right, change_key,
                               delta_engine: delta.class,
                               reporting_engine: reporting_engine)
end