working with new base text merge routine, up to line 25
[scpubgit/stemmatology.git] / lib / Text / Tradition.pm
index 36c74ee..c2deeae 100644 (file)
@@ -24,7 +24,6 @@ has 'witnesses' => (
 
 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
@@ -73,10 +72,10 @@ sub BUILD {
        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 } ); 
            }
@@ -87,10 +86,23 @@ sub BUILD {
     }
 }
 
+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