add English spellcheck goodie with suggestions
parent
bb8a18eebc
commit
830c78005a
1
dist.ini
1
dist.ini
|
@ -30,6 +30,7 @@ Convert::Color::Library = 0.03
|
||||||
Math::Round = 0.06
|
Math::Round = 0.06
|
||||||
Convert::Morse = 0.05
|
Convert::Morse = 0.05
|
||||||
Net::IDN::Encode = 2.003
|
Net::IDN::Encode = 2.003
|
||||||
|
Text::Aspell = 0.09
|
||||||
|
|
||||||
[Prereqs / TestRequires]
|
[Prereqs / TestRequires]
|
||||||
Test::More = 0.98
|
Test::More = 0.98
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package DDG::Goodie::Spell;
|
||||||
|
|
||||||
|
use DDG::Goodie;
|
||||||
|
use Text::Aspell;
|
||||||
|
|
||||||
|
triggers start => "spell", "how to spell", "how do i spell", "spellcheck";
|
||||||
|
|
||||||
|
my $speller = Text::Aspell->new;
|
||||||
|
$speller->set_option('lang','en_US');
|
||||||
|
$speller->set_option('sug-mode','fast');
|
||||||
|
|
||||||
|
handle remainder => sub {
|
||||||
|
return unless /^[\w']+$/; # only accept letters and ' (aspell handles contractions)
|
||||||
|
my $correct = $speller->check($_) ? "'\u$_' appears to be spelled right!" : "'\u$_' does not appear to be spelled correctly.";
|
||||||
|
my @suggestions = $speller->suggest($_);
|
||||||
|
my $sug = @suggestions ? "Suggestions: " . join(', ', @suggestions[0..5]) : "No suggestions.";
|
||||||
|
return "$correct $sug", html => "$correct<br/>$sug";
|
||||||
|
};
|
||||||
|
|
||||||
|
1;
|
Loading…
Reference in New Issue