Вам необходимо собрать необходимую библиотеку Hunspell и напрямую включить ее в проект Heroku.
Heroku работает на 64-битной Ubuntu, поэтому двоичный файл должен быть скомпилирован в этой системе. Лучший подход - просто использовать сервер сборки Heroku Vulcan для компиляции на экземпляре Heroku.
Компиляция для Heroku
gem install vulcan
vulcan create vulcan-compile-me
последний аргумент - ваше собственное имя приложения.
- Загрузить исходный текст Hunspell
- Extract
vulcan build -v -s ./hunspell-1.3.2
Сообщает Vulcan о его создании и автоматически загружает готовый продукт в /tmp/hunspell..
Сервер сборки требует надстройки cloudant, она устанавливается автоматически, но вы должны убедиться, что у вас есть подтвержденная учетная запись Heroku (добавлена кредитная карта). Если вы получили ошибки на шестом шаге без вывода сборки , тогда выполните heroku addons:add cloudant --app vulcan-compile-me
Добавление в ваш проект
- Извлеките tar-сборку Heroku Vulcan из / tmp
- Скопируйте всю папку lib в vendor / hunspell в корневом каталоге вашего проекта
- Скажите Heroku, где искать библиотеки:
heroku config:add LD_LIBRARY_PATH=vendor/hunspell/lib
.
Установить словари
Загрузите несколько словарей из Open Office и добавьте их в свой проект. Хорошее расположение - папка с именем словарей на корневом уровне. На этот путь ссылаются при инициализации Hunspell в Ruby.
http://extensions.services.openoffice.org/dictionary
FTP: //sunsite.informatik.rwth-aachen.de/pub/mirror/OpenOffice/contrib/
Использование
Установите ваш любимый камень Hunspell, я использую hunspell-ffi . Для Hunspell есть более новый камень , но я предпочитаю предыдущий камень FFI. Чтобы использовать инициализацию объекта Hunspell с указанием пути к папке словаря и языка (язык соответствует имени файла словаря).
dict = Hunspell.new("dictionaries", "en_US")
if dict.check('caribean') == false
suggestions = dict.suggest('caribean')
if (suggestions.size)
correction = suggestions.first # returns 'caribbean'
end
end
Вендинг для более сложных проектов
Вы также можете добавить библиотеку в свой проект, поместив tar, созданный сервером Vulcan, на первом этапе, в общедоступный сервер, такой как Google Storage, а затем изменив пакет сборки Heroku, чтобы загружать tar при каждом запуске экземпляра.
heroku config:set BUILDPACK_URL=https://github.com/peterkeen/heroku-buildpack-vendorbinaries.git
- Пакет сборки поставщика ищет файл .vendor_urls на корневом уровне с HTTP-связями для установки tar-шариков (необходимо завершить работу новой строкой).
http://commondatastorage.googleapis.com/developer.you.com/hunspell-heroku-1.3.tgz
- Vendoring распаковывает tar в корневую папку, поэтому путь к lib для настроек Heroku будет просто «lib».
heroku config:add LD_LIBRARY_PATH=lib