class Remnant::Template::Trace

Public Class Methods

new() click to toggle source
# File lib/remnant/template/trace.rb, line 16
def initialize
  @current = root
end

Public Instance Methods

finished(template_name) click to toggle source
# File lib/remnant/template/trace.rb, line 11
def finished(template_name)
  @current.end_time = Time.now
  @current = @current.parent
end
log(logger, rendering) click to toggle source
# File lib/remnant/template/trace.rb, line 28
def log(logger, rendering)
  rendering.results.map do |key, result|

    #
    line = Remnant.color
    line += "#{'   ' * (result['depth'] - 1)}#{result['depth'] > 1 ? '└ ' : ''}"
    line += "#{result['time'].to_i}ms (#{result['exclusive'].to_i}ms)"
    line += Remnant.color(true)
    line += ' ' * ((line.size >= 50 ? 10 : 50 - line.size) - (result['depth'] == 1 ? 2 : 0))
    line += "#{key}"

    logger.info line

    rendering.children.map do |child|
      log(logger, child)
    end
  end
end
root() click to toggle source
# File lib/remnant/template/trace.rb, line 24
def root
  @root ||= Remnant::Template::Rendering.new('root')
end
start(template_name) click to toggle source
# File lib/remnant/template/trace.rb, line 4
def start(template_name)
  rendering = Remnant::Template::Rendering.new(template_name)
  rendering.start_time = Time.now
  @current.add(rendering)
  @current = rendering
end
total_time() click to toggle source
# File lib/remnant/template/trace.rb, line 20
def total_time
  root.child_time
end