class EJX::Template::Base
Attributes
children[RW]
imports[RW]
Public Class Methods
new(escape: nil)
click to toggle source
# File lib/ejx/template/base.rb, line 5 def initialize(escape: nil) @children = [] @escape = escape @imports = [] end
Public Instance Methods
to_module()
click to toggle source
# File lib/ejx/template/base.rb, line 11 def to_module var_generator = EJX::Template::VarGenerator.new output = if @escape "import {" + @escape.split('.').reverse.join(" as __ejx_append} from '") + "';\n" else "import {append as __ejx_append} from 'ejx';\n" end @imports.each do |import| output << import << "\n" end output << "\nexport default async function (locals) {\n" output << " var __output = [], __promises = [];\n \n" @children.each do |child| output << case child when EJX::Template::String " __output.push(#{child.to_js});\n" else child.to_js(var_generator: var_generator) end end output << "\n await Promise.all(__promises);\n" output << " return __output;\n" output << "}" output end