Class: SuperDiff::OperationalSequencers::Array::LcsCallbacks
- Inherits:
-
Object
- Object
- SuperDiff::OperationalSequencers::Array::LcsCallbacks
- Defined in:
- lib/super_diff/operational_sequencers/array.rb
Instance Method Summary collapse
- #change(event) ⇒ Object
- #discard_a(event) ⇒ Object
- #discard_b(event) ⇒ Object
- #match(event) ⇒ Object
Instance Method Details
#change(event) ⇒ Object
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/super_diff/operational_sequencers/array.rb', line 78 def change(event) child_operations = sequence.call(event.old_element, event.new_element) if child_operations add_change_operation(event, child_operations) else add_delete_operation(event) add_insert_operation(event) end end |
#discard_a(event) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/super_diff/operational_sequencers/array.rb', line 56 def discard_a(event) operations << ::SuperDiff::Operations::UnaryOperation.new( name: :delete, collection: expected, key: event.old_position, value: event.old_element, index: event.old_position, index_in_collection: expected.index(event.old_element), ) end |
#discard_b(event) ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/super_diff/operational_sequencers/array.rb', line 67 def discard_b(event) operations << ::SuperDiff::Operations::UnaryOperation.new( name: :insert, collection: actual, key: event.new_position, value: event.new_element, index: event.new_position, index_in_collection: actual.index(event.new_element), ) end |
#match(event) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/super_diff/operational_sequencers/array.rb', line 45 def match(event) operations << ::SuperDiff::Operations::UnaryOperation.new( name: :noop, collection: actual, key: event.new_position, value: event.new_element, index: event.new_position, index_in_collection: actual.index(event.new_element), ) end |