From: Tara L Andrews Date: Mon, 25 Jun 2012 20:52:24 +0000 (+0200) Subject: fix logic bug in build method; add convenience method X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=44924224fa2722b16e857d2e1c802401ed2828aa;p=scpubgit%2Fstemmatology.git fix logic bug in build method; add convenience method --- diff --git a/lib/Text/Tradition/Collation/Reading.pm b/lib/Text/Tradition/Collation/Reading.pm index 2d4322e..d6dc701 100644 --- a/lib/Text/Tradition/Collation/Reading.pm +++ b/lib/Text/Tradition/Collation/Reading.pm @@ -204,16 +204,16 @@ around BUILDARGS => sub { # If one of our special booleans is set, we change the text and the # ID to match. - if( exists $args->{'is_lacuna'} && !exists $args->{'text'} ) { + if( exists $args->{'is_lacuna'} && $args->{'is_lacuna'} && !exists $args->{'text'} ) { $args->{'text'} = '#LACUNA#'; - } elsif( exists $args->{'is_start'} ) { + } elsif( exists $args->{'is_start'} && $args->{'is_start'} ) { $args->{'id'} = '__START__'; # Change the ID to ensure we have only one $args->{'text'} = '#START#'; $args->{'rank'} = 0; - } elsif( exists $args->{'is_end'} ) { + } elsif( exists $args->{'is_end'} && $args->{'is_end'} ) { $args->{'id'} = '__END__'; # Change the ID to ensure we have only one $args->{'text'} = '#END#'; - } elsif( exists $args->{'is_ph'} ) { + } elsif( exists $args->{'is_ph'} && $args->{'is_ph'} ) { $args->{'text'} = $args->{'id'}; } @@ -416,6 +416,12 @@ sub _deserialize_lexemes { $self->add_lexeme( @lexemes ); } +sub disambiguated { + my $self = shift; + return 0 unless $self->has_lexemes; + return !grep { !$_->is_disambiguated } $self->lexemes; +} + ## Utility methods sub TO_JSON {