class Jekyll::LiquidRenderer::File
def initialize(renderer, filename)
def initialize(renderer, filename) @renderer = renderer @filename = filename end
def measure_bytes
def measure_bytes yield.tap do |str| @renderer.increment_bytes(@filename, str.bytesize) end end
def measure_counts
def measure_counts @renderer.increment_count(@filename) yield end
def measure_time
def measure_time before = Time.now yield ensure after = Time.now @renderer.increment_time(@filename, after - before) end
def parse(content)
def parse(content) measure_time do @renderer.cache[@filename] ||= Liquid::Template.parse(content, :line_numbers => true) end @template = @renderer.cache[@filename] self end
def render(*args)
def render(*args) reset_template_assigns measure_time do measure_bytes do measure_counts do @template.render(*args) end end end end
def render!(*args)
def render!(*args) reset_template_assigns measure_time do measure_bytes do measure_counts do @template.render!(*args) end end end end
def reset_template_assigns
clear assigns to `Liquid::Template` instance prior to rendering since
def reset_template_assigns @template.instance_assigns.clear end
def warnings
def warnings @template.warnings end