ruby-prof 0.15.8 → 0.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +5 -0
  3. data/README.rdoc +187 -185
  4. data/doc/LICENSE.html +114 -0
  5. data/doc/README_rdoc.html +544 -0
  6. data/doc/Rack.html +95 -0
  7. data/doc/Rack/RubyProf.html +223 -0
  8. data/doc/RubyProf.html +961 -0
  9. data/doc/RubyProf/AbstractPrinter.html +546 -0
  10. data/doc/RubyProf/AggregateCallInfo.html +551 -0
  11. data/doc/RubyProf/CallInfo.html +639 -0
  12. data/doc/RubyProf/CallInfoPrinter.html +120 -0
  13. data/doc/RubyProf/CallInfoVisitor.html +198 -0
  14. data/doc/RubyProf/CallStackPrinter.html +1121 -0
  15. data/doc/RubyProf/CallTreePrinter.html +359 -0
  16. data/doc/RubyProf/Cmd.html +631 -0
  17. data/doc/RubyProf/DotPrinter.html +257 -0
  18. data/doc/RubyProf/FlatPrinter.html +163 -0
  19. data/doc/RubyProf/FlatPrinterWithLineNumbers.html +208 -0
  20. data/doc/RubyProf/GraphHtmlPrinter.html +552 -0
  21. data/doc/RubyProf/GraphPrinter.html +139 -0
  22. data/doc/RubyProf/MethodInfo.html +745 -0
  23. data/doc/RubyProf/MultiPrinter.html +358 -0
  24. data/doc/RubyProf/Profile.html +713 -0
  25. data/doc/RubyProf/ProfileTask.html +490 -0
  26. data/doc/RubyProf/Thread.html +268 -0
  27. data/doc/created.rid +13 -13
  28. data/doc/examples/flat_txt.html +138 -0
  29. data/doc/examples/graph_html.html +909 -0
  30. data/doc/examples/graph_txt.html +247 -0
  31. data/doc/images/add.png +0 -0
  32. data/doc/images/arrow_up.png +0 -0
  33. data/doc/images/brick.png +0 -0
  34. data/doc/images/brick_link.png +0 -0
  35. data/doc/images/bug.png +0 -0
  36. data/doc/images/bullet_black.png +0 -0
  37. data/doc/images/bullet_toggle_minus.png +0 -0
  38. data/doc/images/bullet_toggle_plus.png +0 -0
  39. data/doc/images/date.png +0 -0
  40. data/doc/images/delete.png +0 -0
  41. data/doc/images/find.png +0 -0
  42. data/doc/images/macFFBgHack.png +0 -0
  43. data/doc/images/package.png +0 -0
  44. data/doc/images/page_green.png +0 -0
  45. data/doc/images/page_white_text.png +0 -0
  46. data/doc/images/page_white_width.png +0 -0
  47. data/doc/images/plugin.png +0 -0
  48. data/doc/images/ruby.png +0 -0
  49. data/doc/images/tag_blue.png +0 -0
  50. data/doc/images/tag_green.png +0 -0
  51. data/doc/images/transparent.png +0 -0
  52. data/doc/images/wrench.png +0 -0
  53. data/doc/images/wrench_orange.png +0 -0
  54. data/doc/images/zoom.png +0 -0
  55. data/doc/index.html +571 -0
  56. data/doc/js/navigation.js.gz +0 -0
  57. data/doc/js/search_index.js +1 -1
  58. data/doc/js/search_index.js.gz +0 -0
  59. data/doc/js/searcher.js.gz +0 -0
  60. data/doc/table_of_contents.html +893 -0
  61. data/examples/flat.txt +50 -55
  62. data/examples/graph.html +823 -823
  63. data/examples/graph.txt +139 -170
  64. data/ext/ruby_prof/extconf.rb +6 -1
  65. data/lib/ruby-prof/aggregate_call_info.rb +17 -11
  66. data/lib/ruby-prof/call_info.rb +2 -17
  67. data/lib/ruby-prof/method_info.rb +6 -22
  68. data/lib/ruby-prof/printers/graph_html_printer.rb +0 -2
  69. data/lib/ruby-prof/printers/graph_printer.rb +4 -6
  70. data/lib/ruby-prof/rack.rb +7 -0
  71. data/lib/ruby-prof/thread.rb +0 -4
  72. data/lib/ruby-prof/version.rb +1 -1
  73. data/ruby-prof.gemspec +1 -1
  74. data/test/basic_test.rb +26 -26
  75. data/test/issue137_test.rb +63 -0
  76. data/test/measure_allocations_test.rb +4 -3
  77. data/test/measure_cpu_time_test.rb +6 -6
  78. data/test/measure_process_time_test.rb +8 -8
  79. data/test/pause_resume_test.rb +9 -9
  80. data/test/printers_test.rb +1 -1
  81. data/test/printing_recursive_graph_test.rb +127 -0
  82. data/test/rack_test.rb +49 -1
  83. data/test/recursive_test.rb +41 -37
  84. data/test/test_helper.rb +93 -0
  85. metadata +59 -5
@@ -8,6 +8,16 @@ class FakeRackApp
8
8
  end
9
9
  end
10
10
 
11
+ module Rack
12
+ class Request
13
+ def initialize(env)
14
+ end
15
+ def path
16
+ '/path/to/resource.json'
17
+ end
18
+ end
19
+ end
20
+
11
21
  class RackTest < TestCase
12
22
  def test_create_print_path
13
23
  path = Dir.mktmpdir
@@ -15,6 +25,44 @@ class RackTest < TestCase
15
25
 
16
26
  Rack::RubyProf.new(FakeRackApp.new, :path => path)
17
27
 
18
- assert_equal(true, Dir.exist?(path))
28
+ assert(Dir.exist?(path))
29
+ end
30
+
31
+ def test_create_profile_reports
32
+ path = Dir.mktmpdir
33
+
34
+ adapter = Rack::RubyProf.new(FakeRackApp.new, :path => path)
35
+
36
+ adapter.call(:fake_env)
37
+
38
+ %w(flat.txt graph.txt graph.html call_stack.html).each do |base_name|
39
+ file_path = ::File.join(path, "path-to-resource.json-#{base_name}")
40
+ assert(File.exist?(file_path))
41
+ end
42
+ end
43
+
44
+ def test_skip_paths
45
+ path = Dir.mktmpdir
46
+
47
+ adapter = Rack::RubyProf.new(FakeRackApp.new, :path => path, :skip_paths => [%r{\.json$}])
48
+
49
+ adapter.call(:fake_env)
50
+
51
+ %w(flat.txt graph.txt graph.html call_stack.html).each do |base_name|
52
+ file_path = ::File.join(path, "path-to-resource.json-#{base_name}")
53
+ assert(!File.exist?(file_path))
54
+ end
55
+ end
56
+
57
+ def test_allows_lazy_filename_setting
58
+ path = Dir.mktmpdir
59
+
60
+ printer = {::RubyProf::FlatPrinter => lambda { 'dynamic.txt' }}
61
+ adapter = Rack::RubyProf.new(FakeRackApp.new, :path => path, :printers => printer)
62
+
63
+ adapter.call(:fake_env)
64
+
65
+ file_path = ::File.join(path, 'path-to-resource.json-dynamic.txt')
66
+ assert(File.exist?(file_path))
19
67
  end
20
68
  end
@@ -3,31 +3,33 @@
3
3
 
4
4
  require File.expand_path('../test_helper', __FILE__)
5
5
 
6
- # Simple recursive test
7
- def simple(n)
8
- sleep(1)
9
- n -= 1
10
- return if n == 0
11
- simple(n)
12
- end
6
+ module SimpleRecursion
7
+ # Simple recursive test
8
+ def simple(n)
9
+ sleep(1)
10
+ n -= 1
11
+ return if n == 0
12
+ simple(n)
13
+ end
13
14
 
14
15
 
15
- # More complicated recursive test
16
- def render_partial(i)
17
- sleep(1)
18
- case i
19
- when 0
20
- render_partial(10)
21
- when 1
22
- 2.times do |j|
23
- render_partial(j + 10)
16
+ # More complicated recursive test
17
+ def render_partial(i)
18
+ sleep(1)
19
+ case i
20
+ when 0
21
+ render_partial(10)
22
+ when 1
23
+ 2.times do |j|
24
+ render_partial(j + 10)
25
+ end
24
26
  end
25
27
  end
26
- end
27
28
 
28
- def render
29
- 2.times do |i|
30
- render_partial(i)
29
+ def render
30
+ 2.times do |i|
31
+ render_partial(i)
32
+ end
31
33
  end
32
34
  end
33
35
 
@@ -38,6 +40,8 @@ class RecursiveTest < TestCase
38
40
  RubyProf::measure_mode = RubyProf::WALL_TIME
39
41
  end
40
42
 
43
+ include SimpleRecursion
44
+
41
45
  def test_simple
42
46
  result = RubyProf.profile do
43
47
  simple(2)
@@ -64,9 +68,9 @@ class RecursiveTest < TestCase
64
68
  assert_equal('RecursiveTest#test_simple', call_info.call_sequence)
65
69
  assert_equal(1, call_info.children.length)
66
70
 
67
- # Method 1: Object#simple
71
+ # Method 1: SimpleRecursion#simple
68
72
  method = methods[1]
69
- assert_equal('Object#simple', method.full_name)
73
+ assert_equal('SimpleRecursion#simple', method.full_name)
70
74
  assert_equal(2, method.called)
71
75
  assert_in_delta(2, method.total_time, 0.1)
72
76
  assert_in_delta(0, method.self_time, 0.1)
@@ -77,12 +81,12 @@ class RecursiveTest < TestCase
77
81
 
78
82
  call_info = method.call_infos.first
79
83
  assert_equal(2, call_info.children.length)
80
- assert_equal('RecursiveTest#test_simple->Object#simple', call_info.call_sequence)
84
+ assert_equal('RecursiveTest#test_simple->SimpleRecursion#simple', call_info.call_sequence)
81
85
  assert(!call_info.recursive)
82
86
 
83
87
  call_info = method.call_infos.last
84
88
  assert_equal(1, call_info.children.length)
85
- assert_equal('RecursiveTest#test_simple->Object#simple->Object#simple', call_info.call_sequence)
89
+ assert_equal('RecursiveTest#test_simple->SimpleRecursion#simple->SimpleRecursion#simple', call_info.call_sequence)
86
90
  assert(call_info.recursive)
87
91
 
88
92
  method = methods[2]
@@ -95,12 +99,12 @@ class RecursiveTest < TestCase
95
99
 
96
100
  assert_equal(2, method.call_infos.length)
97
101
  call_info = method.call_infos[0]
98
- assert_equal('RecursiveTest#test_simple->Object#simple->Kernel#sleep', call_info.call_sequence)
102
+ assert_equal('RecursiveTest#test_simple->SimpleRecursion#simple->Kernel#sleep', call_info.call_sequence)
99
103
  assert_equal(0, call_info.children.length)
100
104
  assert(!call_info.recursive)
101
105
 
102
106
  call_info = method.call_infos[1]
103
- assert_equal('RecursiveTest#test_simple->Object#simple->Object#simple->Kernel#sleep', call_info.call_sequence)
107
+ assert_equal('RecursiveTest#test_simple->SimpleRecursion#simple->SimpleRecursion#simple->Kernel#sleep', call_info.call_sequence)
104
108
  assert_equal(0, call_info.children.length)
105
109
  assert(!call_info.recursive)
106
110
  end
@@ -128,7 +132,7 @@ class RecursiveTest < TestCase
128
132
  assert(!call_info.recursive)
129
133
 
130
134
  method = methods[1]
131
- assert_equal('Object#render', method.full_name)
135
+ assert_equal('SimpleRecursion#render', method.full_name)
132
136
  assert_equal(1, method.called)
133
137
  assert_in_delta(5, method.total_time, 0.1)
134
138
  assert_in_delta(0, method.self_time, 0.01)
@@ -137,7 +141,7 @@ class RecursiveTest < TestCase
137
141
 
138
142
  assert_equal(1, method.call_infos.length)
139
143
  call_info = method.call_infos[0]
140
- assert_equal('RecursiveTest#test_cycle->Object#render', call_info.call_sequence)
144
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render', call_info.call_sequence)
141
145
  assert_equal(1, call_info.children.length)
142
146
  assert(!call_info.recursive)
143
147
 
@@ -151,17 +155,17 @@ class RecursiveTest < TestCase
151
155
 
152
156
  assert_equal(2, method.call_infos.length)
153
157
  call_info = method.call_infos[0]
154
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times', call_info.call_sequence)
158
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times', call_info.call_sequence)
155
159
  assert_equal(1, call_info.children.length)
156
160
  assert(!call_info.recursive)
157
161
 
158
162
  call_info = method.call_infos[1]
159
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Integer#times', call_info.call_sequence)
163
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial->Integer#times', call_info.call_sequence)
160
164
  assert_equal(1, call_info.children.length)
161
165
  assert(call_info.recursive)
162
166
 
163
167
  method = methods[3]
164
- assert_equal('Object#render_partial', method.full_name)
168
+ assert_equal('SimpleRecursion#render_partial', method.full_name)
165
169
  assert_equal(5, method.called)
166
170
  assert_in_delta(5, method.total_time, 0.1)
167
171
  assert_in_delta(0, method.self_time, 0.1)
@@ -170,17 +174,17 @@ class RecursiveTest < TestCase
170
174
 
171
175
  assert_equal(3, method.call_infos.length)
172
176
  call_info = method.call_infos[0]
173
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial', call_info.call_sequence)
177
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial', call_info.call_sequence)
174
178
  assert_equal(3, call_info.children.length)
175
179
  assert(!call_info.recursive)
176
180
 
177
181
  call_info = method.call_infos[1]
178
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Object#render_partial', call_info.call_sequence)
182
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial->SimpleRecursion#render_partial', call_info.call_sequence)
179
183
  assert_equal(1, call_info.children.length)
180
184
  assert(call_info.recursive)
181
185
 
182
186
  call_info = method.call_infos[2]
183
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Integer#times->Object#render_partial', call_info.call_sequence)
187
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial->Integer#times->SimpleRecursion#render_partial', call_info.call_sequence)
184
188
  assert_equal(1, call_info.children.length)
185
189
  assert(call_info.recursive)
186
190
 
@@ -194,17 +198,17 @@ class RecursiveTest < TestCase
194
198
 
195
199
  assert_equal(3, method.call_infos.length)
196
200
  call_info = method.call_infos[0]
197
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Kernel#sleep', call_info.call_sequence)
201
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial->Kernel#sleep', call_info.call_sequence)
198
202
  assert_equal(0, call_info.children.length)
199
203
  assert(!call_info.recursive)
200
204
 
201
205
  call_info = method.call_infos[1]
202
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Object#render_partial->Kernel#sleep', call_info.call_sequence)
206
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial->SimpleRecursion#render_partial->Kernel#sleep', call_info.call_sequence)
203
207
  assert_equal(0, call_info.children.length)
204
208
  assert(!call_info.recursive)
205
209
 
206
210
  call_info = method.call_infos[2]
207
- assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Integer#times->Object#render_partial->Kernel#sleep', call_info.call_sequence)
211
+ assert_equal('RecursiveTest#test_cycle->SimpleRecursion#render->Integer#times->SimpleRecursion#render_partial->Integer#times->SimpleRecursion#render_partial->Kernel#sleep', call_info.call_sequence)
208
212
  assert_equal(0, call_info.children.length)
209
213
  assert(!call_info.recursive)
210
214
  end
@@ -144,3 +144,96 @@ module MemoryTestHelper
144
144
  total
145
145
  end
146
146
  end
147
+
148
+ module PrinterTestHelper
149
+ Metrics = Struct.new(:name, :total, :self_t, :wait, :child, :calls)
150
+ class Metrics
151
+ def pp
152
+ "%s[total: %.2f, self: %.2f, wait: %.2f, child: %.2f, calls: %s]" %
153
+ [name, total, self_t, wait, child, calls]
154
+ end
155
+ end
156
+
157
+ Entry = Struct.new(:total_p, :self_p, :metrics, :parents, :children)
158
+ class Entry
159
+ def child(name)
160
+ children.detect{|m| m.name == name}
161
+ end
162
+
163
+ def parent(name)
164
+ parents.detect{|m| m.name == name}
165
+ end
166
+
167
+ def pp
168
+ res = ""
169
+ res << "NODE (total%%: %.2f, self%%: %.2f) %s\n" % [total_p, self_p, metrics.pp]
170
+ res << " PARENTS:\n"
171
+ parents.each {|m| res << " " + m.pp << "\n"}
172
+ res << " CHILDREN:\n"
173
+ children.each {|m| res << " " + m.pp << "\n"}
174
+ res
175
+ end
176
+ end
177
+
178
+ class MetricsArray < Array
179
+ def metrics_for(name)
180
+ detect {|e| e.metrics.name == name}
181
+ end
182
+
183
+ def pp(io = STDOUT)
184
+ entries = map do |e|
185
+ begin
186
+ e.pp
187
+ rescue
188
+ puts $!.message + e.inspect
189
+ ""
190
+ end
191
+ end
192
+ io.puts entries.join("--------------------------------------------------\n")
193
+ end
194
+
195
+ def self.parse(str)
196
+ res = new
197
+ entry = nil
198
+ relatives = []
199
+ state = :preamble
200
+
201
+ str.each_line do |l|
202
+ line = l.chomp.strip
203
+ if line =~ /-----/
204
+ if state == :preamble
205
+ state = :parsing_parents
206
+ entry = Entry.new
207
+ elsif state == :parsing_parents
208
+ entry = Entry.new
209
+ elsif state == :parsing_children
210
+ entry.children = relatives
211
+ res << entry
212
+ entry = Entry.new
213
+ relatives = []
214
+ state = :parsing_parents
215
+ end
216
+ elsif line =~ /^\s*$/ || line =~ /indicates recursively called methods/
217
+ next
218
+ elsif state != :preamble
219
+ elements = line.split(/\s+/)
220
+ method = elements.pop
221
+ numbers = elements[0..-2].map(&:to_f)
222
+ metrics = Metrics.new(method, *numbers[-4..-1], elements[-1])
223
+ if numbers.size == 6
224
+ entry.metrics = metrics
225
+ entry.total_p = numbers[0]
226
+ entry.self_p = numbers[1]
227
+ entry.parents = relatives
228
+ entry.children = relatives = []
229
+ state = :parsing_children
230
+ res << entry
231
+ else
232
+ relatives << metrics
233
+ end
234
+ end
235
+ end
236
+ res
237
+ end
238
+ end
239
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-prof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.8
4
+ version: 0.15.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-24 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.5.0
19
+ version: 5.8.3
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.5.0
26
+ version: 5.8.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake-compiler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -73,16 +73,67 @@ files:
73
73
  - Rakefile
74
74
  - bin/ruby-prof
75
75
  - bin/ruby-prof-check-trace
76
+ - doc/LICENSE.html
77
+ - doc/README_rdoc.html
78
+ - doc/Rack.html
79
+ - doc/Rack/RubyProf.html
80
+ - doc/RubyProf.html
81
+ - doc/RubyProf/AbstractPrinter.html
82
+ - doc/RubyProf/AggregateCallInfo.html
83
+ - doc/RubyProf/CallInfo.html
84
+ - doc/RubyProf/CallInfoPrinter.html
85
+ - doc/RubyProf/CallInfoVisitor.html
86
+ - doc/RubyProf/CallStackPrinter.html
87
+ - doc/RubyProf/CallTreePrinter.html
88
+ - doc/RubyProf/Cmd.html
89
+ - doc/RubyProf/DotPrinter.html
90
+ - doc/RubyProf/FlatPrinter.html
91
+ - doc/RubyProf/FlatPrinterWithLineNumbers.html
92
+ - doc/RubyProf/GraphHtmlPrinter.html
93
+ - doc/RubyProf/GraphPrinter.html
94
+ - doc/RubyProf/MethodInfo.html
95
+ - doc/RubyProf/MultiPrinter.html
96
+ - doc/RubyProf/Profile.html
97
+ - doc/RubyProf/ProfileTask.html
98
+ - doc/RubyProf/Thread.html
76
99
  - doc/created.rid
77
100
  - doc/css/fonts.css
78
101
  - doc/css/rdoc.css
102
+ - doc/examples/flat_txt.html
103
+ - doc/examples/graph_html.html
104
+ - doc/examples/graph_txt.html
79
105
  - doc/fonts/Lato-Light.ttf
80
106
  - doc/fonts/Lato-LightItalic.ttf
81
107
  - doc/fonts/Lato-Regular.ttf
82
108
  - doc/fonts/Lato-RegularItalic.ttf
83
109
  - doc/fonts/SourceCodePro-Bold.ttf
84
110
  - doc/fonts/SourceCodePro-Regular.ttf
111
+ - doc/images/add.png
112
+ - doc/images/arrow_up.png
113
+ - doc/images/brick.png
114
+ - doc/images/brick_link.png
115
+ - doc/images/bug.png
116
+ - doc/images/bullet_black.png
117
+ - doc/images/bullet_toggle_minus.png
118
+ - doc/images/bullet_toggle_plus.png
119
+ - doc/images/date.png
120
+ - doc/images/delete.png
121
+ - doc/images/find.png
85
122
  - doc/images/loadingAnimation.gif
123
+ - doc/images/macFFBgHack.png
124
+ - doc/images/package.png
125
+ - doc/images/page_green.png
126
+ - doc/images/page_white_text.png
127
+ - doc/images/page_white_width.png
128
+ - doc/images/plugin.png
129
+ - doc/images/ruby.png
130
+ - doc/images/tag_blue.png
131
+ - doc/images/tag_green.png
132
+ - doc/images/transparent.png
133
+ - doc/images/wrench.png
134
+ - doc/images/wrench_orange.png
135
+ - doc/images/zoom.png
136
+ - doc/index.html
86
137
  - doc/js/darkfish.js
87
138
  - doc/js/jquery.js
88
139
  - doc/js/navigation.js
@@ -92,6 +143,7 @@ files:
92
143
  - doc/js/search_index.js.gz
93
144
  - doc/js/searcher.js
94
145
  - doc/js/searcher.js.gz
146
+ - doc/table_of_contents.html
95
147
  - examples/flat.txt
96
148
  - examples/graph.dot
97
149
  - examples/graph.html
@@ -162,6 +214,7 @@ files:
162
214
  - test/exceptions_test.rb
163
215
  - test/exclude_threads_test.rb
164
216
  - test/fiber_test.rb
217
+ - test/issue137_test.rb
165
218
  - test/line_number_test.rb
166
219
  - test/measure_allocations_test.rb
167
220
  - test/measure_cpu_time_test.rb
@@ -177,6 +230,7 @@ files:
177
230
  - test/pause_resume_test.rb
178
231
  - test/prime.rb
179
232
  - test/printers_test.rb
233
+ - test/printing_recursive_graph_test.rb
180
234
  - test/rack_test.rb
181
235
  - test/recursive_test.rb
182
236
  - test/singleton_test.rb
@@ -207,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
261
  version: '0'
208
262
  requirements: []
209
263
  rubyforge_project:
210
- rubygems_version: 2.4.6
264
+ rubygems_version: 2.4.8
211
265
  signing_key:
212
266
  specification_version: 4
213
267
  summary: Fast Ruby profiler