Я записал простой пользовательский фильтр в HAML, но я не могу заставить свое приложение для направляющих находить его.
Фильтр похож на это:
# lib/haml/filters/gfmarkdown.rb
module Haml::Filters::Gfmarkdown
include Haml::Filters::Base
# copied from Haml::Filters::Markdown
lazy_require 'rdiscount', 'peg_markdown', 'maruku', 'bluecloth'
def render(text)
# copied from Haml::Filters::Markdown
engine = case @required
when 'rdiscount'
::RDiscount
when 'peg_markdown'
::PEGMarkdown
when 'maruku'
::Maruku
when 'bluecloth'
::BlueCloth
end
engine.new(gfm text).to_html # gfm method defined elsewhere
end
end
В моих представлениях я пытаюсь использовать этот фильтр как так:
:gfmarkdown
#{comment.body}
Но я получаю это сообщение об ошибке: Filter "gfmarkdown" is not defined.
Какие-либо идеи, как я могу заставить свое приложение для направляющих брать мой фильтр?
Версии: направляющие 2.3.4, Haml 2.2.15.
Я нашел решение: добавить инициализатор, который требует фильтра.
# config/initializers/gfmarkdown.rb
require 'haml/filters/gfmarkdown'
Я думал, что модули в lib /
требуются автоматически, если иерархия модулей соответствует пути к файлу. Ну ладно;)