В моем приложении rails я использую Kramdown для разбора Markdown. Я хочу расширить функциональность метода convert_a
в конвертере HTML. Частично это включает доступ к базе данных, но это зависит от параметра в URL. Поскольку я не вызываю метод, который переопределяю напрямую, я не могу просто передать метод params
га sh. Есть ли способ получить доступ к этому ha sh, или даже просто получить текущий URL в модуле в каталоге lib
?
, чтобы дать немного больше контекста, вызов метода находится во вспомогательном методе здесь:
# in app/helpers/myhelper.rb
def to_html(text)
Kramdown::Document.new(text, parse_block_html: true).to_custom_html
end
и вот файл, в котором я переопределяю convert_a
:
# in lib/custom_html.rb
class CustomHtml < Kramdown::Converter::Html
def convert_a(el, indent)
# use params[:foo] to make query
format_as_span_html(el.type, el.attr, inner(el, indent))
end
end
Редактировать:
Чтобы дать немного больше информации о том, где переопределенный метод вызывается. Я не очень хорошо знаком с кодовой базой Kramdown, однако кажется, что когда вызывается to_custom_html
, следующий бит кода запускается внутри Kramdown.rb
:
output, warnings = Converter.const_get(name).convert(@root, @options)
, который впоследствии вызывает convert_#{el.type}
на внутренние элементы kramdown.