Sha256: 425001934450965fc30e06690962dfd8f97918778811a500d3703eb136fe2329
Contents?: true
Size: 1.25 KB
Versions: 11
Compression:
Stored size: 1.25 KB
Contents
#! /usr/env/bin ruby #-- # Copyright 2004 Austin Ziegler <diff-lcs@halostatue.ca> # adapted from: # Algorithm::Diff (Perl) by Ned Konz <perl@bike-nomad.com> # Smalltalk by Mario I. Wolczko <mario@wolczko.com> # implements McIlroy-Hunt diff algorithm # # This program is free software. It may be redistributed and/or modified under # the terms of the GPL version 2 (or later), the Perl Artistic licence, or the # Ruby licence. # # $Id: block.rb,v 1.2 2004/12/15 22:07:19 tamc Exp $ #++ # Contains Diff::LCS::Block for bin/ldiff. # 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. class Diff::LCS::Block attr_reader :changes, :insert, :remove def initialize(chunk) @changes = [] @insert = [] @remove = [] chunk.each do |item| @changes << item @remove << item if item.deleting? @insert << item if item.adding? end end def diff_size @insert.size - @remove.size end def op case [@remove.empty?, @insert.empty?] when [false, false] '!' when [false, true] '-' when [true, false] '+' else # [true, true] '^' end end end
Version data entries
11 entries across 11 versions & 2 rubygems