Class: Locomotive::Steam::Liquid::Tags::Snippet

Inherits:
Liquid::Include
  • Object
show all
Defined in:
lib/locomotive/steam/liquid/tags/snippet.rb

Instance Method Summary collapse

Instance Method Details

#parse(tokens) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/locomotive/steam/liquid/tags/snippet.rb', line 8

def parse(tokens)
  ActiveSupport::Notifications.instrument('steam.parse.include', page: options[:page], name: @template_name)

  # look for editable elements
  name = evaluate_snippet_name
  if options[:snippet_finder] && snippet = options[:snippet_finder].find(name)
    options[:parser]._parse(snippet, options.merge(snippet: name))
  end
end

#render(context) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/locomotive/steam/liquid/tags/snippet.rb', line 18

def render(context)
  @template_name = evaluate_snippet_name(context)
  # @options doesn't include the page key if cache is on
  @options[:page] = context.registers[:page]

  begin
    super
  rescue Locomotive::Steam::ParsingRenderingError => e
    e.file = @template_name + ' [Snippet]'
    raise e
  end
end