class Jekyll::IncludeSnippet::LiquidTag

Constants

DEFAULT_COMMENT_PREFIX

Public Class Methods

new(tag_name, arg_str, tokens) click to toggle source
Calls superclass method
# 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

Public Instance Methods

render(context) click to toggle source
# 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

Private Instance Methods

comment_prefix_for(context) click to toggle source
# File lib/jekyll/include_snippet/liquid_tag.rb, line 33
def comment_prefix_for(context)
  get_option(:snippet_comment_prefix, context) || DEFAULT_COMMENT_PREFIX
end
get_option(option_name, context) click to toggle source
# File lib/jekyll/include_snippet/liquid_tag.rb, line 37
def get_option(option_name, context)
  page = context['page']
  page && page[option_name.to_s]
end
source_path_for(context) click to toggle source
# File lib/jekyll/include_snippet/liquid_tag.rb, line 23
def source_path_for(context)
  result = get_option(:snippet_source, context) || @source_path

  if result.nil?
    fail "No source path provided for snippet: #{@snippet_name}"
  end

  result
end