class LCS::Block

A block is an operation removing, adding, or changing a group of items. Basically, this is just a list of changes, where each change adds or deletes a single item. Used by bin/ldiff.

Attributes

changes[R]
insert[R]
remove[R]

Public Class Methods

new(chunk) click to toggle source
# File lib/diff/lcs/block.rb, line 9
def initialize(chunk)
  @changes = []
  @insert = []
  @remove = []

  chunk.each do |item|
    @changes << item
    @remove << item if item.deleting?
    @insert << item if item.adding?
  end
end

Public Instance Methods

diff_size() click to toggle source
# File lib/diff/lcs/block.rb, line 21
def diff_size
  @insert.size - @remove.size
end
op() click to toggle source
# File lib/diff/lcs/block.rb, line 25
def op
  case [@remove.empty?, @insert.empty?]
  when [false, false]
    "!"
  when [false, true]
    "-"
  when [true, false]
    "+"
  else # [true, true]
    "^"
  end
end