Class: Jekyll::IncludeSnippet::LiquidTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/jekyll/include_snippet/liquid_tag.rb

Constant Summary collapse

DEFAULT_COMMENT_PREFIX =
'#'

Instance Method Summary collapse

Constructor Details

#initialize(tag_name, arg_str, tokens) ⇒ LiquidTag

Returns a new instance of LiquidTag.



6
7
8
9
# File 'lib/jekyll/include_snippet/liquid_tag.rb', line 6

def initialize(tag_name, arg_str, tokens)
  super
  @snippet_name, @source_path = arg_str.split(/\sfrom\s/).map(&:strip)
end

Instance Method Details

#render(context) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/jekyll/include_snippet/liquid_tag.rb', line 11

def render(context)
  source_path = source_path_for(context)
  source = File.read(source_path)
  extractor = Extractor.new(comment_prefix: comment_prefix_for(context))
  snippets = extractor.(source)
  snippets.fetch(@snippet_name) do
    fail "Snippet not found: #{@snippet_name.inspect}\n    in file: #{@source_path}"
  end
end