Reverse: Converting to text template

master
Rob Emery 2016-05-18 21:05:35 +01:00
parent e71eb3c5d4
commit f8d20e524b
2 changed files with 30 additions and 35 deletions

View File

@ -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'
}
}; };
}; };

View File

@ -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