Class: RubyProf::MultiPrinter

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

Instance Method Summary collapse

Constructor Details

#initialize(result) ⇒ MultiPrinter

Helper class to simplify printing profiles of several types from one profiling run. Currently prints a flat profile, a callgrind profile, a call stack profile and a graph profile.



7
8
9
10
11
12
# File 'lib/ruby-prof/multi_printer.rb', line 7

def initialize(result)
  @stack_printer = CallStackPrinter.new(result)
  @graph_printer = GraphHtmlPrinter.new(result)
  @tree_printer = CallTreePrinter.new(result)
  @flat_printer = FlatPrinter.new(result)
end

Instance Method Details

#flat_profileObject

the name of the flat profile file



50
51
52
# File 'lib/ruby-prof/multi_printer.rb', line 50

def flat_profile
  "#{@directory}/#{@profile}.flat.txt"
end

#graph_profileObject

the name of the graph profile file



40
41
42
# File 'lib/ruby-prof/multi_printer.rb', line 40

def graph_profile
  "#{@directory}/#{@profile}.graph.html"
end

create profile files under options or the current directory. options is used as the base name for the pofile file, defaults to “profile”.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ruby-prof/multi_printer.rb', line 17

def print(options)
  @profile = options.delete(:profile) || "profile"
  @directory = options.delete(:path) || File.expand_path(".")
  File.open(stack_profile, "w") do |f|
    @stack_printer.print(f, options.merge(:graph => "#{@profile}.graph.html"))
  end
  File.open(graph_profile, "w") do |f|
    @graph_printer.print(f, options)
  end
  File.open(tree_profile, "w") do |f|
    @tree_printer.print(f, options)
  end
  File.open(flat_profile, "w") do |f|
    @flat_printer.print(f, options)
  end
end

#stack_profileObject

the name of the call stack profile file



35
36
37
# File 'lib/ruby-prof/multi_printer.rb', line 35

def stack_profile
  "#{@directory}/#{@profile}.stack.html"
end

#tree_profileObject

the name of the callgrind profile file



45
46
47
# File 'lib/ruby-prof/multi_printer.rb', line 45

def tree_profile
  "#{@directory}/#{@profile}.grind.dat"
end