Class: RubyProf::GraphHtmlPrinter
- Inherits:
-
AbstractPrinter
- Object
- AbstractPrinter
- RubyProf::GraphHtmlPrinter
- Includes:
- ERB::Util
- Defined in:
- lib/ruby-prof/printers/graph_html_printer.rb
Overview
Generates graph profile reports as html. To use the graph html printer:
result = RubyProf.profile do
[code to profile]
end
printer = RubyProf::GraphHtmlPrinter.new(result)
printer.print(STDOUT, :min_percent=>0)
The Graph printer takes the following options in its print methods:
Instance Method Summary collapse
-
#create_link(thread, overall_time, method) ⇒ Object
Creates a link to a method.
- #file_link(path, linenum) ⇒ Object
- #method_href(thread, method) ⇒ Object
- #print(output = STDOUT, options = {}) ⇒ Object
- #setup_options(options) ⇒ Object
- #template ⇒ Object
Methods inherited from AbstractPrinter
#filter_by, #initialize, #max_percent, #method_location, #min_percent, needs_dir?, #open_asset, #print_column_headers, #print_footer, #print_header, #print_thread, #print_threads, #sort_method, #time_format
Constructor Details
This class inherits a constructor from RubyProf::AbstractPrinter
Instance Method Details
#create_link(thread, overall_time, method) ⇒ Object
Creates a link to a method. Note that we do not create links to methods which are under the min_percent specified by the user, since they will not be printed out.
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/ruby-prof/printers/graph_html_printer.rb', line 35 def create_link(thread, overall_time, method) total_percent = (method.total_time/overall_time) * 100 if total_percent < min_percent # Just return name h method.full_name else href = '#' + method_href(thread, method) "<a href=\"#{href}\">#{h method.full_name}</a>" end end |
#file_link(path, linenum) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/ruby-prof/printers/graph_html_printer.rb', line 50 def file_link(path, linenum) if path.nil? "" else srcfile = File.(path) "<a href=\"file://#{h srcfile}##{linenum}\" title=\"#{h srcfile}:#{linenum}\">#{linenum}</a>" end end |
#method_href(thread, method) ⇒ Object
46 47 48 |
# File 'lib/ruby-prof/printers/graph_html_printer.rb', line 46 def method_href(thread, method) h(method.full_name.gsub(/[><#\.\?=:]/,"_") + "_" + thread.fiber_id.to_s) end |
#print(output = STDOUT, options = {}) ⇒ Object
26 27 28 29 |
# File 'lib/ruby-prof/printers/graph_html_printer.rb', line 26 def print(output = STDOUT, = {}) () output << @erb.result(binding) end |
#setup_options(options) ⇒ Object
21 22 23 24 |
# File 'lib/ruby-prof/printers/graph_html_printer.rb', line 21 def () super() @erb = ERB.new(self.template) end |
#template ⇒ Object
59 60 61 |
# File 'lib/ruby-prof/printers/graph_html_printer.rb', line 59 def template open_asset('graph_printer.html.erb') end |