NAME
Text::Diff3::Text - line number scheme free text buffer
SYNOPSIS
use Text::Diff3;
my $f = Text::Diff3::Factory->new;
my $t0 = $f->create_text([ map{chomp;$_} <F0> ]); # do not dup internally.
my $t1 = $f->create_text($string); # make array references.
# follows four take same output.
print $_, "\n" for @{$t0->text};
print $t0->as_string_at($_) for $t0->range;
print $t0->as_string_range($t0->ragne);
print $t0->as_string_at($_) for $t0->first_index .. $t0->last_index;
print $t0->as_string_range($t0->first_index .. $t0->last_index);
for ($t0->first_index .. $t0->last_index) {
my $line = $t0->at($_);
print $line, "\n" if defined($line);
}
# string compare
if ($t0->eq_at($i, $string)) { .... }
# get string size
my $length = $t0->size;
ABSTRACT
This is a wrapper for a Perl's array reference, improving line number scheme free and limiting fetching from last element by minus index. Normally line number starts 1 in compatible with diff command tools. But you can change it another value like as 0 override first index methods.
DESCRIPTION
create
Author recommends you to create an instance of text by using with a factory as follows.
use SomeFactory;
my $f = SomeFactory->new;
my $t = $f->create_text( string or arrayref );
Text::Diff3::Factory is a class to packaging several classes for the build-in diff processor.
When pass a string, it is split by /\n/ before store the line buffers. When pass an array reference, it simply assigned text properties without duplication. In the later case, the side effects will happen if you use same reference at another place.
text
This is a property of the line buffer. It is an array reference.
list
This is same as the text property, which is an interface property for ListMixin.
first_index
This is first-index accessible by the `at' method.
last_index
This is last-index accessible by the `at' method.
range
This returns a range between fist-index and last-index.
at
This returns a line specified by a line number. If line number is out of range, it returns undef.
as_string_at
This is short cut for line accessing through `at'. If line number is out of range, it returns '', in otherwise returns line."\n".
eq_at
This is short cut for comparison line and other string.
AUTHOR
MIZUTANI Tociyuki <tociyuki@gmail.com>
.
COPYRIGHT AND LICENSE
Copyright (C) 2009 MIZUTANI Tociyuki
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.