205 |
|
|
206 |
sub attr_names { |
sub attr_names { |
207 |
my $self = shift; |
my $self = shift; |
208 |
croak "attr_names return array, not scalar" if (! wantarray); |
return unless ($self->{attrs}); |
209 |
|
#croak "attr_names return array, not scalar" if (! wantarray); |
210 |
return sort keys %{ $self->{attrs} }; |
return sort keys %{ $self->{attrs} }; |
211 |
} |
} |
212 |
|
|
222 |
sub attr { |
sub attr { |
223 |
my $self = shift; |
my $self = shift; |
224 |
my $name = shift; |
my $name = shift; |
225 |
|
return unless (defined($name) && $self->{attrs}); |
226 |
return $self->{'attrs'}->{ $name }; |
return $self->{attrs}->{ $name }; |
227 |
} |
} |
228 |
|
|
229 |
|
|
237 |
|
|
238 |
sub texts { |
sub texts { |
239 |
my $self = shift; |
my $self = shift; |
240 |
confess "texts return array, not scalar" if (! wantarray); |
#confess "texts return array, not scalar" if (! wantarray); |
241 |
return @{ $self->{dtexts} }; |
return @{ $self->{dtexts} } if ($self->{dtexts}); |
242 |
} |
} |
243 |
|
|
244 |
|
|
252 |
|
|
253 |
sub cat_texts { |
sub cat_texts { |
254 |
my $self = shift; |
my $self = shift; |
255 |
return join(' ',@{ $self->{dtexts} }); |
return join(' ',@{ $self->{dtexts} }) if ($self->{dtexts}); |
256 |
} |
} |
257 |
|
|
258 |
|
|
461 |
sub attrs { |
sub attrs { |
462 |
my $self = shift; |
my $self = shift; |
463 |
#croak "attrs return array, not scalar" if (! wantarray); |
#croak "attrs return array, not scalar" if (! wantarray); |
464 |
return @{ $self->{attrs} }; |
return @{ $self->{attrs} } if ($self->{attrs}); |
465 |
} |
} |
466 |
|
|
467 |
|
|
525 |
my $self = {@_}; |
my $self = {@_}; |
526 |
bless($self, $class); |
bless($self, $class); |
527 |
|
|
528 |
foreach my $f (qw/uri attrs snippet keywords/) { |
croak "missing uri for ResultDocument" unless defined($self->{uri}); |
|
croak "missing $f for ResultDocument" unless defined($self->{$f}); |
|
|
} |
|
529 |
|
|
530 |
$self ? return $self : return undef; |
$self ? return $self : return undef; |
531 |
} |
} |
1175 |
|
|
1176 |
my $rv = $self->shuttle_url( $self->{url} . '/search', |
my $rv = $self->shuttle_url( $self->{url} . '/search', |
1177 |
'application/x-www-form-urlencoded', |
'application/x-www-form-urlencoded', |
1178 |
$self->cond_to_query( $cond ), |
$self->cond_to_query( $cond, $depth ), |
1179 |
\$resbody, |
\$resbody, |
1180 |
); |
); |
1181 |
return if ($rv != 200); |
return if ($rv != 200); |
1269 |
|
|
1270 |
Return URI encoded string generated from Search::Estraier::Condition |
Return URI encoded string generated from Search::Estraier::Condition |
1271 |
|
|
1272 |
my $args = $node->cond_to_query( $cond ); |
my $args = $node->cond_to_query( $cond, $depth ); |
1273 |
|
|
1274 |
=cut |
=cut |
1275 |
|
|
1278 |
|
|
1279 |
my $cond = shift || return; |
my $cond = shift || return; |
1280 |
croak "condition must be Search::Estraier::Condition, not '$cond->isa'" unless ($cond->isa('Search::Estraier::Condition')); |
croak "condition must be Search::Estraier::Condition, not '$cond->isa'" unless ($cond->isa('Search::Estraier::Condition')); |
1281 |
|
my $depth = shift; |
1282 |
|
|
1283 |
my @args; |
my @args; |
1284 |
|
|
1288 |
|
|
1289 |
if (my @attrs = $cond->attrs) { |
if (my @attrs = $cond->attrs) { |
1290 |
for my $i ( 0 .. $#attrs ) { |
for my $i ( 0 .. $#attrs ) { |
1291 |
push @args,'attr' . ($i+1) . '=' . uri_escape( $attrs[$i] ); |
push @args,'attr' . ($i+1) . '=' . uri_escape( $attrs[$i] ) if ($attrs[$i]); |
1292 |
} |
} |
1293 |
} |
} |
1294 |
|
|
1306 |
push @args, 'options=' . $options; |
push @args, 'options=' . $options; |
1307 |
} |
} |
1308 |
|
|
1309 |
push @args, 'depth=' . $self->{depth} if ($self->{depth}); |
push @args, 'depth=' . $depth if ($depth); |
1310 |
push @args, 'wwidth=' . $self->{wwidth}; |
push @args, 'wwidth=' . $self->{wwidth}; |
1311 |
push @args, 'hwidth=' . $self->{hwidth}; |
push @args, 'hwidth=' . $self->{hwidth}; |
1312 |
push @args, 'awidth=' . $self->{awidth}; |
push @args, 'awidth=' . $self->{awidth}; |