Class: Dyph::TwoWayDiffers::HeckelDiffWrapper
- Inherits:
-
Object
- Object
- Dyph::TwoWayDiffers::HeckelDiffWrapper
- Defined in:
- lib/dyph/two_way_differs/heckel_diff.rb
Defined Under Namespace
Classes: IndexTracker
Instance Method Summary collapse
- #convert_to_typed_ouput ⇒ Object
-
#initialize(old_text_array, new_text_array, heckel_diff) ⇒ HeckelDiffWrapper
constructor
A new instance of HeckelDiffWrapper.
Constructor Details
#initialize(old_text_array, new_text_array, heckel_diff) ⇒ HeckelDiffWrapper
Returns a new instance of HeckelDiffWrapper.
126 127 128 129 130 131 132 |
# File 'lib/dyph/two_way_differs/heckel_diff.rb', line 126 def initialize(old_text_array, new_text_array, heckel_diff) @chunks = heckel_diff.map { |block| TwoWayChunk.new(block) } @old_text_array = old_text_array @new_text_array = new_text_array @old_text = [] @new_text = [] end |
Instance Method Details
#convert_to_typed_ouput ⇒ Object
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/dyph/two_way_differs/heckel_diff.rb', line 135 def convert_to_typed_ouput() final_indexes = @chunks.reduce(IndexTracker.new(0,0)) do |index_tracker, chunk| old_iteration, new_iteration = set_text_node_indexes(chunk, index_tracker.old_index, index_tracker.new_index) old_index, new_index = append_changes(chunk, index_tracker.old_index + old_iteration, index_tracker.new_index + new_iteration) IndexTracker.new(old_index, new_index) end set_the_remaining_text_node_indexes(final_indexes.old_index, final_indexes.new_index) { old_text: @old_text, new_text: @new_text} end |