class

Similar::Algorithms::Capture

Inherits Similar::Algorithms::DiffHook < Reference < Object

A DiffHook that captures all diff operations.

Constructors

Creates a new capture hook from an existing array.

Source
new

Creates a new capture hook.

Source

Instance methods

delete(old_index : Int32, old_len : Int32, new_index : Int32) : Nil

Called when a section of length old_len, starting at old_index, needs to be deleted from the old version.

Source
equal(old_index : Int32, new_index : Int32, len : Int32) : Nil

Called when lines with indices old_index (in the old version) and new_index (in the new version) start an section equal in both versions, of length len.

Source
grouped_ops(n : Int32) : Array(Array(Similar::DiffOp))

Isolate change clusters by eliminating ranges with no changes.

This is equivalent to calling Similar.group_diff_ops on Capture.ops.

Source
insert(old_index : Int32, new_index : Int32, new_len : Int32) : Nil

Called when a section of the new version, of length new_len and starting at new_index, needs to be inserted at position old_index.

Source
ops

Converts the capture hook into a vector of ops.

Source
ops_ref

Accesses the captured operations.

Source
replace(old_index : Int32, old_len : Int32, new_index : Int32, new_len : Int32) : Nil

Called when a section of the old version, starting at index old_index and of length old_len, needs to be replaced with a section of length new_len, starting at new_index, of the new version.

The default implementations invokes delete and insert.

You can use the Replace hook to automatically generate these.

Source