class Sinatra::TemplateMetrics
Public Class Methods
add_tracer(method)
click to toggle source
# File lib/sinatra/template_metrics.rb, line 16 def self.add_tracer(method) klass = ::Sinatra::Templates unless klass.method_defined?("#{method}_without_metrics") klass.__send__(:alias_method, "#{method}_without_metrics", method) klass.__send__(:define_method, "#{method}_with_metrics") do |template, options = {}, locals = {}, &block| ::Sinatra::TemplateMetrics.measure_time(template, options[:layout]) do send("#{method}_without_metrics", template, options, locals, &block) end end klass.__send__(:alias_method, method, "#{method}_with_metrics") end end
logger()
click to toggle source
# File lib/sinatra/template_metrics.rb, line 10 def self.logger @logger ||= Logger.new(STDOUT).tap {|log| log.formatter = ::Sinatra::Metrics::LtsvFormatter.new } end
logger=(logger)
click to toggle source
# File lib/sinatra/template_metrics.rb, line 6 def self.logger=(logger) @logger = logger end
measure_time(template, layout) { || ... }
click to toggle source
# File lib/sinatra/template_metrics.rb, line 29 def self.measure_time(template, layout, &block) start = Time.now ret = yield elapsed = Time.now - start logger = Sinatra::TemplateMetrics.logger logger.info({ template: template, layout: layout, elapsed: elapsed.to_f }) ret end