class Pilfer::Logger
Attributes
app_root[R]
logger[R]
Public Class Methods
new(path_or_io, options = {})
click to toggle source
# File lib/pilfer/logger.rb, line 8 def initialize(path_or_io, options = {}) @logger = ::Logger.new(path_or_io) if (app_root = options[:app_root]) app_root += '/' unless app_root[-1, 1] == '/' @app_root = %r{^#{Regexp.escape(app_root)}} end end
Public Instance Methods
write(profile_data, profile_start, description, options = {})
click to toggle source
# File lib/pilfer/logger.rb, line 16 def write(profile_data, profile_start, description, options = {}) profile = Pilfer::Profile.new(profile_data, profile_start) print_report_banner profile_start, description profile.each do |path, data| print_file_banner path, data print_file_source_with_profile path, data end end
Private Instance Methods
print_file_source_with_profile(path, data)
click to toggle source
# File lib/pilfer/logger.rb, line 40 def print_file_source_with_profile(path, data) return unless File.exists?(path) File.readlines(path).each_with_index do |line_source, index| line_source = line_source.chomp line_profile = data['lines'][index] if line_profile && line_profile['calls'] > 0 total = line_profile['wall_time'] logger.info sprintf("% 8.1fms (% 5d) | %s", total/1000.0, line_profile['calls'], line_source) else logger.info sprintf(" | %s", line_source) end end end
strip_app_root(path)
click to toggle source
# File lib/pilfer/logger.rb, line 57 def strip_app_root(path) return path unless app_root path.gsub(app_root, '') end