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
|
||||
Convert::Morse = 0.05
|
||||
Net::IDN::Encode = 2.003
|
||||
Text::Aspell = 0.09
|
||||
|
||||
[Prereqs / TestRequires]
|
||||
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