midilib 1.2.1 → 2.0.0

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 (100) hide show
  1. data/ChangeLog +3 -1
  2. data/Credits +6 -1
  3. data/README.rdoc +41 -15
  4. data/Rakefile +3 -11
  5. data/TODO.rdoc +4 -7
  6. data/examples/from_scratch.rb +2 -2
  7. data/examples/measures_mbt.rb +1 -1
  8. data/examples/print_program_changes.rb +1 -1
  9. data/examples/strings.rb +1 -1
  10. data/examples/transpose.rb +1 -1
  11. data/html/Array.html +382 -0
  12. data/html/IO.html +277 -0
  13. data/html/MIDI.html +829 -0
  14. data/html/MIDI/ActiveSense.html +317 -0
  15. data/html/MIDI/ChannelEvent.html +347 -0
  16. data/html/MIDI/ChannelPressure.html +379 -0
  17. data/html/MIDI/Clock.html +317 -0
  18. data/html/MIDI/Continue.html +317 -0
  19. data/html/MIDI/Controller.html +398 -0
  20. data/html/MIDI/Event.html +659 -0
  21. data/html/MIDI/IO.html +238 -0
  22. data/html/MIDI/IO/MIDIFile.html +2269 -0
  23. data/html/MIDI/IO/SeqReader.html +1051 -0
  24. data/html/MIDI/IO/SeqWriter.html +706 -0
  25. data/html/MIDI/KeySig.html +487 -0
  26. data/html/MIDI/Marker.html +275 -0
  27. data/html/MIDI/Measure.html +479 -0
  28. data/html/MIDI/Measures.html +416 -0
  29. data/html/MIDI/MetaEvent.html +617 -0
  30. data/html/MIDI/NoteEvent.html +459 -0
  31. data/html/MIDI/NoteOff.html +341 -0
  32. data/html/MIDI/NoteOn.html +341 -0
  33. data/html/MIDI/PitchBend.html +380 -0
  34. data/html/MIDI/PolyPressure.html +390 -0
  35. data/html/MIDI/ProgramChange.html +379 -0
  36. data/html/MIDI/Realtime.html +354 -0
  37. data/html/MIDI/Sequence.html +1063 -0
  38. data/html/MIDI/SongPointer.html +380 -0
  39. data/html/MIDI/SongSelect.html +379 -0
  40. data/html/MIDI/Start.html +317 -0
  41. data/html/MIDI/Stop.html +317 -0
  42. data/html/MIDI/SystemCommon.html +275 -0
  43. data/html/MIDI/SystemExclusive.html +382 -0
  44. data/html/MIDI/SystemReset.html +317 -0
  45. data/html/MIDI/Tempo.html +519 -0
  46. data/html/MIDI/TimeSig.html +524 -0
  47. data/html/MIDI/Track.html +859 -0
  48. data/html/MIDI/TuneRequest.html +354 -0
  49. data/html/MIDI/Utils.html +350 -0
  50. data/html/README_rdoc.html +882 -0
  51. data/html/TODO_rdoc.html +215 -0
  52. data/html/created.rid +14 -0
  53. data/html/images/brick.png +0 -0
  54. data/html/images/brick_link.png +0 -0
  55. data/html/images/bug.png +0 -0
  56. data/html/images/bullet_black.png +0 -0
  57. data/html/images/bullet_toggle_minus.png +0 -0
  58. data/html/images/bullet_toggle_plus.png +0 -0
  59. data/html/images/date.png +0 -0
  60. data/html/images/find.png +0 -0
  61. data/html/images/loadingAnimation.gif +0 -0
  62. data/html/images/macFFBgHack.png +0 -0
  63. data/html/images/package.png +0 -0
  64. data/html/images/page_green.png +0 -0
  65. data/html/images/page_white_text.png +0 -0
  66. data/html/images/page_white_width.png +0 -0
  67. data/html/images/plugin.png +0 -0
  68. data/html/images/ruby.png +0 -0
  69. data/html/images/tag_green.png +0 -0
  70. data/html/images/wrench.png +0 -0
  71. data/html/images/wrench_orange.png +0 -0
  72. data/html/images/zoom.png +0 -0
  73. data/html/index.html +1266 -0
  74. data/html/js/darkfish.js +116 -0
  75. data/html/js/jquery.js +32 -0
  76. data/html/js/quicksearch.js +114 -0
  77. data/html/js/thickbox-compressed.js +10 -0
  78. data/html/lib/midilib/consts_rb.html +55 -0
  79. data/html/lib/midilib/event_rb.html +56 -0
  80. data/html/lib/midilib/info_rb.html +52 -0
  81. data/html/lib/midilib/io/midifile_rb.html +54 -0
  82. data/html/lib/midilib/io/seqreader_rb.html +58 -0
  83. data/html/lib/midilib/io/seqwriter_rb.html +59 -0
  84. data/html/lib/midilib/measure_rb.html +54 -0
  85. data/html/lib/midilib/sequence_rb.html +58 -0
  86. data/html/lib/midilib/track_rb.html +54 -0
  87. data/html/lib/midilib/utils_rb.html +52 -0
  88. data/html/lib/midilib_rb.html +71 -0
  89. data/html/rdoc.css +706 -0
  90. data/install.rb +1 -1
  91. data/lib/midilib/event.rb +11 -77
  92. data/lib/midilib/info.rb +4 -4
  93. data/lib/midilib/io/seqreader.rb +2 -2
  94. data/lib/midilib/io/seqwriter.rb +1 -1
  95. data/lib/midilib/sequence.rb +1 -1
  96. data/lib/midilib/track.rb +54 -8
  97. data/test/test_event.rb +4 -62
  98. data/test/test_sequence.rb +1 -1
  99. data/test/test_track.rb +39 -5
  100. metadata +102 -9
@@ -0,0 +1,416 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: MIDI::Measures</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/midilib/measure_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/midilib/measure.rb">lib/midilib/measure.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="../Array.html">Array</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-new">::new</a></li>
73
+
74
+ <li><a href="#method-i-measure_for_event">#measure_for_event</a></li>
75
+
76
+ <li><a href="#method-i-to_mbt">#to_mbt</a></li>
77
+
78
+ </ul>
79
+ </div>
80
+
81
+
82
+ <!-- Included Modules -->
83
+
84
+ </div>
85
+
86
+ <div id="project-metadata">
87
+
88
+
89
+ <div id="fileindex-section" class="section project-section">
90
+ <h3 class="section-header">Files</h3>
91
+ <ul>
92
+
93
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
94
+
95
+ <li class="file"><a href="../TODO_rdoc.html">TODO.rdoc</a></li>
96
+
97
+ </ul>
98
+ </div>
99
+
100
+
101
+ <div id="classindex-section" class="section project-section">
102
+ <h3 class="section-header">Class Index
103
+ <span class="search-toggle"><img src="../images/find.png"
104
+ height="16" width="16" alt="[+]"
105
+ title="show/hide quicksearch" /></span></h3>
106
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
107
+ <fieldset>
108
+ <legend>Quicksearch</legend>
109
+ <input type="text" name="quicksearch" value=""
110
+ class="quicksearch-field" />
111
+ </fieldset>
112
+ </form>
113
+
114
+ <ul class="link-list">
115
+
116
+ <li><a href="../MIDI.html">MIDI</a></li>
117
+
118
+ <li><a href="../MIDI/ActiveSense.html">MIDI::ActiveSense</a></li>
119
+
120
+ <li><a href="../MIDI/ChannelEvent.html">MIDI::ChannelEvent</a></li>
121
+
122
+ <li><a href="../MIDI/ChannelPressure.html">MIDI::ChannelPressure</a></li>
123
+
124
+ <li><a href="../MIDI/Clock.html">MIDI::Clock</a></li>
125
+
126
+ <li><a href="../MIDI/Continue.html">MIDI::Continue</a></li>
127
+
128
+ <li><a href="../MIDI/Controller.html">MIDI::Controller</a></li>
129
+
130
+ <li><a href="../MIDI/Event.html">MIDI::Event</a></li>
131
+
132
+ <li><a href="../MIDI/IO.html">MIDI::IO</a></li>
133
+
134
+ <li><a href="../MIDI/IO/MIDIFile.html">MIDI::IO::MIDIFile</a></li>
135
+
136
+ <li><a href="../MIDI/IO/SeqReader.html">MIDI::IO::SeqReader</a></li>
137
+
138
+ <li><a href="../MIDI/IO/SeqWriter.html">MIDI::IO::SeqWriter</a></li>
139
+
140
+ <li><a href="../MIDI/KeySig.html">MIDI::KeySig</a></li>
141
+
142
+ <li><a href="../MIDI/Marker.html">MIDI::Marker</a></li>
143
+
144
+ <li><a href="../MIDI/Measure.html">MIDI::Measure</a></li>
145
+
146
+ <li><a href="../MIDI/Measures.html">MIDI::Measures</a></li>
147
+
148
+ <li><a href="../MIDI/MetaEvent.html">MIDI::MetaEvent</a></li>
149
+
150
+ <li><a href="../MIDI/NoteEvent.html">MIDI::NoteEvent</a></li>
151
+
152
+ <li><a href="../MIDI/NoteOff.html">MIDI::NoteOff</a></li>
153
+
154
+ <li><a href="../MIDI/NoteOff.html">MIDI::NoteOff</a></li>
155
+
156
+ <li><a href="../MIDI/NoteOn.html">MIDI::NoteOn</a></li>
157
+
158
+ <li><a href="../MIDI/NoteOn.html">MIDI::NoteOn</a></li>
159
+
160
+ <li><a href="../MIDI/PitchBend.html">MIDI::PitchBend</a></li>
161
+
162
+ <li><a href="../MIDI/PolyPressure.html">MIDI::PolyPressure</a></li>
163
+
164
+ <li><a href="../MIDI/ProgramChange.html">MIDI::ProgramChange</a></li>
165
+
166
+ <li><a href="../MIDI/Realtime.html">MIDI::Realtime</a></li>
167
+
168
+ <li><a href="../MIDI/Sequence.html">MIDI::Sequence</a></li>
169
+
170
+ <li><a href="../MIDI/SongPointer.html">MIDI::SongPointer</a></li>
171
+
172
+ <li><a href="../MIDI/SongSelect.html">MIDI::SongSelect</a></li>
173
+
174
+ <li><a href="../MIDI/Start.html">MIDI::Start</a></li>
175
+
176
+ <li><a href="../MIDI/Stop.html">MIDI::Stop</a></li>
177
+
178
+ <li><a href="../MIDI/SystemCommon.html">MIDI::SystemCommon</a></li>
179
+
180
+ <li><a href="../MIDI/SystemExclusive.html">MIDI::SystemExclusive</a></li>
181
+
182
+ <li><a href="../MIDI/SystemReset.html">MIDI::SystemReset</a></li>
183
+
184
+ <li><a href="../MIDI/Tempo.html">MIDI::Tempo</a></li>
185
+
186
+ <li><a href="../MIDI/TimeSig.html">MIDI::TimeSig</a></li>
187
+
188
+ <li><a href="../MIDI/Track.html">MIDI::Track</a></li>
189
+
190
+ <li><a href="../MIDI/TuneRequest.html">MIDI::TuneRequest</a></li>
191
+
192
+ <li><a href="../MIDI/Utils.html">MIDI::Utils</a></li>
193
+
194
+ <li><a href="../Array.html">Array</a></li>
195
+
196
+ <li><a href="../IO.html">IO</a></li>
197
+
198
+ </ul>
199
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
200
+ </div>
201
+
202
+
203
+ </div>
204
+ </div>
205
+
206
+ <div id="documentation">
207
+ <h1 class="class">MIDI::Measures</h1>
208
+
209
+ <div id="description">
210
+ <p>
211
+ A specialized container for <a href="Measure.html">MIDI::Measure</a>
212
+ objects, which can be use to map
213
  event times to measure numbers. Please
214
+ note that this object has to be remade
1
215
  when events are deleted/added in
216
+ the sequence.
217
+ </p>
218
+
219
+ </div>
220
+
221
+ <!-- Constants -->
222
+
223
+
224
+ <!-- Attributes -->
225
+
226
+ <div id="attribute-method-details" class="method-section section">
227
+ <h3 class="section-header">Attributes</h3>
228
+
229
+
230
+ <div id="max-time-attribute-method" class="method-detail">
231
+ <a name="max_time"></a>
232
+
233
+ <div class="method-heading attribute-method-heading">
234
+ <span class="method-name">max_time</span><span
235
+ class="attribute-access-type">[R]</span>
236
+ </div>
237
+
238
+ <div class="method-description">
239
+
240
+ <p>
241
+ The highest event time in the sequence (at the time when the
2
242
  object was
243
+ created)
244
+ </p>
245
+
246
+ </div>
247
+ </div>
248
+
249
+ <div id="ppqd-attribute-method" class="method-detail">
250
+ <a name="ppqd"></a>
251
+
252
+ <div class="method-heading attribute-method-heading">
253
+ <span class="method-name">ppqd</span><span
254
+ class="attribute-access-type">[R]</span>
255
+ </div>
256
+
257
+ <div class="method-description">
258
+
259
+ <p>
260
+ The ppqd from the sequence
261
+ </p>
262
+
263
+ </div>
264
+ </div>
265
+
266
+ </div>
267
+
268
+
269
+ <!-- Methods -->
270
+
271
+ <div id="public-class-method-details" class="method-section section">
272
+ <h3 class="section-header">Public Class Methods</h3>
273
+
274
+
275
+ <div id="new-method" class="method-detail ">
276
+ <a name="method-c-new"></a>
277
+
278
+ <div class="method-heading">
279
+
280
+ <span class="method-name">new</span><span
281
+ class="method-args">(max_time, ppqd)</span>
282
+ <span class="method-click-advice">click to toggle source</span>
283
+
284
+ </div>
285
+
286
+ <div class="method-description">
287
+
288
+ <p>
289
+ Constructor
290
+ </p>
291
+
292
+
293
+
294
+ <div class="method-source-code"
295
+ id="new-source">
296
+ <pre>
297
+ <span class="ruby-comment cmt"># File lib/midilib/measure.rb, line 57</span>
298
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">max_time</span>, <span class="ruby-identifier">ppqd</span>)
299
+ 58: <span class="ruby-keyword kw">super</span>(<span class="ruby-value">0</span>)
300
+ 59: <span class="ruby-ivar">@max_time</span> = <span class="ruby-identifier">max_time</span>
301
+ 60: <span class="ruby-ivar">@ppqd</span> = <span class="ruby-identifier">ppqd</span>
302
+ 61: <span class="ruby-keyword kw">end</span></pre>
303
+ </div>
304
+
305
+ </div>
306
+
307
+
308
+
309
+
310
+ </div>
311
+
312
+
313
+ </div>
314
+
315
+ <div id="public-instance-method-details" class="method-section section">
316
+ <h3 class="section-header">Public Instance Methods</h3>
317
+
318
+
319
+ <div id="measure-for-event-method" class="method-detail ">
320
+ <a name="method-i-measure_for_event"></a>
321
+
322
+ <div class="method-heading">
323
+
324
+ <span class="method-name">measure_for_event</span><span
325
+ class="method-args">(e)</span>
326
+ <span class="method-click-advice">click to toggle source</span>
327
+
328
+ </div>
329
+
330
+ <div class="method-description">
331
+
332
+ <p>
333
+ Returns the <a href="Measure.html">MIDI::Measure</a> object where the event
334
+ is located.
3
335
  Returns <tt>nil</tt> if the event isn&#8217;t found in the
336
+ container (should
4
337
  never happen if the <a
338
+ href="Measures.html">MIDI::Measures</a> object is up to date).
339
+ </p>
340
+
341
+
342
+
343
+ <div class="method-source-code"
344
+ id="measure-for-event-source">
345
+ <pre>
346
+ <span class="ruby-comment cmt"># File lib/midilib/measure.rb, line 66</span>
347
+ 66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">measure_for_event</span>(<span class="ruby-identifier">e</span>)
348
+ 67: <span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">m</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">contains_event?</span>(<span class="ruby-identifier">e</span>) }
349
+ 68: <span class="ruby-keyword kw">end</span></pre>
350
+ </div>
351
+
352
+ </div>
353
+
354
+
355
+
356
+
357
+ </div>
358
+
359
+
360
+ <div id="to-mbt-method" class="method-detail ">
361
+ <a name="method-i-to_mbt"></a>
362
+
363
+ <div class="method-heading">
364
+
365
+ <span class="method-name">to_mbt</span><span
366
+ class="method-args">(e)</span>
367
+ <span class="method-click-advice">click to toggle source</span>
368
+
369
+ </div>
370
+
371
+ <div class="method-description">
372
+
373
+ <p>
374
+ Returns the event&#8217;s time as a formatted MBT string
375
+ (Measure:Beat:Ticks)
5
376
  as found in <a href="../MIDI.html">MIDI</a>
377
+ sequencers.
378
+ </p>
379
+
380
+
381
+
382
+ <div class="method-source-code"
383
+ id="to-mbt-source">
384
+ <pre>
385
+ <span class="ruby-comment cmt"># File lib/midilib/measure.rb, line 72</span>
386
+ 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_mbt</span>(<span class="ruby-identifier">e</span>)
387
+ 73: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">measure_for_event</span>(<span class="ruby-identifier">e</span>)
388
+ 74: <span class="ruby-identifier">b</span> = (<span class="ruby-identifier">e</span>.<span class="ruby-identifier">time_from_start</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">to_f</span>) <span class="ruby-operator">/</span> <span class="ruby-ivar">@ppqd</span>
389
+ 75: <span class="ruby-identifier">b</span> <span class="ruby-operator">*=</span> <span class="ruby-value">24</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">metronome_ticks</span>
390
+ 76: <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%d:%02d:%03d&quot;</span>, <span class="ruby-identifier">m</span>.<span class="ruby-identifier">measure_number</span>, <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, (<span class="ruby-identifier">b</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_i</span>) * <span class="ruby-ivar">@ppqd</span>)
391
+ 77: <span class="ruby-keyword kw">end</span></pre>
392
+ </div>
393
+
394
+ </div>
395
+
396
+
397
+
398
+
399
+ </div>
400
+
401
+
402
+ </div>
403
+
404
+
405
+ </div>
406
+
407
+
408
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
409
+
410
+ <p>Disabled; run with --debug to generate this.</p>
411
+
412
+ </div>
413
+
414
+ <div id="validator-badges">
415
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
416
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
417
+ Rdoc Generator</a> 1.1.6</small>.</p>
418
+ </div>
419
+
420
+ </body>
421
+ </html>
422
+
@@ -0,0 +1,617 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: MIDI::MetaEvent</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/midilib/event_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/midilib/event.rb">lib/midilib/event.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="Event.html">MIDI::Event</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-bytes_as_str">::bytes_as_str</a></li>
73
+
74
+ <li><a href="#method-c-new">::new</a></li>
75
+
76
+ <li><a href="#method-c-str_as_bytes">::str_as_bytes</a></li>
77
+
78
+ <li><a href="#method-c-str_as_bytes">::str_as_bytes</a></li>
79
+
80
+ <li><a href="#method-i-data%3D">#data=</a></li>
81
+
82
+ <li><a href="#method-i-data_as_bytes">#data_as_bytes</a></li>
83
+
84
+ <li><a href="#method-i-data_as_str">#data_as_str</a></li>
85
+
86
+ <li><a href="#method-i-to_s">#to_s</a></li>
87
+
88
+ </ul>
89
+ </div>
90
+
91
+
92
+ <!-- Included Modules -->
93
+
94
+ </div>
95
+
96
+ <div id="project-metadata">
97
+
98
+
99
+ <div id="fileindex-section" class="section project-section">
100
+ <h3 class="section-header">Files</h3>
101
+ <ul>
102
+
103
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
104
+
105
+ <li class="file"><a href="../TODO_rdoc.html">TODO.rdoc</a></li>
106
+
107
+ </ul>
108
+ </div>
109
+
110
+
111
+ <div id="classindex-section" class="section project-section">
112
+ <h3 class="section-header">Class Index
113
+ <span class="search-toggle"><img src="../images/find.png"
114
+ height="16" width="16" alt="[+]"
115
+ title="show/hide quicksearch" /></span></h3>
116
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
117
+ <fieldset>
118
+ <legend>Quicksearch</legend>
119
+ <input type="text" name="quicksearch" value=""
120
+ class="quicksearch-field" />
121
+ </fieldset>
122
+ </form>
123
+
124
+ <ul class="link-list">
125
+
126
+ <li><a href="../MIDI.html">MIDI</a></li>
127
+
128
+ <li><a href="../MIDI/ActiveSense.html">MIDI::ActiveSense</a></li>
129
+
130
+ <li><a href="../MIDI/ChannelEvent.html">MIDI::ChannelEvent</a></li>
131
+
132
+ <li><a href="../MIDI/ChannelPressure.html">MIDI::ChannelPressure</a></li>
133
+
134
+ <li><a href="../MIDI/Clock.html">MIDI::Clock</a></li>
135
+
136
+ <li><a href="../MIDI/Continue.html">MIDI::Continue</a></li>
137
+
138
+ <li><a href="../MIDI/Controller.html">MIDI::Controller</a></li>
139
+
140
+ <li><a href="../MIDI/Event.html">MIDI::Event</a></li>
141
+
142
+ <li><a href="../MIDI/IO.html">MIDI::IO</a></li>
143
+
144
+ <li><a href="../MIDI/IO/MIDIFile.html">MIDI::IO::MIDIFile</a></li>
145
+
146
+ <li><a href="../MIDI/IO/SeqReader.html">MIDI::IO::SeqReader</a></li>
147
+
148
+ <li><a href="../MIDI/IO/SeqWriter.html">MIDI::IO::SeqWriter</a></li>
149
+
150
+ <li><a href="../MIDI/KeySig.html">MIDI::KeySig</a></li>
151
+
152
+ <li><a href="../MIDI/Marker.html">MIDI::Marker</a></li>
153
+
154
+ <li><a href="../MIDI/Measure.html">MIDI::Measure</a></li>
155
+
156
+ <li><a href="../MIDI/Measures.html">MIDI::Measures</a></li>
157
+
158
+ <li><a href="../MIDI/MetaEvent.html">MIDI::MetaEvent</a></li>
159
+
160
+ <li><a href="../MIDI/NoteEvent.html">MIDI::NoteEvent</a></li>
161
+
162
+ <li><a href="../MIDI/NoteOff.html">MIDI::NoteOff</a></li>
163
+
164
+ <li><a href="../MIDI/NoteOff.html">MIDI::NoteOff</a></li>
165
+
166
+ <li><a href="../MIDI/NoteOn.html">MIDI::NoteOn</a></li>
167
+
168
+ <li><a href="../MIDI/NoteOn.html">MIDI::NoteOn</a></li>
169
+
170
+ <li><a href="../MIDI/PitchBend.html">MIDI::PitchBend</a></li>
171
+
172
+ <li><a href="../MIDI/PolyPressure.html">MIDI::PolyPressure</a></li>
173
+
174
+ <li><a href="../MIDI/ProgramChange.html">MIDI::ProgramChange</a></li>
175
+
176
+ <li><a href="../MIDI/Realtime.html">MIDI::Realtime</a></li>
177
+
178
+ <li><a href="../MIDI/Sequence.html">MIDI::Sequence</a></li>
179
+
180
+ <li><a href="../MIDI/SongPointer.html">MIDI::SongPointer</a></li>
181
+
182
+ <li><a href="../MIDI/SongSelect.html">MIDI::SongSelect</a></li>
183
+
184
+ <li><a href="../MIDI/Start.html">MIDI::Start</a></li>
185
+
186
+ <li><a href="../MIDI/Stop.html">MIDI::Stop</a></li>
187
+
188
+ <li><a href="../MIDI/SystemCommon.html">MIDI::SystemCommon</a></li>
189
+
190
+ <li><a href="../MIDI/SystemExclusive.html">MIDI::SystemExclusive</a></li>
191
+
192
+ <li><a href="../MIDI/SystemReset.html">MIDI::SystemReset</a></li>
193
+
194
+ <li><a href="../MIDI/Tempo.html">MIDI::Tempo</a></li>
195
+
196
+ <li><a href="../MIDI/TimeSig.html">MIDI::TimeSig</a></li>
197
+
198
+ <li><a href="../MIDI/Track.html">MIDI::Track</a></li>
199
+
200
+ <li><a href="../MIDI/TuneRequest.html">MIDI::TuneRequest</a></li>
201
+
202
+ <li><a href="../MIDI/Utils.html">MIDI::Utils</a></li>
203
+
204
+ <li><a href="../Array.html">Array</a></li>
205
+
206
+ <li><a href="../IO.html">IO</a></li>
207
+
208
+ </ul>
209
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
210
+ </div>
211
+
212
+
213
+ </div>
214
+ </div>
215
+
216
+ <div id="documentation">
217
+ <h1 class="class">MIDI::MetaEvent</h1>
218
+
219
+ <div id="description">
220
+
221
+ </div>
222
+
223
+ <!-- Constants -->
224
+
225
+
226
+ <!-- Attributes -->
227
+
228
+ <div id="attribute-method-details" class="method-section section">
229
+ <h3 class="section-header">Attributes</h3>
230
+
231
+
232
+ <div id="meta-type-attribute-method" class="method-detail">
233
+ <a name="meta_type"></a>
234
+
235
+ <div class="method-heading attribute-method-heading">
236
+ <span class="method-name">meta_type</span><span
237
+ class="attribute-access-type">[R]</span>
238
+ </div>
239
+
240
+ <div class="method-description">
241
+
242
+
243
+
244
+ </div>
245
+ </div>
246
+
247
+ <div id="data-attribute-method" class="method-detail">
248
+ <a name="data"></a>
249
+
250
+ <div class="method-heading attribute-method-heading">
251
+ <span class="method-name">data</span><span
252
+ class="attribute-access-type">[R]</span>
253
+ </div>
254
+
255
+ <div class="method-description">
256
+
257
+
258
+
259
+ </div>
260
+ </div>
261
+
262
+ </div>
263
+
264
+
265
+ <!-- Methods -->
266
+
267
+ <div id="public-class-method-details" class="method-section section">
268
+ <h3 class="section-header">Public Class Methods</h3>
269
+
270
+
271
+ <div id="bytes-as-str-method" class="method-detail ">
272
+ <a name="method-c-bytes_as_str"></a>
273
+
274
+ <div class="method-heading">
275
+
276
+ <span class="method-name">bytes_as_str</span><span
277
+ class="method-args">(bytes)</span>
278
+ <span class="method-click-advice">click to toggle source</span>
279
+
280
+ </div>
281
+
282
+ <div class="method-description">
283
+
284
+
285
+
286
+
287
+
288
+ <div class="method-source-code"
289
+ id="bytes-as-str-source">
290
+ <pre>
291
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 415</span>
292
+ 415: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bytes_as_str</span>(<span class="ruby-identifier">bytes</span>)
293
+ 416: <span class="ruby-identifier">bytes</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">bytes</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span> <span class="ruby-identifier">byte</span>.<span class="ruby-identifier">chr</span> }.<span class="ruby-identifier">join</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
294
+ 417: <span class="ruby-keyword kw">end</span></pre>
295
+ </div>
296
+
297
+ </div>
298
+
299
+
300
+
301
+
302
+ </div>
303
+
304
+
305
+ <div id="new-method" class="method-detail ">
306
+ <a name="method-c-new"></a>
307
+
308
+ <div class="method-heading">
309
+
310
+ <span class="method-name">new</span><span
311
+ class="method-args">(meta_type, data = nil, delta_time = 0)</span>
312
+ <span class="method-click-advice">click to toggle source</span>
313
+
314
+ </div>
315
+
316
+ <div class="method-description">
317
+
318
+
319
+
320
+
321
+
322
+ <div class="method-source-code"
323
+ id="new-source">
324
+ <pre>
325
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 429</span>
326
+ 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">meta_type</span>, <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">delta_time</span> = <span class="ruby-value">0</span>)
327
+ 430: <span class="ruby-keyword kw">super</span>(<span class="ruby-constant">META_EVENT</span>, <span class="ruby-identifier">delta_time</span>)
328
+ 431: <span class="ruby-ivar">@meta_type</span> = <span class="ruby-identifier">meta_type</span>
329
+ 432: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">data</span>=(<span class="ruby-identifier">data</span>)
330
+ 433: <span class="ruby-keyword kw">end</span></pre>
331
+ </div>
332
+
333
+ </div>
334
+
335
+
336
+
337
+
338
+ </div>
339
+
340
+
341
+ <div id="str-as-bytes-method" class="method-detail ">
342
+ <a name="method-c-str_as_bytes"></a>
343
+
344
+ <div class="method-heading">
345
+
346
+ <span class="method-name">str_as_bytes</span><span
347
+ class="method-args">(str)</span>
348
+ <span class="method-click-advice">click to toggle source</span>
349
+
350
+ </div>
351
+
352
+ <div class="method-description">
353
+
354
+
355
+
356
+
357
+
358
+ <div class="method-source-code"
359
+ id="str-as-bytes-source">
360
+ <pre>
361
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 420</span>
362
+ 420: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">str_as_bytes</span>(<span class="ruby-identifier">str</span>)
363
+ 421: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">chr</span><span class="ruby-operator">|</span> <span class="ruby-identifier">chr</span>.<span class="ruby-identifier">ord</span> }
364
+ 422: <span class="ruby-keyword kw">end</span></pre>
365
+ </div>
366
+
367
+ </div>
368
+
369
+
370
+
371
+
372
+ </div>
373
+
374
+
375
+ <div id="str-as-bytes-method" class="method-detail ">
376
+ <a name="method-c-str_as_bytes"></a>
377
+
378
+ <div class="method-heading">
379
+
380
+ <span class="method-name">str_as_bytes</span><span
381
+ class="method-args">(str)</span>
382
+ <span class="method-click-advice">click to toggle source</span>
383
+
384
+ </div>
385
+
386
+ <div class="method-description">
387
+
388
+
389
+
390
+
391
+
392
+ <div class="method-source-code"
393
+ id="str-as-bytes-source">
394
+ <pre>
395
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 424</span>
396
+ 424: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">str_as_bytes</span>(<span class="ruby-identifier">str</span>)
397
+ 425: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">chr</span><span class="ruby-operator">|</span> <span class="ruby-identifier">chr</span>[<span class="ruby-value">0</span>] }
398
+ 426: <span class="ruby-keyword kw">end</span></pre>
399
+ </div>
400
+
401
+ </div>
402
+
403
+
404
+
405
+
406
+ </div>
407
+
408
+
409
+ </div>
410
+
411
+ <div id="public-instance-method-details" class="method-section section">
412
+ <h3 class="section-header">Public Instance Methods</h3>
413
+
414
+
415
+ <div id="data--method" class="method-detail ">
416
+ <a name="method-i-data%3D"></a>
417
+
418
+ <div class="method-heading">
419
+
420
+ <span class="method-name">data=</span><span
421
+ class="method-args">(data)</span>
422
+ <span class="method-click-advice">click to toggle source</span>
423
+
424
+ </div>
425
+
426
+ <div class="method-description">
427
+
428
+ <p>
429
+ Stores bytes. If data is a string, splits it into an array of bytes.
430
+ </p>
431
+
432
+
433
+
434
+ <div class="method-source-code"
435
+ id="data--source">
436
+ <pre>
437
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 449</span>
438
+ 449: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">data=</span>(<span class="ruby-identifier">data</span>)
439
+ 450: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">data</span>
440
+ 451: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
441
+ 452: <span class="ruby-ivar">@data</span> = <span class="ruby-constant">MetaEvent</span>.<span class="ruby-identifier">str_as_bytes</span>(<span class="ruby-identifier">data</span>)
442
+ 453: <span class="ruby-keyword kw">else</span>
443
+ 454: <span class="ruby-ivar">@data</span> = <span class="ruby-identifier">data</span>
444
+ 455: <span class="ruby-keyword kw">end</span>
445
+ 456: <span class="ruby-keyword kw">end</span></pre>
446
+ </div>
447
+
448
+ </div>
449
+
450
+
451
+
452
+
453
+ </div>
454
+
455
+
456
+ <div id="data-as-bytes-method" class="method-detail ">
457
+ <a name="method-i-data_as_bytes"></a>
458
+
459
+ <div class="method-heading">
460
+
461
+ <span class="method-name">data_as_bytes</span><span
462
+ class="method-args">()</span>
463
+ <span class="method-click-advice">click to toggle source</span>
464
+
465
+ </div>
466
+
467
+ <div class="method-description">
468
+
469
+
470
+
471
+
472
+
473
+ <div class="method-source-code"
474
+ id="data-as-bytes-source">
475
+ <pre>
476
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 435</span>
477
+ 435: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">data_as_bytes</span>
478
+ 436: <span class="ruby-identifier">data</span> = []
479
+ 437: <span class="ruby-identifier">data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@status</span>
480
+ 438: <span class="ruby-identifier">data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@meta_type</span>
481
+ 439: <span class="ruby-identifier">data</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-ivar">@data</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Utils</span>.<span class="ruby-identifier">as_var_len</span>(<span class="ruby-ivar">@data</span>.<span class="ruby-identifier">length</span>) <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
482
+ 440: <span class="ruby-identifier">data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@data</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@data</span>
483
+ 441: <span class="ruby-identifier">data</span>.<span class="ruby-identifier">flatten</span>
484
+ 442: <span class="ruby-keyword kw">end</span></pre>
485
+ </div>
486
+
487
+ </div>
488
+
489
+
490
+
491
+
492
+ </div>
493
+
494
+
495
+ <div id="data-as-str-method" class="method-detail ">
496
+ <a name="method-i-data_as_str"></a>
497
+
498
+ <div class="method-heading">
499
+
500
+ <span class="method-name">data_as_str</span><span
501
+ class="method-args">()</span>
502
+ <span class="method-click-advice">click to toggle source</span>
503
+
504
+ </div>
505
+
506
+ <div class="method-description">
507
+
508
+
509
+
510
+
511
+
512
+ <div class="method-source-code"
513
+ id="data-as-str-source">
514
+ <pre>
515
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 444</span>
516
+ 444: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">data_as_str</span>
517
+ 445: <span class="ruby-constant">MetaEvent</span>.<span class="ruby-identifier">bytes_as_str</span>(<span class="ruby-ivar">@data</span>)
518
+ 446: <span class="ruby-keyword kw">end</span></pre>
519
+ </div>
520
+
521
+ </div>
522
+
523
+
524
+
525
+
526
+ </div>
527
+
528
+
529
+ <div id="to-s-method" class="method-detail ">
530
+ <a name="method-i-to_s"></a>
531
+
532
+ <div class="method-heading">
533
+
534
+ <span class="method-name">to_s</span><span
535
+ class="method-args">()</span>
536
+ <span class="method-click-advice">click to toggle source</span>
537
+
538
+ </div>
539
+
540
+ <div class="method-description">
541
+
542
+
543
+
544
+
545
+
546
+ <div class="method-source-code"
547
+ id="to-s-source">
548
+ <pre>
549
+ <span class="ruby-comment cmt"># File lib/midilib/event.rb, line 458</span>
550
+ 458: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
551
+ 459: <span class="ruby-identifier">str</span> = <span class="ruby-keyword kw">super</span>()
552
+ 460: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;meta #{number_to_s(@meta_type)} &quot;</span>
553
+ 461: <span class="ruby-comment cmt"># I know, I know...this isn't OO.</span>
554
+ 462: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@meta_type</span>
555
+ 463: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_SEQ_NUM</span>
556
+ 464: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;sequence number&quot;</span>
557
+ 465: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_TEXT</span>
558
+ 466: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;text: #{data_as_str}&quot;</span>
559
+ 467: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_COPYRIGHT</span>
560
+ 468: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;copyright: #{data_as_str}&quot;</span>
561
+ 469: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_SEQ_NAME</span>
562
+ 470: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;sequence or track name: #{data_as_str}&quot;</span>
563
+ 471: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_INSTRUMENT</span>
564
+ 472: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;instrument name: #{data_as_str}&quot;</span>
565
+ 473: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_LYRIC</span>
566
+ 474: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;lyric: #{data_as_str}&quot;</span>
567
+ 475: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_MARKER</span>
568
+ 476: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;marker: #{data_as_str}&quot;</span>
569
+ 477: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_CUE</span>
570
+ 478: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;cue point: #{@data}&quot;</span>
571
+ 479: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_TRACK_END</span>
572
+ 480: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;track end&quot;</span>
573
+ 481: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_SMPTE</span>
574
+ 482: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;smpte&quot;</span>
575
+ 483: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_TIME_SIG</span>
576
+ 484: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;time signature&quot;</span>
577
+ 485: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_KEY_SIG</span>
578
+ 486: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;key signature&quot;</span>
579
+ 487: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">META_SEQ_SPECIF</span>
580
+ 488: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;sequence specific&quot;</span>
581
+ 489: <span class="ruby-keyword kw">else</span>
582
+ 490: <span class="ruby-comment cmt"># Some other possible @meta_type values are handled by subclasses.</span>
583
+ 491: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;(other)&quot;</span>
584
+ 492: <span class="ruby-keyword kw">end</span>
585
+ 493: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">str</span>
586
+ 494: <span class="ruby-keyword kw">end</span></pre>
587
+ </div>
588
+
589
+ </div>
590
+
591
+
592
+
593
+
594
+ </div>
595
+
596
+
597
+ </div>
598
+
599
+
600
+ </div>
601
+
602
+
603
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
604
+
605
+ <p>Disabled; run with --debug to generate this.</p>
606
+
607
+ </div>
608
+
609
+ <div id="validator-badges">
610
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
611
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
612
+ Rdoc Generator</a> 1.1.6</small>.</p>
613
+ </div>
614
+
615
+ </body>
616
+ </html>
617
+