Permalink
Browse files

add English spellcheck goodie with suggestions

  • Loading branch information...
1 parent bb8a18e commit 830c78005a02e646e266adb67fbaf697c8acdcf8 @crazedpsyc crazedpsyc committed Jun 16, 2012
Showing with 21 additions and 0 deletions.
  1. +1 −0 dist.ini
  2. +20 −0 lib/DDG/Goodie/Spell.pm
View
@@ -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;

0 comments on commit 830c780

Please sign in to comment.