Мне нужно было получить доступ к чипу через SPI из Rails 4, поэтому я написал класс C ++, который я обернул с помощью рисового камня. Чтобы все заработало, я поместил файлы .cpp и .h в каталог lib / classname, поместил туда файл extconf.rb, скомпилировал его и протестировал с помощью консоли rails. Все отлично работает Но я стараюсь структурировать его так, чтобы он хорошо работал с capistrano и bundler. Мой первый вопрос: где исходные файлы C ++, extconf.rb и полученный .so файл должны находиться в дереве Rails? Rails находит .so в lib, запрашивая classname / classname, но это оптимально? Во-вторых, как будет происходить компиляция, когда проект развернут Capistrano? Бандлер делает это автоматически по мере необходимости?
Других решений пока нет …