Sha256: 942d2d4e17ccfbe3b724c91ddbefc1a3d733d6841c128c9c082ec89e9c0cc0c6
Contents?: true
Size: 823 Bytes
Versions: 5
Compression:
Stored size: 823 Bytes
Contents
module Cutaneous class Template attr_accessor :loader, :lexer, :path def initialize(lexer) @lexer = lexer end def compiler @compiler ||= Compiler.new(lexer, loader) end def render(context) context.__loader = loader context.instance_eval(&template_proc) end def template_proc @template_proc ||= eval(template_proc_src, nil, path || "(cutaneous)").tap do |proc| @lexer = nil # release any memory used by the lexer, we don't need it anymore end end def template_proc_src "lambda { |context| self.__buf = __buf = ''; #{script}; __buf.to_s }" end def script compiler.script end def block_order compiler.block_order end def block(block_name) compiler.block(block_name) end end end
Version data entries
5 entries across 5 versions & 1 rubygems