Class: Mjml::Handler
- Inherits:
-
Object
- Object
- Mjml::Handler
- Defined in:
- lib/mjml.rb
Instance Method Summary collapse
-
#call(template, source = nil) ⇒ Object
Optional second source parameter to make it work with Rails >= 6: Beginning with Rails 6 template handlers get the source of the template as the second parameter.
- #template_handler ⇒ Object
Instance Method Details
#call(template, source = nil) ⇒ Object
Optional second source parameter to make it work with Rails >= 6: Beginning with Rails 6 template handlers get the source of the template as the second parameter.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/mjml.rb', line 110 def call(template, source = nil) compiled_source = if Rails::VERSION::MAJOR >= 6 template_handler.call(template, source) else template_handler.call(template) end # Per MJML v4 syntax documentation[0] valid/render'able document MUST start with <mjml> root tag # If we get here and template source doesn't start with one it means # that we are rendering partial named according to legacy naming convention (partials ending with '.mjml') # Therefore we skip MJML processing and return raw compiled source. It will be processed # by MJML library when top-level layout/template is rendered # # [0] - https://github.com/mjmlio/mjml/blob/master/doc/guide.md#mjml if compiled_source =~ /<mjml(.+)?>/i "Mjml::Mjmltemplate.to_html(begin;#{compiled_source};end).html_safe" else compiled_source end end |
#template_handler ⇒ Object
103 104 105 |
# File 'lib/mjml.rb', line 103 def template_handler @_template_handler ||= ActionView::Template.registered_template_handler(Mjml.template_language) end |