converting random_name to return structured answer (#4061)
* converting random_name to return structured answer * altSubtitle typo fix * altSubtitle typo fixmaster
parent
ab9ce37808
commit
d7f897af3b
|
@ -3,7 +3,6 @@ package DDG::Goodie::RandomName;
|
|||
|
||||
use strict;
|
||||
use DDG::Goodie;
|
||||
|
||||
use Data::RandomPerson;
|
||||
|
||||
triggers start => 'random name','random person';
|
||||
|
@ -11,13 +10,23 @@ zci answer_type => "randomname";
|
|||
zci is_cached => 0;
|
||||
|
||||
handle query => sub {
|
||||
my $query = $_;
|
||||
my $person = Data::RandomPerson->new()->create();
|
||||
my $name = "$person->{firstname} $person->{lastname}";
|
||||
my %genders = (m => 'Male', f => 'Female');
|
||||
return "Name: $name\nGender: $genders{$person->{gender}}\nDate of birth: $person->{dob}\nAge: $person->{age}",
|
||||
heading => "Random Person" if /person/i;
|
||||
return "$name (random)";
|
||||
my $string_answer;
|
||||
my $structured_answer = {};
|
||||
$structured_answer->{templates}->{group} = 'icon';
|
||||
$structured_answer->{data}->{title} = $name;
|
||||
$structured_answer->{data}->{altSubtitle} = 'Randomly generated name';
|
||||
if ($query =~ /person/i) {
|
||||
my %genders = (m => 'Male', f => 'Female');
|
||||
$string_answer = "Name: $name\nGender: $genders{$person->{gender}}\nDate of birth: $person->{dob}\nAge: $person->{age}";
|
||||
$structured_answer->{data}->{subtitle} = 'Birthday: ' . $person->{dob} . ' | Age: ' . $person->{age};
|
||||
$structured_answer->{data}->{altSubtitle} = 'Randomly generated person';
|
||||
} else {
|
||||
$string_answer = "Name: $name";
|
||||
}
|
||||
return $string_answer, structured_answer => $structured_answer;
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
@ -9,15 +9,50 @@ use DDG::Test::Goodie;
|
|||
zci is_cached => 0;
|
||||
zci answer_type => "randomname";
|
||||
|
||||
sub build_name_answer {
|
||||
my @test_params = @_;
|
||||
|
||||
return re(qr/\w\w/),
|
||||
structured_answer => {
|
||||
data => {
|
||||
title => re(qr/\w\w/),
|
||||
altSubtitle => re(qr/Randomly generated name/)
|
||||
},
|
||||
|
||||
templates => {
|
||||
group => "icon",
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
sub build_person_answer {
|
||||
my @test_params = @_;
|
||||
|
||||
return re(qr/Name: [\w\s]+\nGender: (?:Male|Female)\nDate of birth: \d{4}\-\d{2}\-\d{2}\nAge: \d+/),
|
||||
structured_answer => {
|
||||
data => {
|
||||
title => re(qr/\w\w/),
|
||||
subtitle => re(qr/Birthday: \d{4}\-\d{2}\-\d{2}\+ | Age: \d/),
|
||||
altSubtitle => re(qr/Randomly generated person/)
|
||||
},
|
||||
|
||||
templates => {
|
||||
group => "icon",
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
sub build_name_test { test_zci(build_name_answer(@_)) }
|
||||
sub build_person_test { test_zci(build_person_answer(@_)) }
|
||||
|
||||
ddg_goodie_test(
|
||||
[
|
||||
'DDG::Goodie::RandomName'
|
||||
],
|
||||
'random Name' => test_zci (re(qr/\w\w \(random\)/)),
|
||||
'random name' => test_zci (re(qr/\w\w \(random\)/)),
|
||||
'random person' =>
|
||||
test_zci (re(qr/Name: [\w\s]+\nGender: (?:Male|Female)\nDate of birth: \d{4}\-\d{2}\-\d{2}\nAge: \d+/),
|
||||
heading => 'Random Person'),
|
||||
'random name' => build_name_test(),
|
||||
'random Name' => build_name_test(),
|
||||
'random person' => build_person_test(),
|
||||
'random Person' => build_person_test(),
|
||||
'random domain name' => undef,
|
||||
'random city name' => undef,
|
||||
'names of random people' => undef
|
||||
|
|
Loading…
Reference in New Issue