Class: Liquid2::TemplateLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/liquid2/loader.rb

Overview

The base class for all template loaders.

Direct Known Subclasses

FileSystemLoader, HashLoader

Instance Method Summary collapse

Instance Method Details

#get_source(env, name, context: nil, **kwargs) ⇒ TemplateSource

Load and return template source text and any associated data.

Parameters:

  • env (Environment)

    The current Liquid environment.

  • name (String)

    A name or identifier for the target template source text.

  • context (RenderContext?) (defaults to: nil)

    The current render context, if one is available.

  • *kwargs

    Arbitrary arguments that can be used to narrow the template source search space.

Returns:



27
28
29
# File 'lib/liquid2/loader.rb', line 27

def get_source(env, name, context: nil, **kwargs) # rubocop:disable Lint/UnusedMethodArgument
  raise "template loaders must implement `get_source`"
end

#load(env, name, globals: nil, context: nil, **kwargs) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/liquid2/loader.rb', line 31

def load(env, name, globals: nil, context: nil, **kwargs)
  data = get_source(env, name, context: context, **kwargs)
  path = Pathname.new(data.name)
  # FIXME: name and path
  env.parse(data.source,
            name: path.basename.to_s,
            path: data.name,
            globals: globals,
            up_to_date: data.up_to_date,
            overlay: data.matter)
end