Sha256: e2d19a1827bde797044b7c7f1f86c48a11e1d2fa99ea4a48e53c6f7f39b28249
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
module Locomotive module Steam module Liquid module Tags class Snippet < ::Liquid::Include def parse(tokens) if listener = options[:events_listener] listener.emit(:include, page: options[:page], name: @template_name) # look for editable elements name = evaluate_snippet_name if snippet = options[:snippet_finder].find(name) options[:parser]._parse(snippet, options.merge(snippet: name)) end end end def render(context) @template_name = evaluate_snippet_name(context) super end private def read_template_from_file_system(context) service = context.registers[:services] snippet = service.snippet_finder.find(@template_name) raise SnippetNotFound.new("Snippet with slug '#{@template_name}' was not found") if snippet.nil? snippet.liquid_source end def evaluate_snippet_name(context = nil) context.try(:evaluate, @template_name) || @template_name.send(:state).first end end ::Liquid::Template.register_tag('include'.freeze, Snippet) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
locomotivecms_steam-1.0.0.pre.alpha | lib/locomotive/steam/liquid/tags/snippet.rb |