class Tilt::ErubiTemplate

instead of the default (which is ::Erubi::Engine).
:engine_class

allows you to specify a custom engine class to use
to the options supported by the Erubi engine:
ErubiTemplate supports the following additional options, in addition
See github.com/jeremyevans/erubi<br>Erubi (a simplified version of Erubis) template implementation.

def freeze_string_literals?

def freeze_string_literals?
  @freeze_string_literals
end

def precompiled_template(locals)

def precompiled_template(locals)
  @src
end

def prepare

def prepare
  @options[:preamble] = false
  @options[:postamble] = false
  @options[:ensure] = true
  engine_class = @options[:engine_class] || Erubi::Engine
  # If :freeze option is given, the intent is to setup frozen string
  # literals in the template.  So enable frozen string literals in the
  # code Tilt generates if the :freeze option is given.
  if @freeze_string_literals = !!@options[:freeze]
    # Passing the :freeze option to Erubi sets the
    # frozen-string-literal magic comment, which doesn't have an effect
    # with Tilt as Tilt wraps the resulting code.  Worse, the magic
    # comment appearing not at the top of the file can cause a warning.
    # So remove the :freeze option before passing to Erubi.
    @options.delete(:freeze)
    # Erubi by default appends .freeze to template literals on Ruby 2.1+,
    # but that is not necessary and slows down code when Tilt is using
    # frozen string literals, so pass the :freeze_template_literals
    # option to not append .freeze.
    @options[:freeze_template_literals] = false
  end
  @engine = engine_class.new(@data, @options)
  @outvar = @engine.bufvar
  @src = @engine.src
  @engine
end