Class: HashDeepDiff::Reports::Diff
- Defined in:
- lib/hash_deep_diff/reports/diff.rb
Overview
Visual representation of the Delta as diff
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#addition ⇒ String
private
visual indication of addition.
-
#array_addition(delta) ⇒ Array
private
added elemnts of array.
-
#array_deletion(delta) ⇒ Array
private
added elemnts of array.
-
#array_to_array?(delta) ⇒ Boolean
private
returns true if original value and replacement are instances of
Array
TOFIX drop. -
#deletion ⇒ String
private
visual indication of deletion.
-
#original(delta) ⇒ String
private
line of the report with deleted value.
-
#raw_report ⇒ Array<HashDeepDiff::Delta>
additiond and deletions raw.
-
#replacement(delta) ⇒ String
private
line of the report with added value.
-
#report ⇒ String
additiond and deletions represented as diff.
Methods inherited from Base
Constructor Details
This class inherits a constructor from HashDeepDiff::Reports::Base
Instance Method Details
#addition ⇒ String (private)
visual indication of addition
65 66 67 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 65 def addition '+left' end |
#array_addition(delta) ⇒ Array (private)
added elemnts of array
53 54 55 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 53 def array_addition(delta) delta.right - delta.left end |
#array_deletion(delta) ⇒ Array (private)
added elemnts of array
59 60 61 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 59 def array_deletion(delta) delta.left - delta.right end |
#array_to_array?(delta) ⇒ Boolean (private)
returns true if original value and replacement are instances of Array
TOFIX drop
47 48 49 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 47 def array_to_array?(delta) delta.left.instance_of?(Array) && delta.right.instance_of?(Array) end |
#deletion ⇒ String (private)
visual indication of deletion
71 72 73 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 71 def deletion '-left' end |
#original(delta) ⇒ String (private)
line of the report with deleted value
26 27 28 29 30 31 32 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 26 def original(delta) return '' if delta.left == NO_VALUE return "#{deletion}#{delta.change_key} = #{delta.left}\n" unless array_to_array?(delta) return '' if array_deletion(delta).empty? "#{deletion}#{delta.change_key} = #{array_deletion(delta)}\n" end |
#raw_report ⇒ Array<HashDeepDiff::Delta>
additiond and deletions raw
18 19 20 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 18 def raw_report diff end |
#replacement(delta) ⇒ String (private)
line of the report with added value
36 37 38 39 40 41 42 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 36 def replacement(delta) return '' if delta.right == NO_VALUE return "#{addition}#{delta.change_key} = #{delta.right}\n" unless array_to_array?(delta) return '' if array_addition(delta).empty? "#{addition}#{delta.change_key} = #{array_addition(delta)}\n" end |
#report ⇒ String
additiond and deletions represented as diff
12 13 14 |
# File 'lib/hash_deep_diff/reports/diff.rb', line 12 def report raw_report.map { |delta| original(delta) + replacement(delta) }.join end |