Class: HashDeepDiff::Factories::Comparison
- Inherits:
-
Object
- Object
- HashDeepDiff::Factories::Comparison
- Extended by:
- Forwardable
- Defined in:
- lib/hash_deep_diff/factories/comparison.rb
Overview
Factory for Comparison
Instance Attribute Summary collapse
-
#delta ⇒ Object
readonly
private
Returns the value of attribute delta.
-
#reporting_engine ⇒ Object
readonly
private
Returns the value of attribute reporting_engine.
Instance Method Summary collapse
-
#compare_left ⇒ Object
private
compare Hash with nothing (deletion).
-
#compare_right ⇒ Object
private
compare nothing with Hash (addition).
-
#comparison(delta:, modifier: nil) ⇒ Comparison
factory function.
-
#full_compare ⇒ Object
private
compare two hashes.
-
#initialize(reporting_engine:) ⇒ Comparison
constructor
private
A new instance of Comparison.
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
#delta ⇒ Object (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_engine ⇒ Object (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_left ⇒ Object (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_right ⇒ Object (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
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_compare ⇒ Object (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 |