package ExaLead::TextSeg;
use strict;
sub new {
### c
my( $class ) = @_;
my $self = {
'parts' => []
};
bless $self, $class;
return $self;
}
sub addPart {
### a
### each element of the array is a pait - the first value is the text and the second
### value is a flag either 1 - highlighted, 0 - unhighlighted
push @{$_[0]{'parts'}}, [$_[1],$_[2]]; }
sub getParts {
### a
return $_[0]{'parts'};
}
sub getString {
### Returns a plain (un-highlighted) version of the string for the renderer
### (exhibits same intreface as {{exalead::Value}})
return join '', map { $_->[0] } @{$_[0]{'parts'}};
}
sub getHighlighted {
### Returns a string with query terms tagged with with a highlighted span
### (exhibits same intreface as {{Exalead::Value}})
return join '', map { $_->[1]==1 ? qq(<span class="hi">$_->[0]</span>) : $_->[0] } @{$_[0]{'parts'}};
}
1;