У меня есть система на основе плагинов, которую я использую для разработки приложений в Rails.Каждый плагин реализует движок с компонентами MVC и т. Д. Основное приложение - это просто пустой жгут, который делегирует всю работу установленным плагинам.
В настоящее время я обновляюсь до Rails 3.1 с Rails 2.3.5и пытаюсь заставить конвейер ресурсов работать с моей платформой.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы программно запрашивать активы моего плагина, например, в манифесте application.js.
Я могу вручную добавить их так:
//= require <plugin_manifest_path>
И все работает как положено.Тем не менее, поскольку в моей среде присутствуют десятки плагинов, и каждая установка имеет свое сочетание, я хочу, чтобы это явное изменение зависело от того, какие плагины установлены.Я попробовал это как решение:
<%=
Rails.plugins.collect do |plugin|
"//= require #{plugin}"
end.join("\n")
%>
Но я обнаружил, что фаза требования / директивы компиляции конвейера ресурсов происходит до расширения ERB, поэтому сгенерированные комментарии просто заканчиваются как комментарии.
Есть ли другой механизм для включения путей для компиляции, который мог бы работать?Любой способ предварительно обработать файл манифеста до , когда начинается обработка директивы?
Если я не могу придумать ничего лучшего, мне, возможно, придется написать задачу грабли / развертывания, которая генерируетфайл манифеста plugin.js при развертывании, но я бы хотел что-то более понятное и элегантное, если это возможно.Спасибо!
РЕДАКТИРОВАТЬ : Решение найдено, опубликует полное решение, как только stackoverflow позволит мне.См комментарии ниже в то же время ...