Я использую Rails 3.1 и пытаюсь обработать файл с двумя обработчиками шаблонов.
Итак, я зарегистрировал новый обработчик шаблонов для файлов .scss. Теперь хочу обработать файлы, подобные этому:
Приложение / просмотров / custom_css / stylesheet.css.scss.erb
Через 2 обработчика шаблонов. Сначала ERB и после этого SCSS. Таким образом, мы можем иметь динамические файлы scss.
Я попробовал этот обработчик шаблона:
class ActionView::Template::Handlers::Sass
def initialize options = {}
@options = options
end
def erb_handler
@erb_handler ||= ActionView::Template.registered_template_handler(:erb)
end
def call template
source = erb_handler.call(template)
<<CODE
compiler = Compass::Compiler.new *Compass.configuration.to_compiler_arguments
options = compiler.options.merge(#{@options.inspect})
Sass::Engine.new(source, options).render
CODE
end
end
Однако, в этом случае source равно этому:
"@output_buffer = output_buffer || ActionView::OutputBuffer.new;@output_buffer.safe_concat('$background_color: \"#ff0000\";\n\n$test: ');@output_buffer.append= ( 'test' );@output_buffer.safe_concat(';\n\n.container {\n background-color: $background_color;\n}\n');@output_buffer.to_s"
и я не могу легко извлечь только «реальный источник».
Есть идеи, как это можно сделать?
Заранее спасибо!