Module: Sourcerer::Templating::Engines

Defined in:
lib/sourcerer/templating.rb

Overview

This module handles the compilation and rendering of templates.

Constant Summary collapse

SUPPORTED_ENGINES =
A hash of supported template engines.
{
  'liquid' => 'liquid',
  'erb'    => 'erb'
}.freeze

Class Method Summary collapse

Class Method Details

.compile(str, engine) ⇒ Object

Compiles a template string using the specified engine.

Parameters:

  • str (String)
    The template string to compile.
  • engine (String)
    The name of the template engine to use.

Returns:

  • (Object)
    The compiled template object.

Raises:

  • (ArgumentError)
    if the engine is not supported.


26
27
28
29
30
31
32
33
34
35
36
# File 'lib/sourcerer/templating.rb', line 26

def compile str, engine
  case engine.to_s
  when 'liquid'
    Liquid::Template.parse(str)
  when 'erb'
    require 'erb'
    ERB.new(str)
  else
    raise ArgumentError, "Unsupported engine: #{engine}"
  end
end

.render(compiled, engine, vars = {}) ⇒ String

Renders a compiled template with the given variables.

Parameters:

  • compiled (Object)
    The compiled template object.
  • engine (String)
    The name of the template engine.
  • vars (Hash) (defaults to: {})
    A hash of variables to use for rendering.

Returns:

  • (String)
    The rendered output.


44
45
46
47
48
49
50
51
52
53
# File 'lib/sourcerer/templating.rb', line 44

def render compiled, engine, vars = {}
  case engine.to_s
  when 'liquid'
    compiled.render(vars)
  when 'erb'
    compiled.result_with_hash(vars)
  else
    compiled.to_s
  end
end