Class: Himl::Handler

Inherits:
Object
  • Object
show all
Defined in:
lib/himl/handler.rb

Constant Summary collapse

ERB_HANDLER =
ActionView::Template.handler_for_extension('erb')

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(template, source = nil) ⇒ Object



7
8
9
# File 'lib/himl/handler.rb', line 7

def self.call(template, source = nil)
  new.call(template, source || template.source)
end

Instance Method Details

#call(template, source) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/himl/handler.rb', line 11

def call(template, source)
  erb = Himl::Parser.new(source).call(source).to_erb

  escape = ERB_HANDLER.respond_to?(:escape_ignore_list) ? ERB_HANDLER.escape_ignore_list.include?(template.type) : ERB_HANDLER.escape_whitelist.include?(template.type)

  ERB_HANDLER.erb_implementation.new(
    erb,
    escape: escape,
    trim: (ERB_HANDLER.erb_trim_mode == "-")
  ).src
end