A Ruby FFI interface to the Hunspell spelling checker.
“Hunspell is the spell checker of OpenOffice.org and Mozilla Firefox 3 & Thunderbird, Google Chrome, and it is also used by proprietary softwares, like Mac OS X, memoQ, Opera and SDL Trados.”
- http://hunspell.sourceforge.net/
It should work wherever Ruby FFI works (tested on Ruby 1.9.2, 1.8.7, JRuby 1.5.1).
This should be a drop-in replacement for rhunspell (github.com/tiendung/rhunspell), but using ffi.
On Mac OS X: Hunspell (libhunspell) is already installed on OSX 10.6.
On Debian:
apt-get install hunspell
gem install hunspell-ffi
require 'hunspell-ffi' # Detect language from ENV: dict = Hunspell.new("/path/to/dictionaries") # Directly specify language: dict = Hunspell.new("/path/to/dictionaries", "en_US") # directly specify dictionaries (legacy) dict = Hunspell.new("path/to/cakes.aff", "path/to/cakes.dic") dict.spell("walked") # => true same as #check, #check? dict.spell("woked") # => false dict.check?("woked") # => false dict.suggest("woked") # => ["woke", "worked", "waked", "woken", ...] dict.suggest("qwss43easd") # => [] # Modify the run-time dictionary: dict.add("Geburtstagskuchen") dict.remove("Fichte")
Andreas Haller and contributors. Full list of contributors: github.com/ahx/hunspell-ffi/contributors
Hereby placed under public domain, do what you want, just do not hold me accountable.
I hear Hunspell has some superpowers like stemming and some that i never even heard of. Maybe you want to help out to bring something of that power into the ruby world. Anyways, feel free to fork and send pull requests. kthxbye. Andreas.
The source is on GitHub: github.com/ahx/hunspell-ffi
Figure out how to use and add hunspell analyzing methods (analyze, stem …)
Test on Windows