ruby-prof 0.14.1 → 0.14.2
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.
- data/CHANGES +2 -2
- data/Rakefile +9 -5
- data/doc/LICENSE.html +5 -5
- data/doc/README_rdoc.html +43 -46
- data/doc/Rack/RubyProf.html +6 -6
- data/doc/RubyProf/AbstractPrinter.html +1 -1
- data/doc/RubyProf/CallInfo.html +2 -2
- data/doc/RubyProf/CallInfoPrinter.html +1 -1
- data/doc/RubyProf/CallStackPrinter.html +42 -42
- data/doc/RubyProf/CallTreePrinter.html +8 -8
- data/doc/RubyProf/Cmd.html +38 -38
- data/doc/RubyProf/DotPrinter.html +2 -2
- data/doc/RubyProf/FlatPrinterWithLineNumbers.html +3 -3
- data/doc/RubyProf/GraphHtmlPrinter.html +3 -3
- data/doc/RubyProf/MethodInfo.html +2 -2
- data/doc/RubyProf/ProfileTask.html +7 -7
- data/doc/RubyProf.html +4 -5
- data/doc/created.rid +2 -2
- data/doc/examples/flat_txt.html +1 -1
- data/doc/examples/graph_txt.html +3 -3
- data/doc/index.html +43 -46
- data/doc/js/search_index.js +1 -1
- data/ext/ruby_prof/extconf.rb +0 -2
- data/ext/ruby_prof/rp_measure_wall_time.c +1 -1
- data/lib/ruby-prof/version.rb +1 -1
- metadata +65 -55
- checksums.yaml +0 -7
- data/doc/RubyProf/Test.html +0 -539
@@ -220,7 +220,7 @@
|
|
220
220
|
<div class="method-source-code" id="arguments-source">
|
221
221
|
<pre><span class="ruby-comment"># File lib/ruby-prof/printers/call_stack_printer.rb, line 166</span>
|
222
222
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">arguments</span>
|
223
|
-
<span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string"
|
223
|
+
<span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</span>)
|
224
224
|
<span class="ruby-keyword">end</span></pre>
|
225
225
|
</div>
|
226
226
|
|
@@ -297,7 +297,7 @@
|
|
297
297
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">copy_image_files</span>
|
298
298
|
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@output</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">File</span>)
|
299
299
|
<span class="ruby-identifier">target_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">path</span>)
|
300
|
-
<span class="ruby-identifier">image_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword">__FILE__</span>), <span class="ruby-string"
|
300
|
+
<span class="ruby-identifier">image_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword">__FILE__</span>), <span class="ruby-string">'..'</span>, <span class="ruby-string">'images'</span>)
|
301
301
|
<span class="ruby-node">%w(empty plus minus)</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">img</span><span class="ruby-operator">|</span>
|
302
302
|
<span class="ruby-identifier">source_file</span> = <span class="ruby-node">"#{image_dir}/#{img}.png"</span>
|
303
303
|
<span class="ruby-identifier">target_file</span> = <span class="ruby-node">"#{target_dir}/#{img}.png"</span>
|
@@ -404,7 +404,7 @@
|
|
404
404
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">graph_link</span>(<span class="ruby-identifier">call_info</span>)
|
405
405
|
<span class="ruby-identifier">total_calls</span> = <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>.<span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">t</span>, <span class="ruby-identifier">ci</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">ci</span>.<span class="ruby-identifier">called</span>}
|
406
406
|
<span class="ruby-identifier">href</span> = <span class="ruby-node">"#{@graph_html}##{method_href(call_info.target)}"</span>
|
407
|
-
<span class="ruby-identifier">totals</span> = <span class="ruby-ivar">@graph_html</span> <span class="ruby-operator">?</span> <span class="ruby-node">"<a href
|
407
|
+
<span class="ruby-identifier">totals</span> = <span class="ruby-ivar">@graph_html</span> <span class="ruby-operator">?</span> <span class="ruby-node">"<a href='#{href}'>#{total_calls}</a>"</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">total_calls</span>.<span class="ruby-identifier">to_s</span>
|
408
408
|
<span class="ruby-node">"[#{call_info.called} calls, #{totals} total]"</span>
|
409
409
|
<span class="ruby-keyword">end</span></pre>
|
410
410
|
</div>
|
@@ -550,7 +550,7 @@
|
|
550
550
|
for it to be printed out in the report.
|
551
551
|
Default value is 0.
|
552
552
|
|
553
|
-
:print_file - True or false. Specifies if a method
|
553
|
+
:print_file - True or false. Specifies if a method's source
|
554
554
|
file should be printed. Default value if false.
|
555
555
|
|
556
556
|
:threshold - a float from 0 to 100 that sets the threshold of
|
@@ -682,7 +682,7 @@ end_commands</span>
|
|
682
682
|
<div class="method-source-code" id="print_css-source">
|
683
683
|
<pre><span class="ruby-comment"># File lib/ruby-prof/printers/call_stack_printer.rb, line 210</span>
|
684
684
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_css</span>
|
685
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value"><<
|
685
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value"><<-'end_css'
|
686
686
|
<style type="text/css">
|
687
687
|
<!--
|
688
688
|
body {
|
@@ -816,7 +816,7 @@ end_css</span>
|
|
816
816
|
<div class="method-source-code" id="print_footer-source">
|
817
817
|
<pre><span class="ruby-comment"># File lib/ruby-prof/printers/call_stack_printer.rb, line 206</span>
|
818
818
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_footer</span>
|
819
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string"
|
819
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string">'<div id="sentinel"></div></div></body></html>'</span>
|
820
820
|
<span class="ruby-keyword">end</span></pre>
|
821
821
|
</div>
|
822
822
|
|
@@ -850,11 +850,11 @@ end_css</span>
|
|
850
850
|
<pre><span class="ruby-comment"># File lib/ruby-prof/printers/call_stack_printer.rb, line 194</span>
|
851
851
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_header</span>
|
852
852
|
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string">"<html><head>"</span>
|
853
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string"
|
853
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string">'<meta http-equiv="content-type" content="text/html; charset=utf-8">'</span>
|
854
854
|
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"<title>#{h title}</title>"</span>
|
855
855
|
<span class="ruby-identifier">print_css</span>
|
856
856
|
<span class="ruby-identifier">print_java_script</span>
|
857
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string"
|
857
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string">'</head><body><div style="display: inline-block;">'</span>
|
858
858
|
<span class="ruby-identifier">print_title_bar</span>
|
859
859
|
<span class="ruby-identifier">print_commands</span>
|
860
860
|
<span class="ruby-identifier">print_help</span>
|
@@ -890,7 +890,7 @@ end_css</span>
|
|
890
890
|
<div class="method-source-code" id="print_help-source">
|
891
891
|
<pre><span class="ruby-comment"># File lib/ruby-prof/printers/call_stack_printer.rb, line 753</span>
|
892
892
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_help</span>
|
893
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value"><<
|
893
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value"><<-'end_help'
|
894
894
|
<div style="display: none;" id="help">
|
895
895
|
<img src="empty.png"> Enter a decimal value <i>d</i> into the threshold field and click "Apply"
|
896
896
|
to hide all nodes marked with time values lower than <i>d</i>.<br>
|
@@ -937,7 +937,7 @@ end_help</span>
|
|
937
937
|
<div class="method-source-code" id="print_java_script-source">
|
938
938
|
<pre><span class="ruby-comment"># File lib/ruby-prof/printers/call_stack_printer.rb, line 315</span>
|
939
939
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_java_script</span>
|
940
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value"><<
|
940
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value"><<-'end_java_script'
|
941
941
|
<script type="text/javascript">
|
942
942
|
/*
|
943
943
|
Copyright (C) 2005,2009 Stefan Kaes
|
@@ -974,7 +974,7 @@ function findUlChild(li){
|
|
974
974
|
|
975
975
|
function isLeafNode(li) {
|
976
976
|
var img = li.firstChild;
|
977
|
-
return (img.src.indexOf(
|
977
|
+
return (img.src.indexOf('empty.png') > -1);
|
978
978
|
}
|
979
979
|
|
980
980
|
function hideLI(li) {
|
@@ -982,11 +982,11 @@ function hideLI(li) {
|
|
982
982
|
return;
|
983
983
|
|
984
984
|
var img = li.firstChild;
|
985
|
-
img.src =
|
985
|
+
img.src = 'plus.png';
|
986
986
|
|
987
987
|
var ul = findUlChild(li);
|
988
988
|
if (ul) {
|
989
|
-
ul.style.display =
|
989
|
+
ul.style.display = 'none';
|
990
990
|
hideUL(ul);
|
991
991
|
}
|
992
992
|
}
|
@@ -996,11 +996,11 @@ function showLI(li) {
|
|
996
996
|
return;
|
997
997
|
|
998
998
|
var img = li.firstChild;
|
999
|
-
img.src =
|
999
|
+
img.src = 'minus.png';
|
1000
1000
|
|
1001
1001
|
var ul = findUlChild(li);
|
1002
1002
|
if (ul) {
|
1003
|
-
ul.style.display =
|
1003
|
+
ul.style.display = 'block';
|
1004
1004
|
showUL(ul);
|
1005
1005
|
}
|
1006
1006
|
}
|
@@ -1017,7 +1017,7 @@ function toggleLI(li) {
|
|
1017
1017
|
|
1018
1018
|
function aboveThreshold(text, threshold) {
|
1019
1019
|
var match = text.match(/\d+[.,]\d+/);
|
1020
|
-
return (match && parseFloat(match[0].replace(/,/,
|
1020
|
+
return (match && parseFloat(match[0].replace(/,/, '.'))>=threshold);
|
1021
1021
|
}
|
1022
1022
|
|
1023
1023
|
function setThresholdLI(li, threshold) {
|
@@ -1032,16 +1032,16 @@ function setThresholdLI(li, threshold) {
|
|
1032
1032
|
count = setThresholdUL(ul, threshold);
|
1033
1033
|
}
|
1034
1034
|
if (count>0) {
|
1035
|
-
img.src =
|
1035
|
+
img.src = 'minus.png';
|
1036
1036
|
}
|
1037
1037
|
else {
|
1038
|
-
img.src =
|
1038
|
+
img.src = 'empty.png';
|
1039
1039
|
}
|
1040
1040
|
if (visible) {
|
1041
|
-
li.style.display =
|
1041
|
+
li.style.display = 'block'
|
1042
1042
|
}
|
1043
1043
|
else {
|
1044
|
-
li.style.display =
|
1044
|
+
li.style.display = 'none'
|
1045
1045
|
}
|
1046
1046
|
return visible;
|
1047
1047
|
}
|
@@ -1057,10 +1057,10 @@ function setThresholdUL(node, threshold) {
|
|
1057
1057
|
|
1058
1058
|
var visible = (count > 0) ? 1 : 0;
|
1059
1059
|
if (visible) {
|
1060
|
-
node.style.display =
|
1060
|
+
node.style.display = 'block';
|
1061
1061
|
}
|
1062
1062
|
else {
|
1063
|
-
node.style.display =
|
1063
|
+
node.style.display = 'none';
|
1064
1064
|
}
|
1065
1065
|
return visible;
|
1066
1066
|
}
|
@@ -1068,24 +1068,24 @@ function setThresholdUL(node, threshold) {
|
|
1068
1068
|
function toggleChildren(img, event) {
|
1069
1069
|
event.cancelBubble=true;
|
1070
1070
|
|
1071
|
-
if (img.src.indexOf(
|
1071
|
+
if (img.src.indexOf('empty.png') > -1)
|
1072
1072
|
return;
|
1073
1073
|
|
1074
|
-
var minus = (img.src.indexOf(
|
1074
|
+
var minus = (img.src.indexOf('minus.png') > -1);
|
1075
1075
|
|
1076
1076
|
if (minus) {
|
1077
|
-
img.src =
|
1077
|
+
img.src = 'plus.png';
|
1078
1078
|
}
|
1079
1079
|
else
|
1080
|
-
img.src =
|
1080
|
+
img.src = 'minus.png';
|
1081
1081
|
|
1082
1082
|
var li = img.parentNode;
|
1083
1083
|
var ul = findUlChild(li);
|
1084
1084
|
if (ul) {
|
1085
1085
|
if (minus)
|
1086
|
-
ul.style.display =
|
1086
|
+
ul.style.display = 'none';
|
1087
1087
|
else
|
1088
|
-
ul.style.display =
|
1088
|
+
ul.style.display = 'block';
|
1089
1089
|
}
|
1090
1090
|
if (minus)
|
1091
1091
|
moveSelectionIfNecessary(li);
|
@@ -1093,27 +1093,27 @@ function toggleChildren(img, event) {
|
|
1093
1093
|
|
1094
1094
|
function showChildren(li) {
|
1095
1095
|
var img = li.firstChild;
|
1096
|
-
if (img.src.indexOf(
|
1096
|
+
if (img.src.indexOf('empty.png') > -1)
|
1097
1097
|
return;
|
1098
|
-
img.src =
|
1098
|
+
img.src = 'minus.png';
|
1099
1099
|
|
1100
1100
|
var ul = findUlChild(li);
|
1101
1101
|
if (ul) {
|
1102
|
-
ul.style.display =
|
1102
|
+
ul.style.display = 'block';
|
1103
1103
|
}
|
1104
1104
|
}
|
1105
1105
|
|
1106
1106
|
function setThreshold() {
|
1107
1107
|
var tv = document.getElementById("threshold").value;
|
1108
1108
|
if (tv.match(/[0-9]+([.,][0-9]+)?/)) {
|
1109
|
-
var f = parseFloat(tv.replace(/,/,
|
1109
|
+
var f = parseFloat(tv.replace(/,/, '.'));
|
1110
1110
|
var threads = document.getElementsByName("thread");
|
1111
1111
|
var l = threads.length;
|
1112
1112
|
for ( var i = 0; i < l ; i++ ) {
|
1113
1113
|
setThresholdUL(threads[i], f);
|
1114
1114
|
}
|
1115
1115
|
var p = selectedNode;
|
1116
|
-
while (p && p.style.display
|
1116
|
+
while (p && p.style.display=='none')
|
1117
1117
|
p=p.parentNode.parentNode;
|
1118
1118
|
if (p && p.nodeName=="LI")
|
1119
1119
|
selectNode(p);
|
@@ -1146,11 +1146,11 @@ function toggleHelp(node) {
|
|
1146
1146
|
var help = document.getElementById("help");
|
1147
1147
|
if (node.value == "Show Help") {
|
1148
1148
|
node.value = "Hide Help";
|
1149
|
-
help.style.display =
|
1149
|
+
help.style.display = 'block';
|
1150
1150
|
}
|
1151
1151
|
else {
|
1152
1152
|
node.value = "Show Help";
|
1153
|
-
help.style.display =
|
1153
|
+
help.style.display = 'none';
|
1154
1154
|
}
|
1155
1155
|
}
|
1156
1156
|
|
@@ -1187,7 +1187,7 @@ function selectNode(node, event) {
|
|
1187
1187
|
|
1188
1188
|
function moveUp(){
|
1189
1189
|
var p = selectedNode.previousSibling;
|
1190
|
-
while (p && p.style.display ==
|
1190
|
+
while (p && p.style.display == 'none')
|
1191
1191
|
p = p.previousSibling;
|
1192
1192
|
if (p && p.nodeName == "LI") {
|
1193
1193
|
selectNode(p, null);
|
@@ -1196,7 +1196,7 @@ function moveUp(){
|
|
1196
1196
|
|
1197
1197
|
function moveDown(){
|
1198
1198
|
var p = selectedNode.nextSibling;
|
1199
|
-
while (p && p.style.display ==
|
1199
|
+
while (p && p.style.display == 'none')
|
1200
1200
|
p = p.nextSibling;
|
1201
1201
|
if (p && p.nodeName == "LI") {
|
1202
1202
|
selectNode(p, null);
|
@@ -1223,7 +1223,7 @@ function moveRight(){
|
|
1223
1223
|
function moveForward(){
|
1224
1224
|
if (isLeafNode(selectedNode)) {
|
1225
1225
|
var p = selectedNode;
|
1226
|
-
while ((p.nextSibling == null || p.nextSibling.style.display
|
1226
|
+
while ((p.nextSibling == null || p.nextSibling.style.display=='none') && p.nodeName=="LI") {
|
1227
1227
|
p = p.parentNode.parentNode;
|
1228
1228
|
}
|
1229
1229
|
if (p.nodeName=="LI")
|
@@ -1236,20 +1236,20 @@ function moveForward(){
|
|
1236
1236
|
|
1237
1237
|
function isExpandedNode(li){
|
1238
1238
|
var img = li.firstChild;
|
1239
|
-
return(img.src.indexOf(
|
1239
|
+
return(img.src.indexOf('minus.png')>-1);
|
1240
1240
|
}
|
1241
1241
|
|
1242
1242
|
function moveBackward(){
|
1243
1243
|
var p = selectedNode;
|
1244
1244
|
var q = p.previousSibling;
|
1245
|
-
while (q != null && q.style.display
|
1245
|
+
while (q != null && q.style.display=='none')
|
1246
1246
|
q = q.previousSibling;
|
1247
1247
|
if (q == null) {
|
1248
1248
|
p = p.parentNode.parentNode;
|
1249
1249
|
} else {
|
1250
1250
|
while (!isLeafNode(q) && isExpandedNode(q)) {
|
1251
1251
|
q = findUlChild(q).lastChild;
|
1252
|
-
while (q.style.display
|
1252
|
+
while (q.style.display=='none')
|
1253
1253
|
q = q.previousSibling;
|
1254
1254
|
}
|
1255
1255
|
p = q;
|
@@ -1404,7 +1404,7 @@ end_java_script</span>
|
|
1404
1404
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">expanded</span>
|
1405
1405
|
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">print</span> <span class="ruby-string">"<ul>"</span>
|
1406
1406
|
<span class="ruby-keyword">else</span>
|
1407
|
-
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">print</span> <span class="ruby-string"
|
1407
|
+
<span class="ruby-ivar">@output</span>.<span class="ruby-identifier">print</span> <span class="ruby-string">'<ul style="display:none">'</span>
|
1408
1408
|
<span class="ruby-keyword">end</span>
|
1409
1409
|
<span class="ruby-identifier">kids</span>.<span class="ruby-identifier">sort_by</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-operator">-</span><span class="ruby-identifier">c</span>.<span class="ruby-identifier">total_time</span>}.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">callinfo</span><span class="ruby-operator">|</span>
|
1410
1410
|
<span class="ruby-identifier">print_stack</span> <span class="ruby-identifier">callinfo</span>, <span class="ruby-identifier">total_time</span>
|
@@ -209,7 +209,7 @@ and similar tools.</p>
|
|
209
209
|
for it to be printed out in the report.
|
210
210
|
Default value is 0.
|
211
211
|
|
212
|
-
:print_file - True or false. Specifies if a method
|
212
|
+
:print_file - True or false. Specifies if a method's source
|
213
213
|
file should be printed. Default value if false.</pre>
|
214
214
|
|
215
215
|
|
@@ -226,25 +226,25 @@ and similar tools.</p>
|
|
226
226
|
<span class="ruby-keyword">case</span> <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">measure_mode</span>
|
227
227
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">PROCESS_TIME</span>
|
228
228
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">CLOCKS_PER_SEC</span>;
|
229
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
229
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'process_time'</span>
|
230
230
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">WALL_TIME</span>
|
231
231
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-value">1_000_000</span>
|
232
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
232
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'wall_time'</span>
|
233
233
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:CPU_TIME</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">CPU_TIME</span>
|
234
234
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">cpu_frequency</span>
|
235
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
235
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'cpu_time'</span>
|
236
236
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:ALLOCATIONS</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">ALLOCATIONS</span>
|
237
237
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-value">1</span>
|
238
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
238
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'allocations'</span>
|
239
239
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:MEMORY</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">MEMORY</span>
|
240
240
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-value">1</span>
|
241
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
241
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'memory'</span>
|
242
242
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:GC_RUNS</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">GC_RUNS</span>
|
243
243
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-value">1</span>
|
244
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
244
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'gc_runs'</span>
|
245
245
|
<span class="ruby-keyword">when</span> <span class="ruby-constant">RubyProf</span>.<span class="ruby-identifier">const_defined?</span>(<span class="ruby-value">:GC_TIME</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RubyProf</span><span class="ruby-operator">::</span><span class="ruby-constant">GC_TIME</span>
|
246
246
|
<span class="ruby-ivar">@value_scale</span> = <span class="ruby-value">1000000</span>
|
247
|
-
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string"
|
247
|
+
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'gc_time'</span>
|
248
248
|
<span class="ruby-keyword">else</span>
|
249
249
|
<span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown measure mode: #{RubyProf.measure_mode}"</span>
|
250
250
|
<span class="ruby-keyword">end</span>
|
data/doc/RubyProf/Cmd.html
CHANGED
@@ -285,15 +285,15 @@
|
|
285
285
|
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-string">""</span>
|
286
286
|
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-string">"Options:"</span>
|
287
287
|
|
288
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
289
|
-
<span class="ruby-string"
|
290
|
-
<span class="ruby-string"
|
291
|
-
<span class="ruby-string"
|
292
|
-
<span class="ruby-string"
|
293
|
-
<span class="ruby-string"
|
294
|
-
<span class="ruby-string"
|
295
|
-
<span class="ruby-string"
|
296
|
-
<span class="ruby-string"
|
288
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-p printer'</span>, <span class="ruby-string">'--printer=printer'</span>, [<span class="ruby-value">:flat</span>, <span class="ruby-value">:flat_with_line_numbers</span>, <span class="ruby-value">:graph</span>, <span class="ruby-value">:graph_html</span>, <span class="ruby-value">:call_tree</span>, <span class="ruby-value">:call_stack</span>, <span class="ruby-value">:dot</span>],
|
289
|
+
<span class="ruby-string">'Select a printer:'</span>,
|
290
|
+
<span class="ruby-string">' flat - Prints a flat profile as text (default).'</span>,
|
291
|
+
<span class="ruby-string">' flat_with_line_numbers - same as flat, with line numbers.'</span>,
|
292
|
+
<span class="ruby-string">' graph - Prints a graph profile as text.'</span>,
|
293
|
+
<span class="ruby-string">' graph_html - Prints a graph profile as html.'</span>,
|
294
|
+
<span class="ruby-string">' call_tree - format for KCacheGrind'</span>,
|
295
|
+
<span class="ruby-string">' call_stack - prints a HTML visualization of the call tree'</span>,
|
296
|
+
<span class="ruby-string">' dot - Prints a graph profile as a dot file'</span>
|
297
297
|
) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">printer</span><span class="ruby-operator">|</span>
|
298
298
|
|
299
299
|
|
@@ -315,29 +315,29 @@
|
|
315
315
|
<span class="ruby-keyword">end</span>
|
316
316
|
<span class="ruby-keyword">end</span>
|
317
317
|
|
318
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
319
|
-
<span class="ruby-string"
|
320
|
-
<span class="ruby-string"
|
321
|
-
<span class="ruby-string"
|
318
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-m min_percent'</span>, <span class="ruby-string">'--min_percent=min_percent'</span>, <span class="ruby-constant">Float</span>,
|
319
|
+
<span class="ruby-string">'The minimum percent a method must take before '</span>,
|
320
|
+
<span class="ruby-string">' being included in output reports.'</span>,
|
321
|
+
<span class="ruby-string">' this option is not supported for call tree.'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">min_percent</span><span class="ruby-operator">|</span>
|
322
322
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">min_percent</span> = <span class="ruby-identifier">min_percent</span>
|
323
323
|
<span class="ruby-keyword">end</span>
|
324
324
|
|
325
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
326
|
-
<span class="ruby-string"
|
325
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-f path'</span>, <span class="ruby-string">'--file=path'</span>,
|
326
|
+
<span class="ruby-string">'Output results to a file instead of standard out.'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
327
327
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">file</span> = <span class="ruby-identifier">file</span>
|
328
328
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">old_wd</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
|
329
329
|
<span class="ruby-keyword">end</span>
|
330
330
|
|
331
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
331
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'--mode=measure_mode'</span>,
|
332
332
|
[<span class="ruby-value">:process</span>, <span class="ruby-value">:wall</span>, <span class="ruby-value">:cpu</span>, <span class="ruby-value">:allocations</span>, <span class="ruby-value">:memory</span>, <span class="ruby-value">:gc_runs</span>, <span class="ruby-value">:gc_time</span>],
|
333
|
-
<span class="ruby-string"
|
334
|
-
<span class="ruby-string"
|
335
|
-
<span class="ruby-string"
|
336
|
-
<span class="ruby-string"
|
337
|
-
<span class="ruby-string"
|
338
|
-
<span class="ruby-string"
|
339
|
-
<span class="ruby-string"
|
340
|
-
<span class="ruby-string"
|
333
|
+
<span class="ruby-string">'Select what ruby-prof should measure:'</span>,
|
334
|
+
<span class="ruby-string">' process - Process time (default).'</span>,
|
335
|
+
<span class="ruby-string">' wall - Wall time.'</span>,
|
336
|
+
<span class="ruby-string">' cpu - CPU time (Pentium and PowerPCs only).'</span>,
|
337
|
+
<span class="ruby-string">' allocations - Object allocations (requires patched Ruby interpreter).'</span>,
|
338
|
+
<span class="ruby-string">' memory - Allocated memory in KB (requires patched Ruby interpreter).'</span>,
|
339
|
+
<span class="ruby-string">' gc_runs - Number of garbage collections (requires patched Ruby interpreter).'</span>,
|
340
|
+
<span class="ruby-string">' gc_time - Time spent in garbage collection (requires patched Ruby interpreter).'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">measure_mode</span><span class="ruby-operator">|</span>
|
341
341
|
|
342
342
|
<span class="ruby-keyword">case</span> <span class="ruby-identifier">measure_mode</span>
|
343
343
|
<span class="ruby-keyword">when</span> <span class="ruby-value">:process</span>
|
@@ -357,12 +357,12 @@
|
|
357
357
|
<span class="ruby-keyword">end</span>
|
358
358
|
<span class="ruby-keyword">end</span>
|
359
359
|
|
360
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
361
|
-
<span class="ruby-string"
|
362
|
-
<span class="ruby-string"
|
363
|
-
<span class="ruby-string"
|
364
|
-
<span class="ruby-string"
|
365
|
-
<span class="ruby-string"
|
360
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-s sort_mode'</span>, <span class="ruby-string">'--sort=sort_mode'</span>, [<span class="ruby-value">:total</span>, <span class="ruby-value">:self</span>, <span class="ruby-value">:wait</span>, <span class="ruby-value">:child</span>],
|
361
|
+
<span class="ruby-string">'Select how ruby-prof results should be sorted:'</span>,
|
362
|
+
<span class="ruby-string">' total - Total time'</span>,
|
363
|
+
<span class="ruby-string">' self - Self time'</span>,
|
364
|
+
<span class="ruby-string">' wait - Wait time'</span>,
|
365
|
+
<span class="ruby-string">' child - Child time'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sort_mode</span><span class="ruby-operator">|</span>
|
366
366
|
|
367
367
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">sort_method</span> = <span class="ruby-keyword">case</span> <span class="ruby-identifier">sort_mode</span>
|
368
368
|
<span class="ruby-keyword">when</span> <span class="ruby-value">:total</span>
|
@@ -397,7 +397,7 @@
|
|
397
397
|
<span class="ruby-keyword">end</span>
|
398
398
|
|
399
399
|
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">"-v"</span>,<span class="ruby-string">"Show version, set $VERBOSE to true, profile script if option given"</span>) <span class="ruby-keyword">do</span>
|
400
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-string">"ruby version: "</span> <span class="ruby-operator">+</span> [<span class="ruby-constant">RUBY_PATCHLEVEL</span>, <span class="ruby-constant">RUBY_PLATFORM</span>, <span class="ruby-constant">RUBY_VERSION</span>].<span class="ruby-identifier">join</span>(<span class="ruby-string"
|
400
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">"ruby version: "</span> <span class="ruby-operator">+</span> [<span class="ruby-constant">RUBY_PATCHLEVEL</span>, <span class="ruby-constant">RUBY_PLATFORM</span>, <span class="ruby-constant">RUBY_VERSION</span>].<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</span>)
|
401
401
|
<span class="ruby-identifier">$VERBOSE</span> = <span class="ruby-keyword">true</span>
|
402
402
|
<span class="ruby-keyword">end</span>
|
403
403
|
|
@@ -405,25 +405,25 @@
|
|
405
405
|
<span class="ruby-identifier">$DEBUG</span> = <span class="ruby-keyword">true</span>
|
406
406
|
<span class="ruby-keyword">end</span>
|
407
407
|
|
408
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
408
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-R lib'</span>, <span class="ruby-string">'--require-noprof lib'</span>, <span class="ruby-string">'require a specific library (not profiled)'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lib</span><span class="ruby-operator">|</span>
|
409
409
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">pre_libs</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">lib</span>
|
410
410
|
<span class="ruby-keyword">end</span>
|
411
411
|
|
412
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
412
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-E code'</span>, <span class="ruby-string">'--eval-noprof code'</span>, <span class="ruby-string">'execute the ruby statements (not profiled)'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">code</span><span class="ruby-operator">|</span>
|
413
413
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">pre_execs</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">code</span>
|
414
414
|
<span class="ruby-keyword">end</span>
|
415
415
|
|
416
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
416
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-x regexp'</span>, <span class="ruby-string">'--exclude regexp'</span>, <span class="ruby-string">'exclude methods by regexp (see method elimination)'</span>) <span class="ruby-keyword">do</span><span class="ruby-operator">|</span><span class="ruby-identifier">meth</span><span class="ruby-operator">|</span>
|
417
417
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods</span> <span class="ruby-operator">||=</span> []
|
418
418
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">meth</span>)
|
419
419
|
<span class="ruby-keyword">end</span>
|
420
420
|
|
421
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
421
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'-X file'</span>, <span class="ruby-string">'--exclude-file file'</span>, <span class="ruby-string">'exclude methods by regexp listed in file (see method elimination)'</span>) <span class="ruby-keyword">do</span><span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
422
422
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods_files</span> <span class="ruby-operator">||=</span> []
|
423
423
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods_files</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">file</span>
|
424
424
|
<span class="ruby-keyword">end</span>
|
425
425
|
|
426
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
426
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'--exclude-common-cycles'</span>, <span class="ruby-string">'make common iterators like Integer#times appear inlined'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">meth</span><span class="ruby-operator">|</span>
|
427
427
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods</span> <span class="ruby-operator">||=</span> []
|
428
428
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%w{
|
429
429
|
Integer#times
|
@@ -454,10 +454,10 @@
|
|
454
454
|
Enumerable#collect
|
455
455
|
Enumerable#reduce
|
456
456
|
}</span>
|
457
|
-
<span class="ruby-comment">#TODO: may be the whole Enumerable module should be excluded via
|
457
|
+
<span class="ruby-comment">#TODO: may be the whole Enumerable module should be excluded via 'Enumerable#.*', we need feedback on use cases.</span>
|
458
458
|
<span class="ruby-keyword">end</span>
|
459
459
|
|
460
|
-
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string"
|
460
|
+
<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-string">'--exclude-common-callbacks'</span>, <span class="ruby-string">'make common callbacks invocations like Integer#times appear inlined so you can see call origins in graph'</span>) <span class="ruby-keyword">do</span><span class="ruby-operator">|</span><span class="ruby-identifier">meth</span><span class="ruby-operator">|</span>
|
461
461
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods</span> <span class="ruby-operator">||=</span> []
|
462
462
|
<span class="ruby-identifier">options</span>.<span class="ruby-identifier">eliminate_methods</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%w{
|
463
463
|
Method#call
|
@@ -229,12 +229,12 @@ to use the :min_percent option, for example:</p>
|
|
229
229
|
<span class="ruby-ivar">@output</span> = <span class="ruby-identifier">output</span>
|
230
230
|
<span class="ruby-identifier">setup_options</span>(<span class="ruby-identifier">options</span>)
|
231
231
|
|
232
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-string"
|
232
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">'digraph "Profile" {'</span>
|
233
233
|
<span class="ruby-comment">#puts "label=\"#{mode_name} >=#{min_percent}%\\nTotal: #{total_time}\";"</span>
|
234
234
|
<span class="ruby-identifier">puts</span> <span class="ruby-string">"labelloc=t;"</span>
|
235
235
|
<span class="ruby-identifier">puts</span> <span class="ruby-string">"labeljust=l;"</span>
|
236
236
|
<span class="ruby-identifier">print_threads</span>
|
237
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-string"
|
237
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">'}'</span>
|
238
238
|
<span class="ruby-keyword">end</span></pre>
|
239
239
|
</div>
|
240
240
|
|
@@ -162,14 +162,14 @@ printer.print(STDOUT, {})</pre>
|
|
162
162
|
<span class="ruby-identifier">method</span>.<span class="ruby-identifier">recursive?</span> <span class="ruby-operator">?</span> <span class="ruby-string">"*"</span> <span class="ruby-operator">:</span> <span class="ruby-string">" "</span>, <span class="ruby-comment"># cycle</span>
|
163
163
|
<span class="ruby-identifier">method_name</span>(<span class="ruby-identifier">method</span>) <span class="ruby-comment"># name</span>
|
164
164
|
]
|
165
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">method</span>.<span class="ruby-identifier">source_file</span> <span class="ruby-operator">!=</span> <span class="ruby-string"
|
165
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">method</span>.<span class="ruby-identifier">source_file</span> <span class="ruby-operator">!=</span> <span class="ruby-string">'ruby_runtime'</span>
|
166
166
|
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">" %s:%s"</span> <span class="ruby-operator">%</span> [<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">method</span>.<span class="ruby-identifier">source_file</span>), <span class="ruby-identifier">method</span>.<span class="ruby-identifier">line</span>]
|
167
167
|
<span class="ruby-keyword">end</span>
|
168
168
|
<span class="ruby-ivar">@output</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"\n\tcalled from: "</span>
|
169
169
|
|
170
|
-
<span class="ruby-comment"># make sure they
|
170
|
+
<span class="ruby-comment"># make sure they're unique</span>
|
171
171
|
<span class="ruby-identifier">method</span>.<span class="ruby-identifier">call_infos</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">ci</span><span class="ruby-operator">|</span>
|
172
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">target</span>.<span class="ruby-identifier">source_file</span> <span class="ruby-operator">!=</span> <span class="ruby-string"
|
172
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">target</span>.<span class="ruby-identifier">source_file</span> <span class="ruby-operator">!=</span> <span class="ruby-string">'ruby_runtime'</span>
|
173
173
|
[<span class="ruby-identifier">method_name</span>(<span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">target</span>), <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">target</span>.<span class="ruby-identifier">source_file</span>), <span class="ruby-identifier">ci</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">target</span>.<span class="ruby-identifier">line</span>]
|
174
174
|
<span class="ruby-keyword">else</span>
|
175
175
|
<span class="ruby-keyword">nil</span>
|