rubybreaker 0.0.6 → 0.0.7

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 (76) hide show
  1. data/NEWS +3 -0
  2. data/README.md +1 -2
  3. data/Rakefile +1 -0
  4. data/TODO +0 -8
  5. data/TUTORIAL.md +33 -7
  6. data/VERSION +1 -1
  7. data/lib/rubybreaker.rb +12 -4
  8. data/lib/rubybreaker/debug/error.rb +1 -1
  9. data/lib/rubybreaker/runtime.rb +16 -12
  10. data/lib/rubybreaker/runtime/monitor.rb +116 -84
  11. data/lib/rubybreaker/runtime/pluggable.rb +8 -2
  12. data/lib/rubybreaker/runtime/type_system.rb +77 -10
  13. data/lib/rubybreaker/task.rb +6 -0
  14. data/lib/rubybreaker/util.rb +23 -0
  15. data/test/integrated/tc_checking.rb +71 -0
  16. data/test/integrated/tc_class_methods.rb +14 -4
  17. data/test/testtask/sample.rb +1 -0
  18. data/test/testtask/tc_testtask.rb +14 -2
  19. data/test/ts_integrated.rb +1 -0
  20. data/webpage/index.html +1 -2
  21. data/webpage/rdoc/Object.html +0 -2
  22. data/webpage/rdoc/Rake.html +0 -2
  23. data/webpage/rdoc/Rake/RubyBreakerTestTask.html +19 -5
  24. data/webpage/rdoc/RubyBreaker.html +35 -3
  25. data/webpage/rdoc/RubyBreaker/Breakable.html +1 -3
  26. data/webpage/rdoc/RubyBreaker/Broken.html +1 -3
  27. data/webpage/rdoc/RubyBreaker/Context.html +0 -2
  28. data/webpage/rdoc/RubyBreaker/Errors.html +0 -2
  29. data/webpage/rdoc/RubyBreaker/Errors/InternalError.html +0 -2
  30. data/webpage/rdoc/RubyBreaker/Errors/InvalidSubtypeCheck.html +0 -2
  31. data/webpage/rdoc/RubyBreaker/Errors/InvalidTypeConstruction.html +0 -2
  32. data/webpage/rdoc/RubyBreaker/Errors/SubtypeFailure.html +0 -2
  33. data/webpage/rdoc/RubyBreaker/Errors/TypeError.html +0 -2
  34. data/webpage/rdoc/RubyBreaker/Errors/UserError.html +2 -4
  35. data/webpage/rdoc/RubyBreaker/ObjectPosition.html +0 -2
  36. data/webpage/rdoc/RubyBreaker/Position.html +0 -2
  37. data/webpage/rdoc/RubyBreaker/RDocSupport.html +0 -2
  38. data/webpage/rdoc/RubyBreaker/RubyTypeUtils.html +0 -2
  39. data/webpage/rdoc/RubyBreaker/Runtime.html +39 -6
  40. data/webpage/rdoc/RubyBreaker/Runtime/Inspector.html +0 -2
  41. data/webpage/rdoc/RubyBreaker/Runtime/MethodInfo.html +0 -2
  42. data/webpage/rdoc/RubyBreaker/Runtime/Monitor.html +295 -28
  43. data/webpage/rdoc/RubyBreaker/Runtime/MonitorInstaller.html +30 -43
  44. data/webpage/rdoc/RubyBreaker/Runtime/MonitorSwitch.html +4 -6
  45. data/webpage/rdoc/RubyBreaker/Runtime/ObjectWrapper.html +0 -2
  46. data/webpage/rdoc/RubyBreaker/Runtime/Pluggable.html +78 -18
  47. data/webpage/rdoc/RubyBreaker/Runtime/TypeSigParser.html +0 -2
  48. data/webpage/rdoc/RubyBreaker/Runtime/TypeSigUnparser.html +0 -2
  49. data/webpage/rdoc/RubyBreaker/Runtime/TypeSystem.html +172 -28
  50. data/webpage/rdoc/RubyBreaker/TypeComparer.html +0 -2
  51. data/webpage/rdoc/RubyBreaker/TypeDefs.html +0 -2
  52. data/webpage/rdoc/RubyBreaker/TypeDefs/AnyType.html +0 -2
  53. data/webpage/rdoc/RubyBreaker/TypeDefs/BlockType.html +0 -2
  54. data/webpage/rdoc/RubyBreaker/TypeDefs/DuckType.html +0 -2
  55. data/webpage/rdoc/RubyBreaker/TypeDefs/FusionType.html +0 -2
  56. data/webpage/rdoc/RubyBreaker/TypeDefs/MethodListType.html +0 -2
  57. data/webpage/rdoc/RubyBreaker/TypeDefs/MethodType.html +0 -2
  58. data/webpage/rdoc/RubyBreaker/TypeDefs/NilType.html +0 -2
  59. data/webpage/rdoc/RubyBreaker/TypeDefs/NominalType.html +0 -2
  60. data/webpage/rdoc/RubyBreaker/TypeDefs/OptionalType.html +0 -2
  61. data/webpage/rdoc/RubyBreaker/TypeDefs/OrType.html +0 -2
  62. data/webpage/rdoc/RubyBreaker/TypeDefs/SelfType.html +0 -2
  63. data/webpage/rdoc/RubyBreaker/TypeDefs/Type.html +0 -2
  64. data/webpage/rdoc/RubyBreaker/TypeDefs/VarLengthType.html +0 -2
  65. data/webpage/rdoc/RubyBreaker/TypeUnparser.html +0 -2
  66. data/webpage/rdoc/RubyBreaker/Typing.html +0 -2
  67. data/webpage/rdoc/RubyBreaker/Util.html +80 -4
  68. data/webpage/rdoc/Test.html +0 -2
  69. data/webpage/rdoc/Test/Unit.html +0 -2
  70. data/webpage/rdoc/created.rid +12 -12
  71. data/webpage/rdoc/index.html +0 -2
  72. data/webpage/rdoc/js/search_index.js +1 -1
  73. data/webpage/rdoc/table_of_contents.html +53 -34
  74. data/webpage/tutorial.html +36 -7
  75. metadata +8 -11
  76. data/webpage/rdoc/RubyBreaker/Runtime/MonitorUtils.html +0 -402
@@ -104,6 +104,8 @@
104
104
 
105
105
  <li><a href="#method-c-breakable">::breakable</a>
106
106
 
107
+ <li><a href="#method-c-check">::check</a>
108
+
107
109
  <li><a href="#method-c-defined_logger-3F">::defined_logger?</a>
108
110
 
109
111
  <li><a href="#method-c-error">::error</a>
@@ -170,8 +172,6 @@
170
172
 
171
173
  <li><a href="./RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
172
174
 
173
- <li><a href="./RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
174
-
175
175
  <li><a href="./RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
176
176
 
177
177
  <li><a href="./RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -372,6 +372,36 @@ of entry.</p>
372
372
  </div><!-- breakable-method -->
373
373
 
374
374
 
375
+ <div id="method-c-check" class="method-detail ">
376
+
377
+ <div class="method-heading">
378
+ <span class="method-name">check</span><span
379
+ class="method-args">(*mods)</span>
380
+ <span class="method-click-advice">click to toggle source</span>
381
+ </div>
382
+
383
+
384
+ <div class="method-description">
385
+
386
+
387
+
388
+
389
+
390
+ <div class="method-source-code" id="check-source">
391
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 97</span>
392
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">check</span>(*<span class="ruby-identifier">mods</span>)
393
+ <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">check</span>(*<span class="ruby-identifier">mods</span>)
394
+ <span class="ruby-keyword">end</span></pre>
395
+ </div><!-- check-source -->
396
+
397
+ </div>
398
+
399
+
400
+
401
+
402
+ </div><!-- check-method -->
403
+
404
+
375
405
  <div id="method-c-defined_logger-3F" class="method-detail ">
376
406
 
377
407
  <div class="method-heading">
@@ -527,7 +557,7 @@ href="RubyBreaker.html">RubyBreaker</a> as a shell program.</p>
527
557
 
528
558
 
529
559
  <div class="method-source-code" id="run-source">
530
- <pre><span class="ruby-comment"># File lib/rubybreaker.rb, line 165</span>
560
+ <pre><span class="ruby-comment"># File lib/rubybreaker.rb, line 171</span>
531
561
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">run</span>(*<span class="ruby-identifier">mods</span>)
532
562
  <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">setup_logger</span>() <span class="ruby-keyword">unless</span> <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">defined_logger?</span>()
533
563
 
@@ -538,12 +568,14 @@ href="RubyBreaker.html">RubyBreaker</a> as a shell program.</p>
538
568
  <span class="ruby-identifier">task</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">task</span>
539
569
  <span class="ruby-constant">OPTION_PARSER</span>.<span class="ruby-identifier">parse</span>(*<span class="ruby-identifier">task</span>[<span class="ruby-value">:rubybreaker_opts</span>])
540
570
  <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">break</span>(*<span class="ruby-identifier">task</span>[<span class="ruby-value">:break</span>])
571
+ <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">check</span>(*<span class="ruby-identifier">task</span>[<span class="ruby-value">:check</span>])
541
572
  <span class="ruby-identifier">task_name</span> = <span class="ruby-identifier">task</span>[<span class="ruby-value">:name</span>]
542
573
  <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">verbose</span>(<span class="ruby-string">&quot;Done reading task information&quot;</span>)
543
574
  <span class="ruby-identifier">io_file</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">io_file</span>(<span class="ruby-identifier">task_name</span>)
544
575
  <span class="ruby-keyword">elsif</span> <span class="ruby-constant">OPTIONS</span>[<span class="ruby-value">:prog</span>] <span class="ruby-comment"># running in shell mode </span>
545
576
  <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">break</span>(*<span class="ruby-identifier">mods</span>) <span class="ruby-comment"># should not happen but for backward-compatibility</span>
546
577
  <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">break</span>(*<span class="ruby-constant">OPTIONS</span>[<span class="ruby-value">:break</span>])
578
+ <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">check</span>(*<span class="ruby-constant">OPTIONS</span>[<span class="ruby-value">:check</span>])
547
579
  <span class="ruby-identifier">io_file</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">io_file</span>(<span class="ruby-constant">OPTIONS</span>[<span class="ruby-value">:prog_file</span>])
548
580
  <span class="ruby-keyword">else</span>
549
581
  <span class="ruby-comment"># Otherwise, assume there are no explicit IO files.</span>
@@ -120,8 +120,6 @@
120
120
 
121
121
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
122
122
 
123
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
124
-
125
123
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
126
124
 
127
125
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -231,7 +229,7 @@ or +<a href="../RubyBreaker.html#method-c-run">RubyBreaker.run</a>+ method</p>
231
229
 
232
230
 
233
231
  <div class="method-source-code" id="included-source">
234
- <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 100</span>
232
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 104</span>
235
233
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">included</span>(<span class="ruby-identifier">mod</span>)
236
234
  <span class="ruby-constant">Runtime</span><span class="ruby-operator">::</span><span class="ruby-constant">BREAKABLES</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">mod</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">eigen_class</span>(<span class="ruby-identifier">mod</span>)
237
235
  <span class="ruby-keyword">end</span></pre>
@@ -120,8 +120,6 @@
120
120
 
121
121
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
122
122
 
123
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
124
-
125
123
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
126
124
 
127
125
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -227,7 +225,7 @@
227
225
 
228
226
 
229
227
  <div class="method-source-code" id="included-source">
230
- <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 107</span>
228
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 111</span>
231
229
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">included</span>(<span class="ruby-identifier">mod</span>)
232
230
  <span class="ruby-comment"># Runtime.broken(mod)</span>
233
231
  <span class="ruby-keyword">end</span></pre>
@@ -132,8 +132,6 @@
132
132
 
133
133
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
134
134
 
135
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
136
-
137
135
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
138
136
 
139
137
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -110,8 +110,6 @@
110
110
 
111
111
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
112
112
 
113
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
114
-
115
113
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
116
114
 
117
115
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -126,8 +126,6 @@
126
126
 
127
127
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
128
128
 
129
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
130
-
131
129
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
132
130
 
133
131
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -126,8 +126,6 @@
126
126
 
127
127
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
128
128
 
129
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
130
-
131
129
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
132
130
 
133
131
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -116,8 +116,6 @@
116
116
 
117
117
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
118
118
 
119
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
120
-
121
119
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
122
120
 
123
121
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -116,8 +116,6 @@
116
116
 
117
117
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
118
118
 
119
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
120
-
121
119
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
122
120
 
123
121
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -116,8 +116,6 @@
116
116
 
117
117
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
118
118
 
119
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
120
-
121
119
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
122
120
 
123
121
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -126,8 +126,6 @@
126
126
 
127
127
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
128
128
 
129
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
130
-
131
129
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
132
130
 
133
131
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -224,7 +222,7 @@ errors tend to generate over multiple points in the program.</p>
224
222
 
225
223
  <div class="method-heading">
226
224
  <span class="method-name">new</span><span
227
- class="method-args">(msg, ctx)</span>
225
+ class="method-args">(msg, ctx=nil)</span>
228
226
  <span class="method-click-advice">click to toggle source</span>
229
227
  </div>
230
228
 
@@ -237,7 +235,7 @@ errors tend to generate over multiple points in the program.</p>
237
235
 
238
236
  <div class="method-source-code" id="new-source">
239
237
  <pre><span class="ruby-comment"># File lib/rubybreaker/debug/error.rb, line 44</span>
240
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">msg</span>, <span class="ruby-identifier">ctx</span>)
238
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">msg</span>, <span class="ruby-identifier">ctx</span>=<span class="ruby-keyword">nil</span>)
241
239
  <span class="ruby-keyword">super</span>(<span class="ruby-identifier">msg</span>)
242
240
  <span class="ruby-ivar">@ctx</span> = <span class="ruby-identifier">ctx</span>
243
241
  <span class="ruby-keyword">end</span></pre>
@@ -128,8 +128,6 @@
128
128
 
129
129
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
130
130
 
131
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
132
-
133
131
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
134
132
 
135
133
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -134,8 +134,6 @@
134
134
 
135
135
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
136
136
 
137
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
138
-
139
137
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
140
138
 
141
139
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -134,8 +134,6 @@
134
134
 
135
135
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
136
136
 
137
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
138
-
139
137
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
140
138
 
141
139
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -122,8 +122,6 @@
122
122
 
123
123
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
124
124
 
125
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
126
-
127
125
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
128
126
 
129
127
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -77,6 +77,8 @@
77
77
 
78
78
  <li><a href="#method-c-breakable">::breakable</a>
79
79
 
80
+ <li><a href="#method-c-check">::check</a>
81
+
80
82
  <li><a href="#method-c-instrument">::instrument</a>
81
83
 
82
84
  </ul>
@@ -133,8 +135,6 @@
133
135
 
134
136
  <li><a href="../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
135
137
 
136
- <li><a href="../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
137
-
138
138
  <li><a href="../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
139
139
 
140
140
  <li><a href="../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -202,6 +202,8 @@
202
202
 
203
203
  <div id="description" class="description">
204
204
 
205
+ <p>This module contains things that are needed at runtime.</p>
206
+
205
207
  </div><!-- description -->
206
208
 
207
209
 
@@ -235,7 +237,7 @@ href="../RubyBreaker.html">RubyBreaker</a> code.</p>
235
237
 
236
238
  <dt id="DEFAULT_TYPE_SYSTEM">DEFAULT_TYPE_SYSTEM
237
239
 
238
- <dd class="description">
240
+ <dd class="description"><p>The default type system for <a href="../RubyBreaker.html">RubyBreaker</a></p>
239
241
 
240
242
 
241
243
  <dt id="GLOBAL_MONITOR_SWITCH">GLOBAL_MONITOR_SWITCH
@@ -293,12 +295,12 @@ non-breakable modules/classes.</p>
293
295
  <div class="method-description">
294
296
 
295
297
  <p>This method instruments the specified modules/classes at the time of the
296
- call.</p>
298
+ call so they are monitored for type documentation.</p>
297
299
 
298
300
 
299
301
 
300
302
  <div class="method-source-code" id="break-source">
301
- <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 60</span>
303
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 54</span>
302
304
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-keyword">break</span>(*<span class="ruby-identifier">mods</span>)
303
305
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">install</span>(<span class="ruby-value">:break</span>, *<span class="ruby-identifier">mods</span>)
304
306
  <span class="ruby-keyword">end</span></pre>
@@ -344,6 +346,37 @@ method instead</p>
344
346
  </div><!-- breakable-method -->
345
347
 
346
348
 
349
+ <div id="method-c-check" class="method-detail ">
350
+
351
+ <div class="method-heading">
352
+ <span class="method-name">check</span><span
353
+ class="method-args">(*mods)</span>
354
+ <span class="method-click-advice">click to toggle source</span>
355
+ </div>
356
+
357
+
358
+ <div class="method-description">
359
+
360
+ <p>This method instruments the specified modules/classes at the time of the
361
+ call so that they are type checked during runtime.</p>
362
+
363
+
364
+
365
+ <div class="method-source-code" id="check-source">
366
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime.rb, line 60</span>
367
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">check</span>(*<span class="ruby-identifier">mods</span>)
368
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">install</span>(<span class="ruby-value">:check</span>, *<span class="ruby-identifier">mods</span>)
369
+ <span class="ruby-keyword">end</span></pre>
370
+ </div><!-- check-source -->
371
+
372
+ </div>
373
+
374
+
375
+
376
+
377
+ </div><!-- check-method -->
378
+
379
+
347
380
  <div id="method-c-instrument" class="method-detail ">
348
381
 
349
382
  <div class="method-heading">
@@ -365,7 +398,7 @@ method instead</p>
365
398
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">instrument</span>()
366
399
  <span class="ruby-constant">BREAKABLES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mod</span><span class="ruby-operator">|</span>
367
400
  <span class="ruby-comment"># Duplicate checks in place in these calls.</span>
368
- <span class="ruby-constant">MonitorInstaller</span>.<span class="ruby-identifier">install_monitor</span>(<span class="ruby-identifier">mod</span>)
401
+ <span class="ruby-constant">MonitorInstaller</span>.<span class="ruby-identifier">install_monitor</span>(<span class="ruby-value">:break</span>, <span class="ruby-identifier">mod</span>)
369
402
  <span class="ruby-keyword">end</span>
370
403
  <span class="ruby-keyword">end</span></pre>
371
404
  </div><!-- instrument-source -->
@@ -126,8 +126,6 @@
126
126
 
127
127
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
128
128
 
129
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
130
-
131
129
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
132
130
 
133
131
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -126,8 +126,6 @@
126
126
 
127
127
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
128
128
 
129
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
130
-
131
129
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
132
130
 
133
131
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -70,11 +70,21 @@
70
70
 
71
71
  <ul class="link-list">
72
72
 
73
+ <li><a href="#method-c-get_alt_meth_name">::get_alt_meth_name</a>
74
+
75
+ <li><a href="#method-c-get_orig_meth_name">::get_orig_meth_name</a>
76
+
73
77
  <li><a href="#method-c-new">::new</a>
74
78
 
75
- <li><a href="#method-i-monitor_after_method">#monitor_after_method</a>
79
+ <li><a href="#method-c-route">::route</a>
80
+
81
+ <li><a href="#method-i-break_after_method">#break_after_method</a>
82
+
83
+ <li><a href="#method-i-break_before_method">#break_before_method</a>
76
84
 
77
- <li><a href="#method-i-monitor_before_method">#monitor_before_method</a>
85
+ <li><a href="#method-i-check_after_method">#check_after_method</a>
86
+
87
+ <li><a href="#method-i-check_before_method">#check_before_method</a>
78
88
 
79
89
  </ul>
80
90
  </nav>
@@ -130,8 +140,6 @@
130
140
 
131
141
  <li><a href="../../RubyBreaker/Runtime/MonitorSwitch.html">RubyBreaker::Runtime::MonitorSwitch</a>
132
142
 
133
- <li><a href="../../RubyBreaker/Runtime/MonitorUtils.html">RubyBreaker::Runtime::MonitorUtils</a>
134
-
135
143
  <li><a href="../../RubyBreaker/Runtime/ObjectWrapper.html">RubyBreaker::Runtime::ObjectWrapper</a>
136
144
 
137
145
  <li><a href="../../RubyBreaker/Runtime/Pluggable.html">RubyBreaker::Runtime::Pluggable</a>
@@ -229,7 +237,7 @@ actual work of gathering type information.</p>
229
237
 
230
238
  <div class="method-description">
231
239
 
232
- <p>attr_accessor :mod</p>
240
+
233
241
 
234
242
  </div>
235
243
  </div>
@@ -243,11 +251,71 @@ actual work of gathering type information.</p>
243
251
  <h3 class="section-header">Public Class Methods</h3>
244
252
 
245
253
 
254
+ <div id="method-c-get_alt_meth_name" class="method-detail ">
255
+
256
+ <div class="method-heading">
257
+ <span class="method-name">get_alt_meth_name</span><span
258
+ class="method-args">(meth_name)</span>
259
+ <span class="method-click-advice">click to toggle source</span>
260
+ </div>
261
+
262
+
263
+ <div class="method-description">
264
+
265
+ <p>This method returns the alternative (renamed) method name</p>
266
+
267
+
268
+
269
+ <div class="method-source-code" id="get_alt_meth_name-source">
270
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 145</span>
271
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">get_alt_meth_name</span>(<span class="ruby-identifier">meth_name</span>)
272
+ <span class="ruby-keyword">return</span> <span class="ruby-node">&quot;__#{meth_name}&quot;</span>
273
+ <span class="ruby-keyword">end</span></pre>
274
+ </div><!-- get_alt_meth_name-source -->
275
+
276
+ </div>
277
+
278
+
279
+
280
+
281
+ </div><!-- get_alt_meth_name-method -->
282
+
283
+
284
+ <div id="method-c-get_orig_meth_name" class="method-detail ">
285
+
286
+ <div class="method-heading">
287
+ <span class="method-name">get_orig_meth_name</span><span
288
+ class="method-args">(meth_name)</span>
289
+ <span class="method-click-advice">click to toggle source</span>
290
+ </div>
291
+
292
+
293
+ <div class="method-description">
294
+
295
+ <p>This method returns the original method name</p>
296
+
297
+
298
+
299
+ <div class="method-source-code" id="get_orig_meth_name-source">
300
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 150</span>
301
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">get_orig_meth_name</span>(<span class="ruby-identifier">meth_name</span>)
302
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">meth_name</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
303
+ <span class="ruby-keyword">end</span></pre>
304
+ </div><!-- get_orig_meth_name-source -->
305
+
306
+ </div>
307
+
308
+
309
+
310
+
311
+ </div><!-- get_orig_meth_name-method -->
312
+
313
+
246
314
  <div id="method-c-new" class="method-detail ">
247
315
 
248
316
  <div class="method-heading">
249
317
  <span class="method-name">new</span><span
250
- class="method-args">(mod, pluggable)</span>
318
+ class="method-args">(pluggable)</span>
251
319
  <span class="method-click-advice">click to toggle source</span>
252
320
  </div>
253
321
 
@@ -259,9 +327,8 @@ actual work of gathering type information.</p>
259
327
 
260
328
 
261
329
  <div class="method-source-code" id="new-source">
262
- <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 28</span>
263
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">mod</span>, <span class="ruby-identifier">pluggable</span>)
264
- <span class="ruby-comment"># @mod = mod</span>
330
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 154</span>
331
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">pluggable</span>)
265
332
  <span class="ruby-ivar">@pluggable</span> = <span class="ruby-identifier">pluggable</span>
266
333
  <span class="ruby-keyword">end</span></pre>
267
334
  </div><!-- new-source -->
@@ -274,16 +341,217 @@ actual work of gathering type information.</p>
274
341
  </div><!-- new-method -->
275
342
 
276
343
 
344
+ <div id="method-c-route" class="method-detail ">
345
+
346
+ <div class="method-heading">
347
+ <span class="method-name">route</span><span
348
+ class="method-args">(route_type, obj, meth_name, *args, &blk)</span>
349
+ <span class="method-click-advice">click to toggle source</span>
350
+ </div>
351
+
352
+
353
+ <div class="method-description">
354
+
355
+ <p>This will do the actual routing work for a particular “monitored” method
356
+ call.</p>
357
+ <dl class="rdoc-list note-list"><dt>route_type
358
+ <dd>
359
+ <p>:break or :check</p>
360
+ </dd><dt>obj
361
+ <dd>
362
+ <p>is the object receiving the message; is never wrapped object</p>
363
+ </dd><dt>meth_name
364
+ <dd><dl class="rdoc-list note-list"><dt>is the original method name being called args
365
+ <dd>
366
+ <p>is a</p>
367
+ </dd></dl>
368
+ </dd><dt>list of arguments for the original method call blk
369
+ <dd>
370
+ <p>is the block</p>
371
+ </dd></dl>
372
+
373
+ <p>argument for the original method call</p>
374
+
375
+
376
+
377
+ <div class="method-source-code" id="route-source">
378
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 47</span>
379
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">route</span>(<span class="ruby-identifier">route_type</span>, <span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_name</span>, *<span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">blk</span>)
380
+
381
+ <span class="ruby-comment"># remember the switch mode before turning it off</span>
382
+ <span class="ruby-identifier">switch</span> = <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">switch</span>
383
+
384
+ <span class="ruby-comment"># turn off the monitor so we do not fall into an infinite loop</span>
385
+ <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">turn_off</span>()
386
+
387
+ <span class="ruby-comment"># use symbol instead of string throughout this code</span>
388
+ <span class="ruby-identifier">meth_name</span> = <span class="ruby-value">:&quot;#{meth_name}&quot;</span>
389
+
390
+ <span class="ruby-comment"># first, get the context right</span>
391
+ <span class="ruby-comment"># notice the argument 2 to the caller!</span>
392
+ <span class="ruby-comment">#</span>
393
+ <span class="ruby-comment"># CONTEXT.push(obj, meth_name, </span>
394
+ <span class="ruby-comment"># Position.convert_caller_to_pos(caller(2)))</span>
395
+ <span class="ruby-constant">CONTEXT</span>.<span class="ruby-identifier">push</span>(<span class="ruby-constant">Position</span>.<span class="ruby-identifier">convert_caller_to_pos</span>(<span class="ruby-identifier">caller</span>(<span class="ruby-value">2</span>)))
396
+
397
+ <span class="ruby-comment"># this is what the renamed method</span>
398
+ <span class="ruby-identifier">stub_meth_name</span> = <span class="ruby-identifier">get_alt_meth_name</span>(<span class="ruby-identifier">meth_name</span>)
399
+
400
+ <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">log</span>(<span class="ruby-node">&quot;Route to #{stub_meth_name}&quot;</span>, <span class="ruby-value">:debug</span>, <span class="ruby-constant">CONTEXT</span>)
401
+
402
+ <span class="ruby-comment"># short-circuit if switch was off--i.e., no monitoring</span>
403
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">switch</span>
404
+ <span class="ruby-identifier">retval</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">stub_meth_name</span>.<span class="ruby-identifier">to_sym</span>,*<span class="ruby-identifier">args</span>,&amp;<span class="ruby-identifier">blk</span>)
405
+ <span class="ruby-constant">CONTEXT</span>.<span class="ruby-identifier">pop</span>() <span class="ruby-comment"># do not forget to pop the context before returning</span>
406
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">retval</span>
407
+ <span class="ruby-keyword">end</span>
408
+
409
+ <span class="ruby-identifier">is_obj_mod</span> = (<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Class</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Module</span>)
410
+ <span class="ruby-identifier">mod</span> = <span class="ruby-identifier">is_obj_mod</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Runtime</span>.<span class="ruby-identifier">eigen_class</span>(<span class="ruby-identifier">obj</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">class</span>
411
+
412
+ <span class="ruby-comment"># mm = get_module_monitor(mod) unless is_obj_mod</span>
413
+ <span class="ruby-identifier">mm</span> = <span class="ruby-constant">MONITOR_MAP</span>[<span class="ruby-identifier">mod</span>]
414
+
415
+ <span class="ruby-comment"># There is something wrong if there isn't a module monitor</span>
416
+ <span class="ruby-comment"># associated with the call.</span>
417
+ <span class="ruby-comment"># raise Exception if mm == nil || !mm.include?(meth_name)</span>
418
+
419
+ <span class="ruby-identifier">meth_info</span> = <span class="ruby-constant">MethodInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">meth_name</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">blk</span>, <span class="ruby-keyword">nil</span>)
420
+
421
+ <span class="ruby-keyword">begin</span>
422
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">route_type</span>
423
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:break</span>
424
+ <span class="ruby-identifier">mm</span>.<span class="ruby-identifier">break_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
425
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:check</span>
426
+ <span class="ruby-identifier">mm</span>.<span class="ruby-identifier">check_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
427
+ <span class="ruby-keyword">end</span>
428
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">TypeError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
429
+ <span class="ruby-comment"># Trap it, turn on the global monitor and then re-raise the</span>
430
+ <span class="ruby-comment"># exception</span>
431
+ <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">turn_on</span>()
432
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
433
+ <span class="ruby-keyword">end</span>
434
+
435
+ <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">log</span>(<span class="ruby-string">&quot;break_before_method ended&quot;</span>)
436
+
437
+ <span class="ruby-comment"># we are going to turn the switch back on</span>
438
+ <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">turn_on</span>()
439
+
440
+ <span class="ruby-comment"># call the original method which was renamed</span>
441
+ <span class="ruby-identifier">retval</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">stub_meth_name</span>.<span class="ruby-identifier">to_sym</span>, *<span class="ruby-identifier">meth_info</span>.<span class="ruby-identifier">args</span>,
442
+ &amp;<span class="ruby-identifier">meth_info</span>.<span class="ruby-identifier">blk</span>)
443
+
444
+ <span class="ruby-comment"># turn it off</span>
445
+ <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">turn_off</span>()
446
+
447
+ <span class="ruby-identifier">meth_info</span>.<span class="ruby-identifier">ret</span> = <span class="ruby-identifier">retval</span>
448
+
449
+ <span class="ruby-keyword">begin</span>
450
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">route_type</span>
451
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:break</span>
452
+ <span class="ruby-identifier">mm</span>.<span class="ruby-identifier">break_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
453
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:check</span>
454
+ <span class="ruby-identifier">mm</span>.<span class="ruby-identifier">check_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
455
+ <span class="ruby-keyword">end</span>
456
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">TypeError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
457
+ <span class="ruby-comment"># Trap it, turn on the global monitor and then re-raise the</span>
458
+ <span class="ruby-comment"># exception</span>
459
+ <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">turn_on</span>()
460
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
461
+ <span class="ruby-keyword">end</span>
462
+
463
+ <span class="ruby-identifier">retval</span> = <span class="ruby-identifier">meth_info</span>.<span class="ruby-identifier">ret</span> <span class="ruby-comment"># Return value may have been altered by the</span>
464
+ <span class="ruby-comment"># after_method monitoring code</span>
465
+
466
+ <span class="ruby-comment"># things are done in this context. pop it off.</span>
467
+ <span class="ruby-constant">CONTEXT</span>.<span class="ruby-identifier">pop</span>()
468
+
469
+ <span class="ruby-comment"># it is always the case that the switch was off when this particular</span>
470
+ <span class="ruby-comment"># call was made. (Otherwise, it would have quit somewhere above</span>
471
+ <span class="ruby-constant">GLOBAL_MONITOR_SWITCH</span>.<span class="ruby-identifier">turn_on</span>()
472
+
473
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">retval</span> <span class="ruby-comment"># always return the return value</span>
474
+ <span class="ruby-keyword">end</span></pre>
475
+ </div><!-- route-source -->
476
+
477
+ </div>
478
+
479
+
480
+
481
+
482
+ </div><!-- route-method -->
483
+
484
+
277
485
  </section><!-- public-class-method-details -->
278
486
 
279
487
  <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
280
488
  <h3 class="section-header">Public Instance Methods</h3>
281
489
 
282
490
 
283
- <div id="method-i-monitor_after_method" class="method-detail ">
491
+ <div id="method-i-break_after_method" class="method-detail ">
492
+
493
+ <div class="method-heading">
494
+ <span class="method-name">break_after_method</span><span
495
+ class="method-args">(obj, meth_info)</span>
496
+ <span class="method-click-advice">click to toggle source</span>
497
+ </div>
498
+
499
+
500
+ <div class="method-description">
501
+
502
+ <p>This method is invoked after the original method is executed.</p>
503
+
504
+
505
+
506
+ <div class="method-source-code" id="break_after_method-source">
507
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 174</span>
508
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">break_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
509
+ <span class="ruby-ivar">@pluggable</span>.<span class="ruby-identifier">break_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
510
+ <span class="ruby-keyword">end</span></pre>
511
+ </div><!-- break_after_method-source -->
512
+
513
+ </div>
514
+
515
+
516
+
517
+
518
+ </div><!-- break_after_method-method -->
519
+
520
+
521
+ <div id="method-i-break_before_method" class="method-detail ">
522
+
523
+ <div class="method-heading">
524
+ <span class="method-name">break_before_method</span><span
525
+ class="method-args">(obj, meth_info)</span>
526
+ <span class="method-click-advice">click to toggle source</span>
527
+ </div>
528
+
529
+
530
+ <div class="method-description">
531
+
532
+ <p>This method is invoked before the original method is executed.</p>
533
+
534
+
535
+
536
+ <div class="method-source-code" id="break_before_method-source">
537
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 169</span>
538
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">break_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
539
+ <span class="ruby-ivar">@pluggable</span>.<span class="ruby-identifier">break_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
540
+ <span class="ruby-keyword">end</span></pre>
541
+ </div><!-- break_before_method-source -->
542
+
543
+ </div>
544
+
545
+
546
+
547
+
548
+ </div><!-- break_before_method-method -->
549
+
550
+
551
+ <div id="method-i-check_after_method" class="method-detail ">
284
552
 
285
553
  <div class="method-heading">
286
- <span class="method-name">monitor_after_method</span><span
554
+ <span class="method-name">check_after_method</span><span
287
555
  class="method-args">(obj, meth_info)</span>
288
556
  <span class="method-click-advice">click to toggle source</span>
289
557
  </div>
@@ -291,29 +559,29 @@ actual work of gathering type information.</p>
291
559
 
292
560
  <div class="method-description">
293
561
 
294
- <p>This method is invoked after the actual method is invoked.</p>
562
+ <p>This method is invoked after the original method is executed.</p>
295
563
 
296
564
 
297
565
 
298
- <div class="method-source-code" id="monitor_after_method-source">
299
- <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 40</span>
300
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">monitor_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
301
- <span class="ruby-ivar">@pluggable</span>.<span class="ruby-identifier">after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
566
+ <div class="method-source-code" id="check_after_method-source">
567
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 164</span>
568
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">check_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
569
+ <span class="ruby-ivar">@pluggable</span>.<span class="ruby-identifier">check_after_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
302
570
  <span class="ruby-keyword">end</span></pre>
303
- </div><!-- monitor_after_method-source -->
571
+ </div><!-- check_after_method-source -->
304
572
 
305
573
  </div>
306
574
 
307
575
 
308
576
 
309
577
 
310
- </div><!-- monitor_after_method-method -->
578
+ </div><!-- check_after_method-method -->
311
579
 
312
580
 
313
- <div id="method-i-monitor_before_method" class="method-detail ">
581
+ <div id="method-i-check_before_method" class="method-detail ">
314
582
 
315
583
  <div class="method-heading">
316
- <span class="method-name">monitor_before_method</span><span
584
+ <span class="method-name">check_before_method</span><span
317
585
  class="method-args">(obj, meth_info)</span>
318
586
  <span class="method-click-advice">click to toggle source</span>
319
587
  </div>
@@ -321,24 +589,23 @@ actual work of gathering type information.</p>
321
589
 
322
590
  <div class="method-description">
323
591
 
324
- <p>Starts monitoring of a method; it wraps each argument so that they can
325
- gather type information in the callee.</p>
592
+ <p>This method is invoked before the original method is executed.</p>
326
593
 
327
594
 
328
595
 
329
- <div class="method-source-code" id="monitor_before_method-source">
330
- <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 35</span>
331
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">monitor_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
332
- <span class="ruby-ivar">@pluggable</span>.<span class="ruby-identifier">before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
596
+ <div class="method-source-code" id="check_before_method-source">
597
+ <pre><span class="ruby-comment"># File lib/rubybreaker/runtime/monitor.rb, line 159</span>
598
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">check_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
599
+ <span class="ruby-ivar">@pluggable</span>.<span class="ruby-identifier">check_before_method</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">meth_info</span>)
333
600
  <span class="ruby-keyword">end</span></pre>
334
- </div><!-- monitor_before_method-source -->
601
+ </div><!-- check_before_method-source -->
335
602
 
336
603
  </div>
337
604
 
338
605
 
339
606
 
340
607
 
341
- </div><!-- monitor_before_method-method -->
608
+ </div><!-- check_before_method-method -->
342
609
 
343
610
 
344
611
  </section><!-- public-instance-method-details -->