Наше приложение представляет собой сборник из 3-х двигателей, которые составляют наш базовый камень. Другие плагины, написанные специально для нашего базового драгоценного камня, могут быть использованы для добавления функциональности к базе.Rails 4.2: Пользовательский помощник для манифеста SCSS в двигателях
В настоящее время у нас есть 2 настраиваемых указателя звездочек и 1 пользовательский импортер Sass, который пытается динамически вытащить файлы SCSS из этих плагинов в базовый манифест. Надуманный пример выглядит примерно так:
//= depend_on_gemfile # mimics default "depend_on" functionality
//= depend_on_stylesheets # mimics default "depend_on" functionality
...
@import 'engine/namespace/settings/global';
@import 'engine/namespace/settings/colors';
@import 'engine/namespace/settings/fonts';
@import '[engine-plugins]/namespace/settings'; # mimics Sass Filesystem importer
...
Чтобы быть ясным, это работает. У нас возникают проблемы с тем, как Sass кэширует файлы, что слишком сложно для того, чтобы войти, и на самом деле не моя цель на данный момент.
Дело в том, что мы поняли, что удаление пользовательских указателей Sprockets и импортера Sass в пользу использования помощника Rails также решит нашу проблему, поскольку ERB будет скомпилирован перед SCSS, мы сможем находить и форматировать все пути, необходимые во всех включенных плагинах, в строку и выгружать ее в манифест. Что-то вроде:
@import 'engine/namespace/settings/global';
@import 'engine/namespace/settings/colors';
@import 'engine/namespace/settings/fonts';
<%= load_plugin_stylesheets_for('settings'); %>
...
Это кажется гораздо более простым решением, так как все, что мы делаем, находя каждый путь и преобразование этих путей в строки.
Проблема заключается в том, что помощники Rails полностью вне домена Sprockets.
Я нашел некоторые ресурсы, но все они, кажется, относятся к Rails 3.
Мне интересно, если кто-то имел эту проблему с помощью Rails 4, если они решили это и как. Или, если я просто думаю об этом, все неправильно, и есть лучший способ подойти к проблеме без подобного чрезмерного усложнения, как это было раньше.
TL; DR
Я хотел бы использовать регулярные Rails хелперы внутри Звездочки файла манифеста. Версия Rails - 4.2.4. У нас работают двигатели. Это возможно?
EDIT:
This comment ответил на мой вопрос.
После реализации этого решения в инициализаторе в нашем файле engine.rb
были доступны все помощники Rails ActionView, в том числе мой пользовательский помощник.
Спасибо, Майк, но я нашел другое решение, которое подойдет моему прецеденту немного лучше. Я связан с моим оригинальным сообщением. – meowsus