Class: RubyProf::AbstractPrinter

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-prof/printers/abstract_printer.rb

Instance Method Summary collapse

Constructor Details

#initialize(result) ⇒ AbstractPrinter

Create a new printer.

result should be the output generated from a profiling run


8
9
10
11
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 8

def initialize(result)
  @result = result
  @output = nil
end

Instance Method Details

#method_name(method) ⇒ Object


45
46
47
48
49
50
51
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 45

def method_name(method)
  name = method.full_name
  if print_file
    name += " (#{method.source_file}:#{method.line}}"
  end
  name
end

#min_percentObject


33
34
35
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 33

def min_percent
  @options[:min_percent] || 0
end

Print a profiling report to the provided output.

output - Any IO object, including STDOUT or a file. The default value is STDOUT.

options - Hash of print options. See #setup_options for more information. Note that each printer can define its own set of options.


61
62
63
64
65
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 61

def print(output = STDOUT, options = {})
  @output = output
  setup_options(options)
  print_threads
end

37
38
39
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 37

def print_file
  @options[:print_file] || false
end

82
83
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 82

def print_footer(thread)
end

79
80
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 79

def print_header(thread)
end

73
74
75
76
77
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 73

def print_thread(thread)
  print_header(thread)
  print_methods(thread)
  print_footer(thread)
end

67
68
69
70
71
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 67

def print_threads
  @result.threads.each do |thread|
    print_thread(thread)
  end
end

#setup_options(options = {}) ⇒ Object

Specify print options.

options - Hash table

:min_percent - Number 0 to 100 that specifes the minimum
               %self (the methods self time divided by the
               overall total time) that a method must take
               for it to be printed out in the report.
               Default value is 0.

:print_file  - True or false. Specifies if a method's source
               file should be printed.  Default value if false.

:sort_method - Specifies method used for sorting method infos.
               Available values are :total_time, :self_time,
               :wait_time, :children_time
               Default value is :total_time

29
30
31
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 29

def setup_options(options = {})
  @options = options
end

#sort_methodObject


41
42
43
# File 'lib/ruby-prof/printers/abstract_printer.rb', line 41

def sort_method
  @options[:sort_method] || :total_time
end