lib/tilt/string.rb
# frozen_string_literal: true require_relative 'template' module Tilt # The template source is evaluated as a Ruby string. The #{} interpolation # syntax can be used to generated dynamic output. class StringTemplate < Template def prepare hash = "TILT#{@data.hash.abs}" @freeze_string_literals = !!@options[:freeze] @code = String.new("<<#{hash}.chomp\n#{@data}\n#{hash}") end def precompiled_template(locals) @code end def precompiled(locals) source, offset = super [source, offset + 1] end def freeze_string_literals? @freeze_string_literals end end end