class Jekyll::LiquidRenderer::File

Public Class Methods

new(renderer, filename) click to toggle source
# File lib/jekyll/liquid_renderer/file.rb, line 6
def initialize(renderer, filename)
  @renderer = renderer
  @filename = filename
end

Public Instance Methods

parse(content) click to toggle source
# File lib/jekyll/liquid_renderer/file.rb, line 11
def parse(content)
  measure_time do
    @renderer.cache[@filename] ||= Liquid::Template.parse(content, :line_numbers => true)
  end
  @template = @renderer.cache[@filename]

  self
end
render(*args) click to toggle source
# File lib/jekyll/liquid_renderer/file.rb, line 20
def render(*args)
  reset_template_assigns

  measure_time do
    measure_bytes do
      measure_counts do
        @template.render(*args)
      end
    end
  end
end
render!(*args) click to toggle source

This method simply ‘rethrows any error’ before attempting to render the template.

# File lib/jekyll/liquid_renderer/file.rb, line 33
def render!(*args)
  reset_template_assigns

  measure_time do
    measure_bytes do
      measure_counts do
        @template.render!(*args)
      end
    end
  end
end
warnings() click to toggle source
# File lib/jekyll/liquid_renderer/file.rb, line 45
def warnings
  @template.warnings
end

Private Instance Methods

measure_bytes() { || ... } click to toggle source
# File lib/jekyll/liquid_renderer/file.rb, line 62
def measure_bytes
  yield.tap do |str|
    @renderer.increment_bytes(@filename, str.bytesize)
  end
measure_counts() { || ... } click to toggle source
# File lib/jekyll/liquid_renderer/file.rb, line 57
def measure_counts
  @renderer.increment_count(@filename)
  yield
end
reset_template_assigns() click to toggle source

clear assigns to ‘Liquid::Template` instance prior to rendering since `Liquid::Template` instances are cached in Jekyll 4.

# File lib/jekyll/liquid_renderer/file.rb, line 53
def reset_template_assigns
  @template.instance_assigns.clear
end