class Rake::Funnel::Support::TemplateEngine
Public Class Methods
render(template, filename = nil, binding = nil)
click to toggle source
# File lib/rake/funnel/support/template_engine.rb, line 10 def render(template, filename = nil, binding = nil) render = erb(template) render.filename = filename render.result(binding || top_level_binding) end
Private Class Methods
erb(template)
click to toggle source
# File lib/rake/funnel/support/template_engine.rb, line 18 def erb(template) template = replace_at_markers(template) trim_mode = '%<>' return ERB.new(template, trim_mode: trim_mode) if RUBY_VERSION >= '2.6' ERB.new(template, nil, trim_mode) end
replace_at_markers(template)
click to toggle source
# File lib/rake/funnel/support/template_engine.rb, line 27 def replace_at_markers(template) tags = /(@\w[\w\.]+\w@)/ (template || '').gsub(tags) do |match| "<%= #{match[1...-1]} %>" end end
top_level_binding()
click to toggle source
# File lib/rake/funnel/support/template_engine.rb, line 35 def top_level_binding TOPLEVEL_BINDING.dup end