У меня проблема с созданием плагина Rails, назовем его Mplug. Этот плагин в значительной степени является только задачей rake, но с библиотекой, которую использует задача rake.
Проблема в том, чтобы требовать файлы. Допустим, это грабли:
namespace :mplug do
task :create do
Mplug::Indexer.new
end
end
Это не будет распознавать постоянный Mplug. Поэтому я подумал, что мне нужно это сделать.
require 'mplug'
namespace :mplug do
task :create do
Mplug::Indexer.new
end
end
Но тогда я получаю это сообщение.
no such file to load -- mplug
Итак, хорошо. Давайте попробуем указать путь к плагину.
require 'vendor/plugins/mplug/lib/mplug'
namespace :mplug do
task :create do
Mplug::Indexer.new
end
end
Это на самом деле работает. Однако, за исключением того, что я предполагаю, что это плохой способ сделать это, мне теперь нужно требовать файлы в моем плагине, как будто я был в корне rails. Например:
module Mplug
end
require 'mplug/indexer'
Теперь должно быть:
module Mplug
end
require 'vendor/plugins/mplug/lib/mplug/indexer'
Что я, конечно, не хочу делать.
Есть какой-нибудь изящный способ решить эту проблему?
Спасибо!