class StackProf::Report
def source_display(f, file, lines, range=nil)
def source_display(f, file, lines, range=nil) File.readlines(file).each_with_index do |code, i| next unless range.nil? || range.include?(i) if lines and lineinfo = lines[i+1] total_samples, samples = lineinfo if version == 1.0 samples = total_samples f.printf "% 5d % 7s | % 5d | %s", samples, "(%2.1f%%)" % (100.0*samples/overall_samples), i+1, code elsif samples > 0 f.printf "% 5d % 8s / % 5d % 7s | % 5d | %s", total_samples, "(%2.1f%%)" % (100.0*total_samples/overall_samples), samples, "(%2.1f%%)" % (100.0*samples/overall_samples), i+1, code else f.printf "% 5d % 8s | % 5d | %s", total_samples, "(%3.1f%%)" % (100.0*total_samples/overall_samples), i+1, code end else if version == 1.0 f.printf " | % 5d | %s", i+1, code else f.printf " | % 5d | %s", i+1, code end end end rescue SystemCallError f.puts " SOURCE UNAVAILABLE" end