Reverse: Converting to text template
parent
e71eb3c5d4
commit
f8d20e524b
|
@ -10,20 +10,23 @@ zci answer_type => "reverse";
|
||||||
zci is_cached => 1;
|
zci is_cached => 1;
|
||||||
|
|
||||||
handle remainder => sub {
|
handle remainder => sub {
|
||||||
my $in = $_;
|
my $in = $_;
|
||||||
|
|
||||||
return unless $in; # Guard against empty query.
|
return unless $in; # Guard against empty query.
|
||||||
#Filter out requests for DNA/RNA reverse complements, handled
|
#Filter out requests for DNA/RNA reverse complements, handled
|
||||||
# by the ReverseComplement goodie
|
# by the ReverseComplement goodie
|
||||||
return if $in =~ /^complement\s(of )?[ATCGURYKMSWBVDHN\s-]+$/i;
|
return if $in =~ /^complement\s(of )?[ATCGURYKMSWBVDHN\s-]+$/i;
|
||||||
|
|
||||||
my $out = reverse $in;
|
my $out = reverse $in;
|
||||||
|
|
||||||
return qq|Reversed "$_": | . $out,
|
return qq|Reversed "$_": | . $out, structured_answer => {
|
||||||
structured_answer => {
|
data => {
|
||||||
input => [html_enc($in)],
|
title => html_enc($out),
|
||||||
operation => 'Reverse string',
|
subtitle => "Reverse string: ".html_enc($in)
|
||||||
result => html_enc($out),
|
},
|
||||||
|
templates => {
|
||||||
|
group => 'text'
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
40
t/Reverse.t
40
t/Reverse.t
|
@ -9,34 +9,26 @@ use DDG::Test::Goodie;
|
||||||
zci answer_type => 'reverse';
|
zci answer_type => 'reverse';
|
||||||
zci is_cached => 1;
|
zci is_cached => 1;
|
||||||
|
|
||||||
|
sub build_test {
|
||||||
|
my ($input, $answer) = @_;
|
||||||
|
return test_zci(qq|Reversed "$input": $answer|, structured_answer => {
|
||||||
|
data => {
|
||||||
|
title => $answer,
|
||||||
|
subtitle => "Reverse string: $input"
|
||||||
|
},
|
||||||
|
templates => {
|
||||||
|
group => 'text'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
ddg_goodie_test(
|
ddg_goodie_test(
|
||||||
[qw( DDG::Goodie::Reverse )],
|
[qw( DDG::Goodie::Reverse )],
|
||||||
# Primary example query
|
# Primary example query
|
||||||
'reverse text esrever' => test_zci(
|
'reverse text esrever' => build_test('esrever', 'reverse'),
|
||||||
'Reversed "esrever": reverse',
|
|
||||||
structured_answer => {
|
|
||||||
input => ['esrever'],
|
|
||||||
operation => 'Reverse string',
|
|
||||||
result => 'reverse'
|
|
||||||
}
|
|
||||||
),
|
|
||||||
# Other queries
|
# Other queries
|
||||||
'reverse text bla' => test_zci(
|
'reverse text bla' => build_test('bla', 'alb'),
|
||||||
'Reversed "bla": alb',
|
'reverse text blabla' => build_test('blabla', 'albalb'),
|
||||||
structured_answer => {
|
|
||||||
input => ['bla'],
|
|
||||||
operation => 'Reverse string',
|
|
||||||
result => 'alb'
|
|
||||||
}
|
|
||||||
),
|
|
||||||
'reverse text blabla' => test_zci(
|
|
||||||
'Reversed "blabla": albalb',
|
|
||||||
structured_answer => {
|
|
||||||
input => ['blabla'],
|
|
||||||
operation => 'Reverse string',
|
|
||||||
result => 'albalb'
|
|
||||||
}
|
|
||||||
),
|
|
||||||
'reverse' => undef,
|
'reverse' => undef,
|
||||||
|
|
||||||
#Should not trigger on a request for DNA/RNA reverse complement
|
#Should not trigger on a request for DNA/RNA reverse complement
|
||||||
|
|
Loading…
Reference in New Issue