sub BUILD {
my( $self, $init_args ) = @_;
- print STDERR "Calling tradition build\n";
if( exists $init_args->{'witnesses'} ) {
# We got passed an uncollated list of witnesses. Make a
if( $format ) {
my @parseargs;
if( $format =~ /^(CSV|CTE)$/ ) {
- @parseargs = ( 'base' => $init_args->{'base'},
- 'data' => $init_args->{$format},
- 'format' => $format );
+ $init_args->{'data'} = $init_args->{$format};
+ $init_args->{'format'} = $format;
$format = 'BaseText';
+ @parseargs = %$init_args;
} else {
@parseargs = ( $init_args->{ $format } );
}
}
}
+sub witness {
+ my( $self, $sigil ) = @_;
+ my $requested_wit;
+ foreach my $wit ( @{$self->witnesses} ) {
+ $requested_wit = $wit if $wit->sigil eq $sigil;
+ }
+ # We depend on an undef return value for no such witness.
+ # warn "No such witness $sigil" unless $requested_wit;
+ return $requested_wit;
+}
+
+
sub add_witness {
my $self = shift;
my $new_wit = Text::Tradition::Witness->new( @_ );
push( @{$self->witnesses}, $new_wit );
+ return $new_wit;
}
# The user will usually be instantiating a Tradition object, and