sdl4r 0.9.6 → 0.9.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 (45) hide show
  1. data/CHANGELOG +49 -2
  2. data/Rakefile +35 -5
  3. data/TODO +29 -3
  4. data/doc/classes/SDL4R.html +386 -674
  5. data/doc/classes/SDL4R/Parser.html +183 -307
  6. data/doc/classes/SDL4R/ParserTest.html +357 -0
  7. data/doc/classes/SDL4R/SDL4RTest.html +532 -0
  8. data/doc/classes/SDL4R/SDLTest.html +77 -0
  9. data/doc/classes/SDL4R/SdlBinary.html +180 -295
  10. data/doc/classes/SDL4R/SdlParseError.html +105 -180
  11. data/doc/classes/SDL4R/SdlTimeSpan.html +628 -939
  12. data/doc/classes/SDL4R/Tag.html +1236 -2036
  13. data/doc/classes/SDL4R/TagTest.html +292 -0
  14. data/doc/created.rid +1 -1
  15. data/doc/files/CHANGELOG.html +183 -184
  16. data/doc/files/LICENSE.html +496 -755
  17. data/doc/files/README.html +399 -623
  18. data/doc/files/lib/sdl4r/parser/reader_rb.html +53 -106
  19. data/doc/files/lib/sdl4r/parser/time_span_with_zone_rb.html +53 -106
  20. data/doc/files/lib/sdl4r/parser/token_rb.html +53 -106
  21. data/doc/files/lib/sdl4r/parser/tokenizer_rb.html +53 -106
  22. data/doc/files/lib/sdl4r/parser_rb.html +60 -112
  23. data/doc/files/lib/sdl4r/sdl4r_rb.html +62 -114
  24. data/doc/files/lib/sdl4r/sdl_binary_rb.html +53 -106
  25. data/doc/files/lib/sdl4r/sdl_parse_error_rb.html +53 -106
  26. data/doc/files/lib/sdl4r/sdl_time_span_rb.html +53 -106
  27. data/doc/files/lib/sdl4r/tag_rb.html +62 -114
  28. data/doc/files/lib/sdl4r_rb.html +53 -106
  29. data/doc/files/test/sdl4r/parser_test_rb.html +63 -0
  30. data/doc/files/test/sdl4r/sdl4r_test_rb.html +66 -0
  31. data/doc/files/test/sdl4r/sdl_test_rb.html +63 -0
  32. data/doc/files/test/sdl4r/tag_test_rb.html +63 -0
  33. data/doc/fr_class_index.html +19 -32
  34. data/doc/fr_file_index.html +37 -40
  35. data/doc/fr_method_index.html +4707 -114
  36. data/doc/index.html +14 -23
  37. data/doc/rdoc-style.css +323 -203
  38. data/lib/sdl4r/parser/reader.rb +26 -19
  39. data/lib/sdl4r/parser/token.rb +3 -3
  40. data/lib/sdl4r/parser/tokenizer.rb +93 -98
  41. data/lib/sdl4r/sdl_parse_error.rb +2 -2
  42. data/lib/sdl4r/tag.rb +127 -73
  43. data/test/sdl4r/parser_test.rb +109 -11
  44. data/test/sdl4r/tag_test.rb +73 -4
  45. metadata +15 -12
@@ -1,2049 +1,1249 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: SDL4R::Tag</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">SDL4R::Tag</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/sdl4r/tag_rb.html">
59
- lib/sdl4r/tag.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Object
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- SDL documents are made of Tags.
84
- </p>
85
- <p>
86
- See the <a href="../../files/README.html">README</a> for a longer
87
- explanation on SDL documents.
88
- </p>
89
- <p>
90
- Do not assume that methods returning sets (Hash, Array, etc) of
91
- children/values/attributes/etc in this class returns copies or
92
- implementations. It can be one or the other depending on the method. The
93
- implementations are designed to be correct and somewhat efficient, not too
94
- protect the <a href="Tag.html">Tag</a> internal state from ill-use of the
95
- returned <a href="Tag.html#M000033">values</a>.
96
- </p>
97
- <h2>Authors</h2>
98
- <p>
99
- Daniel Leuck, Philippe Vosges
100
- </p>
101
-
102
- </div>
103
-
104
-
105
- </div>
106
-
107
- <div id="method-list">
108
- <h3 class="section-bar">Methods</h3>
109
-
110
- <div class="name-list">
111
- <a href="#M000016">&lt;&lt;</a>&nbsp;&nbsp;
112
- <a href="#M000052">==</a>&nbsp;&nbsp;
113
- <a href="#M000015">add_child</a>&nbsp;&nbsp;
114
- <a href="#M000029">add_value</a>&nbsp;&nbsp;
115
- <a href="#M000036">attribute</a>&nbsp;&nbsp;
116
- <a href="#M000038">attributes</a>&nbsp;&nbsp;
117
- <a href="#M000042">attributes=</a>&nbsp;&nbsp;
118
- <a href="#M000024">child</a>&nbsp;&nbsp;
119
- <a href="#M000021">child_count</a>&nbsp;&nbsp;
120
- <a href="#M000022">children</a>&nbsp;&nbsp;
121
- <a href="#M000050">children_to_string</a>&nbsp;&nbsp;
122
- <a href="#M000023">children_values</a>&nbsp;&nbsp;
123
- <a href="#M000040">clear_attributes</a>&nbsp;&nbsp;
124
- <a href="#M000018">clear_children</a>&nbsp;&nbsp;
125
- <a href="#M000032">clear_values</a>&nbsp;&nbsp;
126
- <a href="#M000051">eql?</a>&nbsp;&nbsp;
127
- <a href="#M000037">has_attribute?</a>&nbsp;&nbsp;
128
- <a href="#M000025">has_child?</a>&nbsp;&nbsp;
129
- <a href="#M000026">has_children?</a>&nbsp;&nbsp;
130
- <a href="#M000030">has_value?</a>&nbsp;&nbsp;
131
- <a href="#M000053">hash</a>&nbsp;&nbsp;
132
- <a href="#M000043">name=</a>&nbsp;&nbsp;
133
- <a href="#M000044">namespace=</a>&nbsp;&nbsp;
134
- <a href="#M000013">new</a>&nbsp;&nbsp;
135
- <a href="#M000014">new_child</a>&nbsp;&nbsp;
136
- <a href="#M000045">read</a>&nbsp;&nbsp;
137
- <a href="#M000046">read_from_io</a>&nbsp;&nbsp;
138
- <a href="#M000039">remove_attribute</a>&nbsp;&nbsp;
139
- <a href="#M000017">remove_child</a>&nbsp;&nbsp;
140
- <a href="#M000031">remove_value</a>&nbsp;&nbsp;
141
- <a href="#M000035">set_attribute</a>&nbsp;&nbsp;
142
- <a href="#M000041">set_attributes</a>&nbsp;&nbsp;
143
- <a href="#M000027">to_child_hash</a>&nbsp;&nbsp;
144
- <a href="#M000028">to_child_string_hash</a>&nbsp;&nbsp;
145
- <a href="#M000048">to_s</a>&nbsp;&nbsp;
146
- <a href="#M000049">to_string</a>&nbsp;&nbsp;
147
- <a href="#M000054">to_xml_string</a>&nbsp;&nbsp;
148
- <a href="#M000020">value</a>&nbsp;&nbsp;
149
- <a href="#M000019">value=</a>&nbsp;&nbsp;
150
- <a href="#M000033">values</a>&nbsp;&nbsp;
151
- <a href="#M000034">values=</a>&nbsp;&nbsp;
152
- <a href="#M000047">write</a>&nbsp;&nbsp;
153
- </div>
154
- </div>
155
-
156
- </div>
157
-
158
-
159
- <!-- if includes -->
160
-
161
- <div id="section">
162
-
163
-
164
-
165
-
166
-
167
- <div id="attribute-list">
168
- <h3 class="section-bar">Attributes</h3>
169
-
170
- <div class="name-list">
171
- <table>
172
- <tr class="top-aligned-row context-row">
173
- <td class="context-item-name">name</td>
174
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
175
- <td class="context-item-desc">
176
- the name of this <a href="Tag.html">Tag</a>
177
-
178
- </td>
179
- </tr>
180
- <tr class="top-aligned-row context-row">
181
- <td class="context-item-name">namespace</td>
182
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
183
- <td class="context-item-desc">
184
- the namespace of this <a href="Tag.html">Tag</a> or an empty string when
185
- there is no namespace (i.e. default namespace).
186
-
187
- </td>
188
- </tr>
189
- </table>
190
- </div>
191
- </div>
192
-
193
-
194
-
195
- <!-- if method_list -->
196
- <div id="methods">
197
- <h3 class="section-bar">Public Class methods</h3>
198
-
199
- <div id="method-M000013" class="method-detail">
200
- <a name="M000013"></a>
201
-
202
- <div class="method-heading">
203
- <a href="#M000013" class="method-signature">
204
- <span class="method-name">new</span><span class="method-args">(namespace, name = nil, &amp;block)</span>
205
- </a>
206
- </div>
207
-
208
- <div class="method-description">
209
- <p>
210
- Creates an empty tag in the given namespace. If the <tt>namespace</tt> is
211
- nil it will be coerced to an empty String.
212
- </p>
213
- <pre>
214
- tag = Tag.new(&quot;name&quot;)
215
- tag = Tag.new(&quot;namespace&quot;, &quot;name&quot;)
216
-
217
- tag = Tag.new(&quot;fruit&quot;) do
218
- add_value 2
219
- new_child(&quot;orange&quot;) do
220
- set_attribute(&quot;quantity&quot;, 2)
221
- end
222
- end
223
- </pre>
224
- <p>
225
- which builds the following SDL structure
226
- </p>
227
- <pre>
228
- fruit 2 {
229
- orange quantity=2
230
- }
231
- </pre>
232
- <h2>Raises</h2>
233
- <p>
234
- ArgumentError if the name is not a legal SDL identifier (see <a
235
- href="../SDL4R.html#M000005">SDL4R#validate_identifier</a>) or the
236
- namespace is non-blank and is not a legal SDL identifier.
237
- </p>
238
- <p><a class="source-toggle" href="#"
239
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
240
- <div class="method-source-code" id="M000013-source">
241
- <pre>
242
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 95</span>
243
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
244
- <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span>
245
-
246
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;tag namespace must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>
247
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;tag name must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>
248
-
249
- <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">namespace</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
250
- <span class="ruby-ivar">@namespace</span> = <span class="ruby-identifier">namespace</span>
251
-
252
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
253
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Tag name cannot be nil or empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">empty?</span>
254
- <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">name</span>)
255
- <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
256
-
257
- <span class="ruby-ivar">@children</span> = []
258
- <span class="ruby-ivar">@values</span> = []
259
-
260
- <span class="ruby-comment cmt"># a Hash of Hash : {namespace =&gt; {name =&gt; value}}</span>
261
- <span class="ruby-comment cmt"># The default namespace is represented by an empty string.</span>
262
- <span class="ruby-ivar">@attributesByNamespace</span> = {}
263
-
264
- <span class="ruby-identifier">instance_eval</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
265
- <span class="ruby-keyword kw">end</span>
266
- </pre>
267
- </div>
268
- </div>
269
- </div>
270
-
271
- <h3 class="section-bar">Public Instance methods</h3>
272
-
273
- <div id="method-M000016" class="method-detail">
274
- <a name="M000016"></a>
275
-
276
- <div class="method-heading">
277
- <a href="#M000016" class="method-signature">
278
- <span class="method-name">&lt;&lt;</span><span class="method-args">(o)</span>
279
- </a>
280
- </div>
281
-
282
- <div class="method-description">
283
- <p>
284
- Adds the given object as a <a href="Tag.html#M000024">child</a> if it is a
285
- <tt><a href="Tag.html">Tag</a></tt>, as an <a
286
- href="Tag.html#M000036">attribute</a> if it is a Hash {key =&gt; <a
287
- href="Tag.html#M000020">value</a>} (supports namespaces), or as a <a
288
- href="Tag.html#M000020">value</a> otherwise. If it is an array, each of its
289
- elements is added to this <a href="Tag.html">Tag</a> via this operator. If
290
- any of its elements is itself an array, then an anonymous tag is created
291
- and the array is passed to it via this operator (see the examples below)
292
- </p>
293
- <pre>
294
- tag &lt;&lt; Tag.new(&quot;child&quot;)
295
- tag &lt;&lt; 123 # new integer value
296
- tag &lt;&lt; &quot;islamabad&quot; # new string value
297
- tag &lt;&lt; { &quot;metric:length&quot; =&gt; 1027 } # new attribute (with namespace)
298
- tag &lt;&lt; [nil, 456, &quot;abc&quot;] # several values added
299
-
300
- tag = Tag.new(&quot;tag&quot;)
301
- tag &lt;&lt; [[1, 2, 3], [4, 5, 6]] # tag {
302
- # 1 2 3
303
- # 4 5 6
304
- # }
305
- </pre>
306
- <p>
307
- Returns <tt>self</tt>.
308
- </p>
309
- <p>
310
- Use other accessors for a stricter and less &quot;magical&quot; behavior.
311
- </p>
312
- <p><a class="source-toggle" href="#"
313
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
314
- <div class="method-source-code" id="M000016-source">
315
- <pre>
316
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 169</span>
317
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">o</span>)
318
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Tag</span>)
319
- <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">o</span>)
320
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
321
- <span class="ruby-identifier">o</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
322
- <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/:/</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/:/</span>)
323
- <span class="ruby-identifier">namespace</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;&quot;</span>
324
- <span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>: SDL4R::Tag [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
325
11
  }
326
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
327
- <span class="ruby-identifier">o</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
328
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
329
- <span class="ruby-identifier">anonymous</span> = <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">&quot;content&quot;</span>)
330
- <span class="ruby-identifier">anonymous</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">item</span>
331
- <span class="ruby-keyword kw">else</span>
332
- <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">item</span>
333
- <span class="ruby-keyword kw">end</span>
334
- }
335
- <span class="ruby-keyword kw">else</span>
336
- <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">o</span>)
337
- <span class="ruby-keyword kw">end</span>
338
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
339
- <span class="ruby-keyword kw">end</span>
340
- </pre>
341
- </div>
342
- </div>
343
- </div>
344
-
345
- <div id="method-M000052" class="method-detail">
346
- <a name="M000052"></a>
347
-
348
- <div class="method-heading">
349
- <span class="method-name">==</span><span class="method-args">(o)</span>
350
- </div>
351
-
352
- <div class="method-description">
353
- <p>
354
- Alias for eql?
355
- </p>
356
- </div>
357
- </div>
358
-
359
- <div id="method-M000015" class="method-detail">
360
- <a name="M000015"></a>
361
-
362
- <div class="method-heading">
363
- <a href="#M000015" class="method-signature">
364
- <span class="method-name">add_child</span><span class="method-args">(child)</span>
365
- </a>
366
- </div>
367
-
368
- <div class="method-description">
369
- <p>
370
- Add a <a href="Tag.html#M000024">child</a> to this <a
371
- href="Tag.html">Tag</a>.
372
- </p>
373
- <table>
374
- <tr><td valign="top"><tt><a href="Tag.html#M000024">child</a></tt>:</td><td>The <a href="Tag.html#M000024">child</a> to add
375
-
376
- </td></tr>
377
- </table>
378
- <p>
379
- Returns the added <a href="Tag.html#M000024">child</a>.
380
- </p>
381
- <p><a class="source-toggle" href="#"
382
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
383
- <div class="method-source-code" id="M000015-source">
384
- <pre>
385
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 142</span>
386
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">child</span>)
387
- <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
388
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">child</span>
389
- <span class="ruby-keyword kw">end</span>
390
- </pre>
391
- </div>
392
- </div>
393
- </div>
394
-
395
- <div id="method-M000029" class="method-detail">
396
- <a name="M000029"></a>
397
-
398
- <div class="method-heading">
399
- <a href="#M000029" class="method-signature">
400
- <span class="method-name">add_value</span><span class="method-args">(v)</span>
401
- </a>
402
- </div>
403
-
404
- <div class="method-description">
405
- <p>
406
- Adds a <a href="Tag.html#M000020">value</a> to this <a
407
- href="Tag.html">Tag</a>. See <a
408
- href="../SDL4R.html#M000004">SDL4R#coerce_or_fail</a> to know about the
409
- allowable types.
410
- </p>
411
- <table>
412
- <tr><td valign="top"><tt>v</tt>:</td><td>The <a href="Tag.html#M000020">value</a> to add
413
-
414
- </td></tr>
415
- </table>
416
- <p>
417
- Raises an <tt>ArgumentError</tt> if the <a
418
- href="Tag.html#M000020">value</a> is not a legal SDL type
419
- </p>
420
- <p><a class="source-toggle" href="#"
421
- onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
422
- <div class="method-source-code" id="M000029-source">
423
- <pre>
424
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 409</span>
425
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">v</span>)
426
- <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">push</span>(<span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">v</span>))
427
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
428
- <span class="ruby-keyword kw">end</span>
429
- </pre>
430
- </div>
431
- </div>
432
- </div>
433
-
434
- <div id="method-M000036" class="method-detail">
435
- <a name="M000036"></a>
436
-
437
- <div class="method-heading">
438
- <a href="#M000036" class="method-signature">
439
- <span class="method-name">attribute</span><span class="method-args">(namespace, key = nil)</span>
440
- </a>
441
- </div>
442
-
443
- <div class="method-description">
444
- <pre>
445
- attribute(key)
446
- attribute(namespace, key)
447
- </pre>
448
- <p>
449
- Returns the <a href="Tag.html#M000036">attribute</a> of the specified
450
- <tt>namespace</tt> of specified <tt>key</tt> or <tt>nil</tt> if not found.
451
- </p>
452
- <p><a class="source-toggle" href="#"
453
- onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
454
- <div class="method-source-code" id="M000036-source">
455
- <pre>
456
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 518</span>
457
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-keyword kw">nil</span>)
458
- <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>
459
- <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
460
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">key</span>]
461
- <span class="ruby-keyword kw">end</span>
462
- </pre>
463
- </div>
464
- </div>
465
- </div>
466
-
467
- <div id="method-M000038" class="method-detail">
468
- <a name="M000038"></a>
469
-
470
- <div class="method-heading">
471
- <a href="#M000038" class="method-signature">
472
- <span class="method-name">attributes</span><span class="method-args">(namespace = nil) {|namespace, key, value| ...}</span>
473
- </a>
474
- </div>
475
-
476
- <div class="method-description">
477
- <p>
478
- Returns a Hash of the <a href="Tag.html#M000038">attributes</a> of the
479
- specified <tt>namespace</tt> (default is all) or enumerates them.
480
- </p>
481
- <pre>
482
- tag.attributes # =&gt; { &quot;length&quot; =&gt; 123, &quot;width&quot; = 25.4, &quot;orig:color&quot; =&gt; &quot;gray&quot; }
483
- tag.attributes(&quot;orig&quot;) do |namespace, key, value|
484
- p &quot;#{namespace}:#{key} = #{value}&quot;
485
- end
486
- </pre>
487
- <p>
488
- <tt>namespace</tt>:: namespace of the returned <a
489
- href="Tag.html#M000038">attributes</a>. If nil, all <a
490
- href="Tag.html#M000038">attributes</a> are returned with qualified names
491
- (e.g. &quot;meat:color&quot;). If &quot;&quot;, <a
492
- href="Tag.html#M000038">attributes</a> of the default namespace are
493
- returned.
494
- </p>
495
- <p><a class="source-toggle" href="#"
496
- onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
497
- <div class="method-source-code" id="M000038-source">
498
- <pre>
499
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 556</span>
500
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: namespace, key, value</span>
501
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
502
- <span class="ruby-identifier">each_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
503
12
 
504
- <span class="ruby-keyword kw">else</span>
505
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
506
- <span class="ruby-identifier">hash</span> = {}
507
-
508
- <span class="ruby-identifier">each_attribute</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span> <span class="ruby-operator">|</span>
509
- <span class="ruby-identifier">qualified_name</span> = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-identifier">key</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">namespace</span> <span class="ruby-operator">+</span> <span class="ruby-value str">':'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">key</span>
510
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">qualified_name</span>] = <span class="ruby-identifier">value</span>
511
- <span class="ruby-keyword kw">end</span>
512
-
513
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>
514
-
515
- <span class="ruby-keyword kw">else</span>
516
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
517
- <span class="ruby-keyword kw">end</span>
518
- <span class="ruby-keyword kw">end</span>
519
- <span class="ruby-keyword kw">end</span>
520
- </pre>
521
- </div>
522
- </div>
523
- </div>
524
-
525
- <div id="method-M000042" class="method-detail">
526
- <a name="M000042"></a>
527
-
528
- <div class="method-heading">
529
- <a href="#M000042" class="method-signature">
530
- <span class="method-name">attributes=</span><span class="method-args">(attribute_hash)</span>
531
- </a>
532
- </div>
533
-
534
- <div class="method-description">
535
- <p>
536
- Sets all the <a href="Tag.html#M000038">attributes</a> of the default
537
- namespace for this <a href="Tag.html">Tag</a> in one operation.
538
- </p>
539
- <p>
540
- See <a href="Tag.html#M000041">set_attributes</a>
541
- </p>
542
- <p><a class="source-toggle" href="#"
543
- onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
544
- <div class="method-source-code" id="M000042-source">
545
- <pre>
546
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 660</span>
547
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes=</span>(<span class="ruby-identifier">attribute_hash</span>)
548
- <span class="ruby-identifier">set_attributes</span>(<span class="ruby-identifier">attribute_hash</span>)
549
- <span class="ruby-keyword kw">end</span>
550
- </pre>
551
- </div>
552
- </div>
553
- </div>
554
-
555
- <div id="method-M000024" class="method-detail">
556
- <a name="M000024"></a>
557
-
558
- <div class="method-heading">
559
- <a href="#M000024" class="method-signature">
560
- <span class="method-name">child</span><span class="method-args">(recursive = false, name = nil)</span>
561
- </a>
562
- </div>
563
-
564
- <div class="method-description">
565
- <pre>
566
- child
567
- child(name)
568
- child(recursive, name)
569
- </pre>
570
- <p>
571
- Get the first <a href="Tag.html#M000024">child</a> with the given name,
572
- optionally using a recursive search.
573
- </p>
574
- <table>
575
- <tr><td valign="top"><tt>name</tt>:</td><td>the name of the <a href="Tag.html#M000024">child</a> <a
576
- href="Tag.html">Tag</a>. If <tt>nil</tt>, the first <a
577
- href="Tag.html#M000024">child</a> is returned (<tt>nil</tt> if there are
578
-
579
- </td></tr>
580
- </table>
581
- <p>
582
- no <a href="Tag.html#M000022">children</a> at all).
583
- </p>
584
- <p>
585
- Returns the first <a href="Tag.html#M000024">child</a> tag having the given
586
- name or <tt>nil</tt> if no such <a href="Tag.html#M000024">child</a> exists
587
- </p>
588
- <p><a class="source-toggle" href="#"
589
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
590
- <div class="method-source-code" id="M000024-source">
591
- <pre>
592
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 313</span>
593
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">child</span>(<span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
594
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
595
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">recursive</span>
596
- <span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>
597
- <span class="ruby-keyword kw">end</span>
598
-
599
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>
600
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">first</span>
601
- <span class="ruby-keyword kw">else</span>
602
- <span class="ruby-identifier">each_child</span>(<span class="ruby-identifier">recursive</span>, <span class="ruby-identifier">name</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">child</span> }
603
- <span class="ruby-keyword kw">end</span>
604
- <span class="ruby-keyword kw">end</span>
605
- </pre>
606
- </div>
607
- </div>
608
- </div>
609
-
610
- <div id="method-M000021" class="method-detail">
611
- <a name="M000021"></a>
612
-
613
- <div class="method-heading">
614
- <a href="#M000021" class="method-signature">
615
- <span class="method-name">child_count</span><span class="method-args">()</span>
616
- </a>
617
- </div>
618
-
619
- <div class="method-description">
620
- <p>
621
- Returns the number of <a href="Tag.html#M000022">children</a> <a
622
- href="Tag.html">Tag</a>.
623
- </p>
624
- <p><a class="source-toggle" href="#"
625
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
626
- <div class="method-source-code" id="M000021-source">
627
- <pre>
628
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 234</span>
629
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">child_count</span>
630
- <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">size</span>
631
- <span class="ruby-keyword kw">end</span>
632
- </pre>
633
- </div>
634
- </div>
635
- </div>
636
-
637
- <div id="method-M000022" class="method-detail">
638
- <a name="M000022"></a>
639
-
640
- <div class="method-heading">
641
- <a href="#M000022" class="method-signature">
642
- <span class="method-name">children</span><span class="method-args">(recursive = false, namespace = nil, name = :DEFAULT) {|child| ...}</span>
643
- </a>
644
- </div>
645
-
646
- <div class="method-description">
647
- <pre>
648
- children(recursive)
649
- children(recursive, name)
650
- children(recursive, namespace, name)
651
-
652
- children(recursive) { |child| ... }
653
- children(recursive, name) { |child| ... }
654
- children(recursive, namespace, name) { |child| ... }
655
- </pre>
656
- <p>
657
- Returns an Array of the <a href="Tag.html#M000022">children</a> Tags of
658
- this <a href="Tag.html">Tag</a> or enumerates them.
659
- </p>
660
- <table>
661
- <tr><td valign="top"><tt>recursive</tt>:</td><td>if true <a href="Tag.html#M000022">children</a> and all descendants will be
662
- returned. False by default.
663
-
664
- </td></tr>
665
- <tr><td valign="top"><tt>name</tt>:</td><td>if not nil, only <a href="Tag.html#M000022">children</a> having this name
666
- will be returned. Nil by default.
667
-
668
- </td></tr>
669
- <tr><td valign="top"><tt>namespace</tt>:</td><td>use nil for all namespaces and &quot;&quot; for the default one. Nil by
670
- default.
671
-
672
- </td></tr>
673
- </table>
674
- <pre>
675
- tag.children # =&gt; array of the children
676
- tag.children(true) { |descendant| ... }
677
-
678
- tag.children(false, &quot;name&quot;) # =&gt; children of name &quot;name&quot;
679
- tag.children(false, &quot;ns&quot;, nil) # =&gt; children of namespace &quot;ns&quot;
680
- </pre>
681
- <p><a class="source-toggle" href="#"
682
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
683
- <div class="method-source-code" id="M000022-source">
684
- <pre>
685
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 258</span>
686
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children</span>(<span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">name</span> = <span class="ruby-identifier">:DEFAULT</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: child</span>
687
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:DEFAULT</span>
688
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">namespace</span>
689
- <span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>
690
- <span class="ruby-keyword kw">end</span>
691
-
692
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
693
- <span class="ruby-identifier">each_child</span>(<span class="ruby-identifier">recursive</span>, <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
694
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
695
15
 
696
- <span class="ruby-keyword kw">else</span>
697
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">recursive</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">namespace</span>
698
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@children</span>
699
-
700
- <span class="ruby-keyword kw">else</span>
701
- <span class="ruby-identifier">result</span> = []
702
- <span class="ruby-identifier">each_child</span>(<span class="ruby-identifier">recursive</span>, <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
703
- <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>
704
- }
705
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
706
- <span class="ruby-keyword kw">end</span>
707
- <span class="ruby-keyword kw">end</span>
708
- <span class="ruby-keyword kw">end</span>
709
- </pre>
710
- </div>
711
- </div>
712
- </div>
713
-
714
- <div id="method-M000050" class="method-detail">
715
- <a name="M000050"></a>
716
-
717
- <div class="method-heading">
718
- <a href="#M000050" class="method-signature">
719
- <span class="method-name">children_to_string</span><span class="method-args">(line_prefix = &quot;&quot;, s = &quot;&quot;)</span>
720
- </a>
721
- </div>
722
-
723
- <div class="method-description">
724
- <p>
725
- Returns a string representation of the <a
726
- href="Tag.html#M000022">children</a> tags.
727
- </p>
728
- <table>
729
- <tr><td valign="top"><tt>linePrefix</tt>:</td><td>A prefix to insert before every line.
730
-
731
- </td></tr>
732
- <tr><td valign="top"><tt>s</tt>:</td><td>a String that receives the string representation
733
-
734
- </td></tr>
735
- </table>
736
- <p>
737
- TODO: break up long lines using the backslash
738
- </p>
739
- <p><a class="source-toggle" href="#"
740
- onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
741
- <div class="method-source-code" id="M000050-source">
742
- <pre>
743
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 833</span>
744
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children_to_string</span>(<span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>)
745
- <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
746
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">to_string</span>(<span class="ruby-identifier">line_prefix</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">$/</span>
747
- <span class="ruby-keyword kw">end</span>
748
-
749
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
750
- <span class="ruby-keyword kw">end</span>
751
- </pre>
752
- </div>
753
- </div>
754
- </div>
755
-
756
- <div id="method-M000023" class="method-detail">
757
- <a name="M000023"></a>
758
-
759
- <div class="method-heading">
760
- <a href="#M000023" class="method-signature">
761
- <span class="method-name">children_values</span><span class="method-args">(name = nil)</span>
762
- </a>
763
- </div>
764
-
765
- <div class="method-description">
766
- <p>
767
- Returns the <a href="Tag.html#M000033">values</a> of all the <a
768
- href="Tag.html#M000022">children</a> with the given <tt>name</tt>. If the
769
- <a href="Tag.html#M000024">child</a> has more than one <a
770
- href="Tag.html#M000020">value</a>, all the <a
771
- href="Tag.html#M000033">values</a> will be added as an array. If the <a
772
- href="Tag.html#M000024">child</a> has no <a
773
- href="Tag.html#M000020">value</a>, <tt>nil</tt> will be added. The search
774
- is not recursive.
775
- </p>
776
- <table>
777
- <tr><td valign="top"><tt>name</tt>:</td><td>if nil, all <a href="Tag.html#M000022">children</a> are considered (nil by
778
- default).
779
-
780
- </td></tr>
781
- </table>
782
- <p><a class="source-toggle" href="#"
783
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
784
- <div class="method-source-code" id="M000023-source">
785
- <pre>
786
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 287</span>
787
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children_values</span>(<span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
788
- <span class="ruby-identifier">children_values</span> = []
789
- <span class="ruby-identifier">each_child</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">name</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
790
- <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span>
791
- <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
792
- <span class="ruby-identifier">children_values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
793
- <span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span>
794
- <span class="ruby-identifier">children_values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span>
795
- <span class="ruby-keyword kw">else</span>
796
- <span class="ruby-identifier">children_values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">values</span>
797
- <span class="ruby-keyword kw">end</span>
798
- }
799
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">children_values</span>
800
- <span class="ruby-keyword kw">end</span>
801
- </pre>
802
- </div>
803
- </div>
804
- </div>
805
-
806
- <div id="method-M000040" class="method-detail">
807
- <a name="M000040"></a>
808
-
809
- <div class="method-heading">
810
- <a href="#M000040" class="method-signature">
811
- <span class="method-name">clear_attributes</span><span class="method-args">(namespace = nil)</span>
812
- </a>
813
- </div>
814
-
815
- <div class="method-description">
816
- <p>
817
- Clears the <a href="Tag.html#M000038">attributes</a> of the specified
818
- namespace or all the <a href="Tag.html#M000038">attributes</a> if
819
- <tt>namespace</tt> is <tt>nil</tt>.
820
- </p>
821
- <p><a class="source-toggle" href="#"
822
- onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
823
- <div class="method-source-code" id="M000040-source">
824
- <pre>
825
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 596</span>
826
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_attributes</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>)
827
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
828
- <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">clear</span>
829
- <span class="ruby-keyword kw">else</span>
830
- <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">namespace</span>)
831
- <span class="ruby-keyword kw">end</span>
832
- <span class="ruby-keyword kw">end</span>
833
- </pre>
834
- </div>
835
- </div>
836
- </div>
837
-
838
- <div id="method-M000018" class="method-detail">
839
- <a name="M000018"></a>
840
-
841
- <div class="method-heading">
842
- <a href="#M000018" class="method-signature">
843
- <span class="method-name">clear_children</span><span class="method-args">()</span>
844
- </a>
845
- </div>
846
-
847
- <div class="method-description">
848
- <p>
849
- Removes all <a href="Tag.html#M000022">children</a>.
850
- </p>
851
- <p><a class="source-toggle" href="#"
852
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
853
- <div class="method-source-code" id="M000018-source">
854
- <pre>
855
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 205</span>
856
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_children</span>
857
- <span class="ruby-ivar">@children</span> = []
858
- <span class="ruby-keyword kw">nil</span>
859
- <span class="ruby-keyword kw">end</span>
860
- </pre>
861
- </div>
862
- </div>
863
- </div>
864
-
865
- <div id="method-M000032" class="method-detail">
866
- <a name="M000032"></a>
867
-
868
- <div class="method-heading">
869
- <a href="#M000032" class="method-signature">
870
- <span class="method-name">clear_values</span><span class="method-args">()</span>
871
- </a>
872
- </div>
873
-
874
- <div class="method-description">
875
- <p>
876
- Removes all <a href="Tag.html#M000033">values</a>.
877
- </p>
878
- <p><a class="source-toggle" href="#"
879
- onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
880
- <div class="method-source-code" id="M000032-source">
881
- <pre>
882
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 437</span>
883
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_values</span>
884
- <span class="ruby-ivar">@values</span> = []
885
- <span class="ruby-keyword kw">nil</span>
886
- <span class="ruby-keyword kw">end</span>
887
- </pre>
888
- </div>
889
- </div>
890
- </div>
891
-
892
- <div id="method-M000051" class="method-detail">
893
- <a name="M000051"></a>
894
-
895
- <div class="method-heading">
896
- <a href="#M000051" class="method-signature">
897
- <span class="method-name">eql?</span><span class="method-args">(o)</span>
898
- </a>
899
- </div>
900
-
901
- <div class="method-description">
902
- <p>
903
- Returns true if this tag (including all of its <a
904
- href="Tag.html#M000033">values</a>, <a
905
- href="Tag.html#M000038">attributes</a>, and <a
906
- href="Tag.html#M000022">children</a>) is equivalent to the given tag.
907
- </p>
908
- <p>
909
- Returns true if the tags are equivalet
910
- </p>
911
- <p><a class="source-toggle" href="#"
912
- onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
913
- <div class="method-source-code" id="M000051-source">
914
- <pre>
915
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 846</span>
916
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">o</span>)
917
- <span class="ruby-comment cmt"># this is safe because to_string() dumps the full state</span>
918
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Tag</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_string</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">to_string</span>;
919
- <span class="ruby-keyword kw">end</span>
920
- </pre>
921
- </div>
922
- </div>
923
- </div>
924
-
925
- <div id="method-M000037" class="method-detail">
926
- <a name="M000037"></a>
927
-
928
- <div class="method-heading">
929
- <a href="#M000037" class="method-signature">
930
- <span class="method-name">has_attribute?</span><span class="method-args">(namespace = nil, key = nil)</span>
931
- </a>
932
- </div>
933
-
934
- <div class="method-description">
935
- <p>
936
- Indicates whether there is at least an <a
937
- href="Tag.html#M000036">attribute</a> in this <a href="Tag.html">Tag</a>.
938
- </p>
939
- <pre>
940
- has_attribute?
941
- </pre>
942
- <p>
943
- Indicates whether there is the specified <a
944
- href="Tag.html#M000036">attribute</a> exists in this <a
945
- href="Tag.html">Tag</a>.
946
- </p>
947
- <pre>
948
- has_attribute?(key)
949
- has_attribute?(namespace, key)
950
- </pre>
951
- <p><a class="source-toggle" href="#"
952
- onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
953
- <div class="method-source-code" id="M000037-source">
954
- <pre>
955
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 531</span>
956
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_attribute?</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">key</span> = <span class="ruby-keyword kw">nil</span>)
957
- <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>
958
-
959
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">key</span>
960
- <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
961
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">key</span>)
962
-
963
- <span class="ruby-keyword kw">else</span>
964
- <span class="ruby-identifier">attributes</span> { <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> }
965
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
966
- <span class="ruby-keyword kw">end</span>
967
- <span class="ruby-keyword kw">end</span>
968
- </pre>
969
- </div>
970
- </div>
971
- </div>
972
-
973
- <div id="method-M000025" class="method-detail">
974
- <a name="M000025"></a>
975
-
976
- <div class="method-heading">
977
- <a href="#M000025" class="method-signature">
978
- <span class="method-name">has_child?</span><span class="method-args">(name)</span>
979
- </a>
980
- </div>
981
-
982
- <div class="method-description">
983
- <p>
984
- Indicates whether the <a href="Tag.html#M000024">child</a> <a
985
- href="Tag.html">Tag</a> of given name exists.
986
- </p>
987
- <table>
988
- <tr><td valign="top"><tt>name</tt>:</td><td>name of the searched <a href="Tag.html#M000024">child</a> <a
989
- href="Tag.html">Tag</a>
990
-
991
- </td></tr>
992
- </table>
993
- <p><a class="source-toggle" href="#"
994
- onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
995
- <div class="method-source-code" id="M000025-source">
996
- <pre>
997
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 330</span>
998
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_child?</span>(<span class="ruby-identifier">name</span>)
999
- <span class="ruby-operator">!</span><span class="ruby-identifier">child</span>(<span class="ruby-identifier">name</span>).<span class="ruby-identifier">nil?</span>
1000
- <span class="ruby-keyword kw">end</span>
1001
- </pre>
1002
- </div>
1003
- </div>
1004
- </div>
1005
-
1006
- <div id="method-M000026" class="method-detail">
1007
- <a name="M000026"></a>
1008
-
1009
- <div class="method-heading">
1010
- <a href="#M000026" class="method-signature">
1011
- <span class="method-name">has_children?</span><span class="method-args">()</span>
1012
- </a>
1013
- </div>
1014
-
1015
- <div class="method-description">
1016
- <p>
1017
- Indicates whether there are <a href="Tag.html#M000022">children</a> <a
1018
- href="Tag.html">Tag</a>.
1019
- </p>
1020
- <p><a class="source-toggle" href="#"
1021
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
1022
- <div class="method-source-code" id="M000026-source">
1023
- <pre>
1024
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 336</span>
1025
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_children?</span>
1026
- <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1027
- <span class="ruby-keyword kw">end</span>
1028
- </pre>
1029
- </div>
1030
- </div>
1031
- </div>
1032
-
1033
- <div id="method-M000030" class="method-detail">
1034
- <a name="M000030"></a>
1035
-
1036
- <div class="method-heading">
1037
- <a href="#M000030" class="method-signature">
1038
- <span class="method-name">has_value?</span><span class="method-args">(v)</span>
1039
- </a>
1040
- </div>
1041
-
1042
- <div class="method-description">
1043
- <p>
1044
- Returns true if <tt>v</tt> is a <a href="Tag.html#M000020">value</a> of
1045
- this <a href="Tag.html">Tag</a>&#8216;s.
1046
- </p>
1047
- <p><a class="source-toggle" href="#"
1048
- onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1049
- <div class="method-source-code" id="M000030-source">
1050
- <pre>
1051
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 416</span>
1052
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">v</span>)
1053
- <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">v</span>)
1054
- <span class="ruby-keyword kw">end</span>
1055
- </pre>
1056
- </div>
1057
- </div>
1058
- </div>
1059
-
1060
- <div id="method-M000053" class="method-detail">
1061
- <a name="M000053"></a>
1062
-
1063
- <div class="method-heading">
1064
- <a href="#M000053" class="method-signature">
1065
- <span class="method-name">hash</span><span class="method-args">()</span>
1066
- </a>
1067
- </div>
1068
-
1069
- <div class="method-description">
1070
- <p>
1071
- Returns The <a href="Tag.html#M000053">hash</a> (based on the output from
1072
- toString())
1073
- </p>
1074
- <p><a class="source-toggle" href="#"
1075
- onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
1076
- <div class="method-source-code" id="M000053-source">
1077
- <pre>
1078
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 854</span>
1079
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash</span>
1080
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">to_string</span>.<span class="ruby-identifier">hash</span>
1081
- <span class="ruby-keyword kw">end</span>
1082
- </pre>
1083
- </div>
1084
- </div>
1085
- </div>
1086
-
1087
- <div id="method-M000043" class="method-detail">
1088
- <a name="M000043"></a>
1089
-
1090
- <div class="method-heading">
1091
- <a href="#M000043" class="method-signature">
1092
- <span class="method-name">name=</span><span class="method-args">(a_name)</span>
1093
- </a>
1094
- </div>
1095
-
1096
- <div class="method-description">
1097
- <p>
1098
- Sets the name of this <a href="Tag.html">Tag</a>.
1099
- </p>
1100
- <p>
1101
- Raises <tt>ArgumentError</tt> if the name is not a legal SDL
1102
- </p>
1103
- <pre>
1104
- identifier (see SDL4R#validate_identifier)
1105
- </pre>
1106
- <p><a class="source-toggle" href="#"
1107
- onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
1108
- <div class="method-source-code" id="M000043-source">
1109
- <pre>
1110
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 669</span>
1111
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">name=</span>(<span class="ruby-identifier">a_name</span>)
1112
- <span class="ruby-identifier">a_name</span> = <span class="ruby-identifier">a_name</span>.<span class="ruby-identifier">to_s</span>
1113
- <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">a_name</span>)
1114
- <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">a_name</span>
1115
- <span class="ruby-keyword kw">end</span>
1116
- </pre>
1117
- </div>
1118
- </div>
1119
- </div>
1120
-
1121
- <div id="method-M000044" class="method-detail">
1122
- <a name="M000044"></a>
1123
-
1124
- <div class="method-heading">
1125
- <a href="#M000044" class="method-signature">
1126
- <span class="method-name">namespace=</span><span class="method-args">(a_namespace)</span>
1127
- </a>
1128
- </div>
1129
-
1130
- <div class="method-description">
1131
- <p>
1132
- The namespace to set. <tt>nil</tt> will be coerced to the empty string.
1133
- </p>
1134
- <p>
1135
- Raises <tt>ArgumentError</tt> if the namespace is non-blank and is not
1136
- </p>
1137
- <pre>
1138
- a legal SDL identifier (see {@link SDL4R#validate_identifier(String)})
1139
- </pre>
1140
- <p><a class="source-toggle" href="#"
1141
- onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
1142
- <div class="method-source-code" id="M000044-source">
1143
- <pre>
1144
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 680</span>
1145
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespace=</span>(<span class="ruby-identifier">a_namespace</span>)
1146
- <span class="ruby-identifier">a_namespace</span> = <span class="ruby-identifier">a_namespace</span>.<span class="ruby-identifier">to_s</span>
1147
- <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">a_namespace</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a_namespace</span>.<span class="ruby-identifier">empty?</span>
1148
- <span class="ruby-ivar">@namespace</span> = <span class="ruby-identifier">a_namespace</span>
1149
- <span class="ruby-keyword kw">end</span>
1150
- </pre>
1151
- </div>
1152
- </div>
1153
- </div>
1154
-
1155
- <div id="method-M000014" class="method-detail">
1156
- <a name="M000014"></a>
1157
-
1158
- <div class="method-heading">
1159
- <a href="#M000014" class="method-signature">
1160
- <span class="method-name">new_child</span><span class="method-args">(*args, &amp;block)</span>
1161
- </a>
1162
- </div>
1163
-
1164
- <div class="method-description">
1165
- <p>
1166
- Creates a <a href="Tag.html#M000013">new</a> <a
1167
- href="Tag.html#M000024">child</a> tag. Can take a block so that you can <a
1168
- href="Tag.html#M000047">write</a> something like:
1169
- </p>
1170
- <pre>
1171
- car = Tag.new(&quot;car&quot;) do
1172
- new_child(&quot;wheels&quot;) do
1173
- self &lt;&lt; 4
1174
- end
1175
- end
1176
- </pre>
1177
- <p>
1178
- The context of execution of the given block is the <a
1179
- href="Tag.html#M000024">child</a> instance
1180
- </p>
1181
- <p>
1182
- Returns the created <a href="Tag.html#M000024">child</a> <a
1183
- href="Tag.html">Tag</a>.
1184
- </p>
1185
- <p><a class="source-toggle" href="#"
1186
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
1187
- <div class="method-source-code" id="M000014-source">
1188
- <pre>
1189
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 132</span>
1190
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new_child</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1191
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">add_child</span> <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1192
- <span class="ruby-keyword kw">end</span>
1193
- </pre>
1194
- </div>
1195
- </div>
1196
- </div>
1197
-
1198
- <div id="method-M000045" class="method-detail">
1199
- <a name="M000045"></a>
1200
-
1201
- <div class="method-heading">
1202
- <a href="#M000045" class="method-signature">
1203
- <span class="method-name">read</span><span class="method-args">(input)</span>
1204
- </a>
1205
- </div>
1206
-
1207
- <div class="method-description">
1208
- <p>
1209
- Adds all the tags specified in the given IO, String, Pathname or URI to
1210
- this <a href="Tag.html">Tag</a>.
1211
- </p>
1212
- <p>
1213
- Returns this <a href="Tag.html">Tag</a> after adding all the <a
1214
- href="Tag.html#M000022">children</a> <a href="Tag.html#M000045">read</a>
1215
- from <tt>input</tt>.
1216
- </p>
1217
- <p><a class="source-toggle" href="#"
1218
- onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
1219
- <div class="method-source-code" id="M000045-source">
1220
- <pre>
1221
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 690</span>
1222
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">input</span>)
1223
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>
1224
- <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">true</span>) { <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input</span>) }
1225
-
1226
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Pathname</span>
1227
- <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">true</span>) { <span class="ruby-identifier">input</span>.<span class="ruby-identifier">open</span>(<span class="ruby-value str">&quot;r:UTF-8&quot;</span>) }
1228
-
1229
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">URI</span>
1230
- <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">true</span>) { <span class="ruby-identifier">input</span>.<span class="ruby-identifier">open</span> }
1231
-
1232
- <span class="ruby-keyword kw">else</span>
1233
- <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">false</span>) { <span class="ruby-identifier">input</span> }
1234
- <span class="ruby-keyword kw">end</span>
1235
-
1236
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
1237
- <span class="ruby-keyword kw">end</span>
1238
- </pre>
1239
- </div>
1240
- </div>
1241
- </div>
1242
-
1243
- <div id="method-M000046" class="method-detail">
1244
- <a name="M000046"></a>
1245
-
1246
- <div class="method-heading">
1247
- <a href="#M000046" class="method-signature">
1248
- <span class="method-name">read_from_io</span><span class="method-args">(close_io) {|| ...}</span>
1249
- </a>
1250
- </div>
1251
-
1252
- <div class="method-description">
1253
- <p>
1254
- Reads and parses the <tt>io</tt> returned by the specified block and closes
1255
- this <tt>io</tt> if <tt>close_io</tt> is true.
1256
- </p>
1257
- <p><a class="source-toggle" href="#"
1258
- onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
1259
- <div class="method-source-code" id="M000046-source">
1260
- <pre>
1261
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 709</span>
1262
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_from_io</span>(<span class="ruby-identifier">close_io</span>)
1263
- <span class="ruby-identifier">io</span> = <span class="ruby-keyword kw">yield</span>
1264
-
1265
- <span class="ruby-keyword kw">begin</span>
1266
- <span class="ruby-constant">Parser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">io</span>).<span class="ruby-identifier">parse</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tag</span><span class="ruby-operator">|</span>
1267
- <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">tag</span>)
1268
- <span class="ruby-keyword kw">end</span>
1269
-
1270
- <span class="ruby-keyword kw">ensure</span>
1271
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">close_io</span>
1272
- <span class="ruby-identifier">io</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
1273
- <span class="ruby-keyword kw">end</span>
1274
- <span class="ruby-keyword kw">end</span>
1275
- <span class="ruby-keyword kw">end</span>
1276
- </pre>
1277
- </div>
1278
- </div>
1279
- </div>
1280
-
1281
- <div id="method-M000039" class="method-detail">
1282
- <a name="M000039"></a>
1283
-
1284
- <div class="method-heading">
1285
- <a href="#M000039" class="method-signature">
1286
- <span class="method-name">remove_attribute</span><span class="method-args">(namespace, key = nil)</span>
1287
- </a>
1288
- </div>
1289
-
1290
- <div class="method-description">
1291
- <pre>
1292
- remove_attribute(key)
1293
- remove_attribute(namespace, key)
1294
- </pre>
1295
- <p>
1296
- Removes the <a href="Tag.html#M000036">attribute</a>, whose name and
1297
- namespace are specified.
1298
- </p>
1299
- <table>
1300
- <tr><td valign="top"><tt>key</tt>:</td><td>name of the removed atribute
1301
-
1302
- </td></tr>
1303
- <tr><td valign="top"><tt>namespace</tt>:</td><td>namespace of the removed <a href="Tag.html#M000036">attribute</a> (equal to
1304
- &quot;&quot;, default namespace, by default)
1305
-
1306
- </td></tr>
1307
- </table>
1308
- <p>
1309
- Returns the <a href="Tag.html#M000020">value</a> of the removed <a
1310
- href="Tag.html#M000036">attribute</a> or <tt>nil</tt> if it didn&#8216;t
1311
- exist.
1312
- </p>
1313
- <p><a class="source-toggle" href="#"
1314
- onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
1315
- <div class="method-source-code" id="M000039-source">
1316
- <pre>
1317
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 587</span>
1318
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-keyword kw">nil</span>)
1319
- <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>
1320
- <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
1321
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>)
1322
- <span class="ruby-keyword kw">end</span>
1323
- </pre>
1324
- </div>
1325
- </div>
1326
- </div>
1327
-
1328
- <div id="method-M000017" class="method-detail">
1329
- <a name="M000017"></a>
1330
-
1331
- <div class="method-heading">
1332
- <a href="#M000017" class="method-signature">
1333
- <span class="method-name">remove_child</span><span class="method-args">(child)</span>
1334
- </a>
1335
- </div>
1336
-
1337
- <div class="method-description">
1338
- <p>
1339
- Remove a <a href="Tag.html#M000024">child</a> from this <a
1340
- href="Tag.html">Tag</a>
1341
- </p>
1342
- <table>
1343
- <tr><td valign="top"><tt><a href="Tag.html#M000024">child</a></tt>:</td><td>the <a href="Tag.html#M000024">child</a> to remove
1344
-
1345
- </td></tr>
1346
- </table>
1347
- <p>
1348
- Returns true if the <a href="Tag.html#M000024">child</a> exists and is
1349
- removed
1350
- </p>
1351
- <p><a class="source-toggle" href="#"
1352
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1353
- <div class="method-source-code" id="M000017-source">
1354
- <pre>
1355
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 199</span>
1356
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_child</span>(<span class="ruby-identifier">child</span>)
1357
- <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">child</span>).<span class="ruby-identifier">nil?</span>
1358
- <span class="ruby-keyword kw">end</span>
1359
- </pre>
1360
- </div>
1361
- </div>
1362
- </div>
1363
-
1364
- <div id="method-M000031" class="method-detail">
1365
- <a name="M000031"></a>
1366
-
1367
- <div class="method-heading">
1368
- <a href="#M000031" class="method-signature">
1369
- <span class="method-name">remove_value</span><span class="method-args">(v)</span>
1370
- </a>
1371
- </div>
1372
-
1373
- <div class="method-description">
1374
- <p>
1375
- Removes the first occurence of the specified <a
1376
- href="Tag.html#M000020">value</a> from this <a href="Tag.html">Tag</a>.
1377
- </p>
1378
- <table>
1379
- <tr><td valign="top"><tt>v</tt>:</td><td>The <a href="Tag.html#M000020">value</a> to remove
1380
-
1381
- </td></tr>
1382
- </table>
1383
- <p>
1384
- Returns true If the <a href="Tag.html#M000020">value</a> exists and is
1385
- removed
1386
- </p>
1387
- <p><a class="source-toggle" href="#"
1388
- onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1389
- <div class="method-source-code" id="M000031-source">
1390
- <pre>
1391
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 426</span>
1392
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_value</span>(<span class="ruby-identifier">v</span>)
1393
- <span class="ruby-identifier">index</span> = <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">v</span>)
1394
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>
1395
- <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@values</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-identifier">index</span>).<span class="ruby-identifier">nil?</span>
1396
- <span class="ruby-keyword kw">else</span>
1397
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1398
- <span class="ruby-keyword kw">end</span>
1399
- <span class="ruby-keyword kw">end</span>
1400
- </pre>
1401
- </div>
1402
- </div>
1403
- </div>
1404
-
1405
- <div id="method-M000035" class="method-detail">
1406
- <a name="M000035"></a>
1407
-
1408
- <div class="method-heading">
1409
- <a href="#M000035" class="method-signature">
1410
- <span class="method-name">set_attribute</span><span class="method-args">(namespace, key, value = :default)</span>
1411
- </a>
1412
- </div>
1413
-
1414
- <div class="method-description">
1415
- <pre>
1416
- set_attribute(key, value)
1417
- set_attribute(namespace, key, value)
1418
- </pre>
1419
- <p>
1420
- Set an <a href="Tag.html#M000036">attribute</a> in the given namespace for
1421
- this tag. The allowable <a href="Tag.html#M000036">attribute</a> <a
1422
- href="Tag.html#M000020">value</a> types are the same as those allowed for
1423
- {@link addValue(Object)}
1424
- </p>
1425
- <table>
1426
- <tr><td valign="top"><tt>namespace</tt>:</td><td>The namespace for this <a href="Tag.html#M000036">attribute</a>
1427
-
1428
- </td></tr>
1429
- <tr><td valign="top"><tt>key</tt>:</td><td>The <a href="Tag.html#M000036">attribute</a> key
1430
-
1431
- </td></tr>
1432
- <tr><td valign="top"><tt><a href="Tag.html#M000020">value</a></tt>:</td><td>The <a href="Tag.html#M000036">attribute</a> <a
1433
- href="Tag.html#M000020">value</a>
1434
-
1435
- </td></tr>
1436
- </table>
1437
- <p>
1438
- @throws IllegalArgumentException if the key is not a legal SDL
1439
- </p>
1440
- <pre>
1441
- identifier (see {@link SDL4R#validateIdentifier(String)}), or the
1442
- namespace is non-blank and is not a legal SDL identifier, or the
1443
- value is not a legal SDL type
1444
- </pre>
1445
- <p><a class="source-toggle" href="#"
1446
- onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
1447
- <div class="method-source-code" id="M000035-source">
1448
- <pre>
1449
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 488</span>
1450
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span> = <span class="ruby-identifier">:default</span>)
1451
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:default</span>
1452
- <span class="ruby-identifier">value</span> = <span class="ruby-identifier">key</span>
1453
- <span class="ruby-identifier">key</span> = <span class="ruby-identifier">namespace</span>
1454
- <span class="ruby-identifier">namespace</span> = <span class="ruby-value str">&quot;&quot;</span>
1455
- <span class="ruby-keyword kw">end</span>
1456
-
1457
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute namespace must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>
1458
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute key must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>
1459
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute key cannot be empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">empty?</span>
1460
-
1461
- <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">namespace</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
1462
- <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">key</span>)
1463
-
1464
- <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
1465
-
1466
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span>
1467
- <span class="ruby-identifier">attributes</span> = {}
1468
- <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>] = <span class="ruby-identifier">attributes</span>
1469
- <span class="ruby-keyword kw">end</span>
1470
-
1471
- <span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">value</span>)
1472
- <span class="ruby-keyword kw">end</span>
1473
- </pre>
1474
- </div>
1475
- </div>
1476
- </div>
1477
-
1478
- <div id="method-M000041" class="method-detail">
1479
- <a name="M000041"></a>
1480
-
1481
- <div class="method-heading">
1482
- <a href="#M000041" class="method-signature">
1483
- <span class="method-name">set_attributes</span><span class="method-args">(namespace, attribute_hash = nil)</span>
1484
- </a>
1485
- </div>
1486
-
1487
- <div class="method-description">
1488
- <pre>
1489
- set_attributes(attribute_hash)
1490
- set_attributes(namespace, attribute_hash)
1491
- </pre>
1492
- <p>
1493
- Sets the <a href="Tag.html#M000038">attributes</a> specified by a Hash in
1494
- the given <tt>namespace</tt> in one operation. The previous <a
1495
- href="Tag.html#M000038">attributes</a> of the specified <tt>namespace</tt>
1496
- are removed. See <a href="Tag.html#M000035">set_attribute</a> for allowable
1497
- <a href="Tag.html#M000036">attribute</a> <a
1498
- href="Tag.html#M000020">value</a> types.
1499
- </p>
1500
- <table>
1501
- <tr><td valign="top"><tt><a href="Tag.html#M000038">attributes</a></tt>:</td><td>a Hash where keys are <a href="Tag.html#M000036">attribute</a> keys
1502
-
1503
- </td></tr>
1504
- <tr><td valign="top"><tt>namespace</tt>:</td><td>&quot;&quot; (default namespace) by default
1505
-
1506
- </td></tr>
1507
- </table>
1508
- <p>
1509
- Raises an <tt>ArgumentError</tt> if any key in the map is not a legal SDL
1510
- </p>
1511
- <pre>
1512
- identifier (see SDL4R#validate_identifier), or any value
1513
- is not a legal SDL type.
1514
- </pre>
1515
- <p><a class="source-toggle" href="#"
1516
- onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
1517
- <div class="method-source-code" id="M000041-source">
1518
- <pre>
1519
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 637</span>
1520
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_attributes</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">attribute_hash</span> = <span class="ruby-keyword kw">nil</span>)
1521
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">nil?</span>
1522
- <span class="ruby-identifier">attribute_hash</span> = <span class="ruby-identifier">namespace</span>
1523
- <span class="ruby-identifier">namespace</span> = <span class="ruby-value str">&quot;&quot;</span>
1524
- <span class="ruby-keyword kw">end</span>
1525
-
1526
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;namespace can't be nil&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
1527
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute_hash should be a Hash&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>
1528
-
1529
- <span class="ruby-identifier">namespace_attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
1530
- <span class="ruby-identifier">namespace_attributes</span>.<span class="ruby-identifier">clear</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace_attributes</span>
1531
-
1532
- <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
1533
- <span class="ruby-comment cmt"># Calling set_attribute() is required to ensure validations</span>
1534
- <span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
1535
- <span class="ruby-keyword kw">end</span>
1536
- <span class="ruby-keyword kw">end</span>
1537
- </pre>
1538
- </div>
1539
- </div>
1540
- </div>
1541
-
1542
- <div id="method-M000027" class="method-detail">
1543
- <a name="M000027"></a>
1544
-
1545
- <div class="method-heading">
1546
- <a href="#M000027" class="method-signature">
1547
- <span class="method-name">to_child_hash</span><span class="method-args">()</span>
1548
- </a>
1549
- </div>
1550
-
1551
- <div class="method-description">
1552
- <p>
1553
- Returns a <a href="Tag.html#M000013">new</a> Hash where the <a
1554
- href="Tag.html#M000022">children</a>&#8216;s names as keys and their <a
1555
- href="Tag.html#M000033">values</a> as the key&#8216;s <a
1556
- href="Tag.html#M000020">value</a>. Example:
1557
- </p>
1558
- <pre>
1559
- child1 &quot;toto&quot;
1560
- child2 2
1561
- </pre>
1562
- <p>
1563
- would give
1564
- </p>
1565
- <pre>
1566
- { &quot;child1&quot; =&gt; &quot;toto&quot;, &quot;child2&quot; =&gt; 2 }
1567
- </pre>
1568
- <p><a class="source-toggle" href="#"
1569
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1570
- <div class="method-source-code" id="M000027-source">
1571
- <pre>
1572
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 375</span>
1573
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_child_hash</span>
1574
- <span class="ruby-identifier">hash</span> = {}
1575
- <span class="ruby-identifier">children</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span> }
1576
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>
1577
- <span class="ruby-keyword kw">end</span>
1578
- </pre>
1579
- </div>
1580
- </div>
1581
- </div>
1582
-
1583
- <div id="method-M000028" class="method-detail">
1584
- <a name="M000028"></a>
1585
-
1586
- <div class="method-heading">
1587
- <a href="#M000028" class="method-signature">
1588
- <span class="method-name">to_child_string_hash</span><span class="method-args">()</span>
1589
- </a>
1590
- </div>
1591
-
1592
- <div class="method-description">
1593
- <p>
1594
- Returns a <a href="Tag.html#M000013">new</a> Hash where the <a
1595
- href="Tag.html#M000022">children</a>&#8216;s names as keys and their <a
1596
- href="Tag.html#M000033">values</a> as the key&#8216;s <a
1597
- href="Tag.html#M000020">value</a>. Values are converted to Strings.
1598
- <tt>nil</tt> <a href="Tag.html#M000033">values</a> become empty Strings.
1599
- Example:
1600
- </p>
1601
- <pre>
1602
- child1 &quot;toto&quot;
1603
- child2 2
1604
- child3 null
1605
- </pre>
1606
- <p>
1607
- would give
1608
- </p>
1609
- <pre>
1610
- { &quot;child1&quot; =&gt; &quot;toto&quot;, &quot;child2&quot; =&gt; &quot;2&quot;, &quot;child3&quot; =&gt; &quot;&quot; }
1611
- </pre>
1612
- <p><a class="source-toggle" href="#"
1613
- onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1614
- <div class="method-source-code" id="M000028-source">
1615
- <pre>
1616
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 393</span>
1617
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_child_string_hash</span>
1618
- <span class="ruby-identifier">hash</span> = {}
1619
- <span class="ruby-identifier">children</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
1620
- <span class="ruby-comment cmt"># FIXME: it is quite hard to be sure whether we should mimic the Java version</span>
1621
- <span class="ruby-comment cmt"># as there might be a lot of values that don't translate nicely to Strings.</span>
1622
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_s</span>
1623
- <span class="ruby-keyword kw">end</span>
1624
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>
1625
- <span class="ruby-keyword kw">end</span>
1626
- </pre>
1627
- </div>
1628
- </div>
1629
- </div>
1630
-
1631
- <div id="method-M000048" class="method-detail">
1632
- <a name="M000048"></a>
1633
-
1634
- <div class="method-heading">
1635
- <a href="#M000048" class="method-signature">
1636
- <span class="method-name">to_s</span><span class="method-args">()</span>
1637
- </a>
1638
- </div>
1639
-
1640
- <div class="method-description">
1641
- <p>
1642
- Get a String representation of this SDL <a href="Tag.html">Tag</a>. This
1643
- method returns a complete description of the <a
1644
- href="Tag.html">Tag</a>&#8216;s state using SDL (i.e. the output can be
1645
- parsed by {@link read(String)})
1646
- </p>
1647
- <p>
1648
- Returns A string representation of this tag using SDL
1649
- </p>
1650
- <p><a class="source-toggle" href="#"
1651
- onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
1652
- <div class="method-source-code" id="M000048-source">
1653
- <pre>
1654
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 766</span>
1655
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1656
- <span class="ruby-identifier">to_string</span>
1657
- <span class="ruby-keyword kw">end</span>
1658
- </pre>
1659
- </div>
1660
- </div>
1661
- </div>
1662
-
1663
- <div id="method-M000049" class="method-detail">
1664
- <a name="M000049"></a>
1665
-
1666
- <div class="method-heading">
1667
- <a href="#M000049" class="method-signature">
1668
- <span class="method-name">to_string</span><span class="method-args">(line_prefix = &quot;&quot;, indent = &quot;\t&quot;)</span>
1669
- </a>
1670
- </div>
1671
-
1672
- <div class="method-description">
1673
- <table>
1674
- <tr><td valign="top"><tt>linePrefix</tt>:</td><td>A prefix to insert before every line.
1675
-
1676
- </td></tr>
1677
- </table>
1678
- <p>
1679
- Returns A string representation of this tag using SDL
1680
- </p>
1681
- <p>
1682
- TODO: break up long lines using the backslash
1683
- </p>
1684
- <p><a class="source-toggle" href="#"
1685
- onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
1686
- <div class="method-source-code" id="M000049-source">
1687
- <pre>
1688
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 776</span>
1689
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_string</span>(<span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-value str">&quot;\t&quot;</span>)
1690
- <span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line_prefix</span>.<span class="ruby-identifier">nil?</span>
1691
- <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>
1692
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span>
1693
-
1694
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;content&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
1695
- <span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">true</span>
1696
- <span class="ruby-keyword kw">else</span>
1697
- <span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">false</span>
1698
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
1699
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span>
1700
- <span class="ruby-keyword kw">end</span>
1701
-
1702
- <span class="ruby-comment cmt"># output values</span>
1703
- <span class="ruby-identifier">values</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
1704
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">skip_value_space</span>
1705
- <span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">false</span>
1706
- <span class="ruby-keyword kw">else</span>
1707
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span>
1708
- <span class="ruby-keyword kw">end</span>
1709
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">line_prefix</span>, <span class="ruby-identifier">indent</span>)
1710
- <span class="ruby-keyword kw">end</span>
1711
-
1712
- <span class="ruby-comment cmt"># output attributes</span>
1713
- <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">empty?</span>
1714
- <span class="ruby-identifier">all_attributes_hash</span> = <span class="ruby-identifier">attributes</span>
1715
- <span class="ruby-identifier">all_attributes_array</span> = <span class="ruby-identifier">all_attributes_hash</span>.<span class="ruby-identifier">sort</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
1716
- <span class="ruby-identifier">namespace1</span>, <span class="ruby-identifier">name1</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
1717
- <span class="ruby-identifier">namespace1</span>, <span class="ruby-identifier">name1</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">namespace1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name1</span>.<span class="ruby-identifier">nil?</span>
1718
- <span class="ruby-identifier">namespace2</span>, <span class="ruby-identifier">name2</span> = <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
1719
- <span class="ruby-identifier">namespace2</span>, <span class="ruby-identifier">name2</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">namespace2</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name2</span>.<span class="ruby-identifier">nil?</span>
1720
-
1721
- <span class="ruby-identifier">diff</span> = <span class="ruby-identifier">namespace1</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">namespace2</span>
1722
- <span class="ruby-identifier">diff</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">name1</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">name2</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">diff</span>
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
1723
18
  }
1724
- <span class="ruby-identifier">all_attributes_array</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attribute_name</span>, <span class="ruby-identifier">attribute_value</span><span class="ruby-operator">|</span>
1725
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">attribute_name</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'='</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">attribute_value</span>, <span class="ruby-keyword kw">true</span>)
1726
- <span class="ruby-keyword kw">end</span>
1727
- <span class="ruby-keyword kw">end</span>
1728
-
1729
- <span class="ruby-comment cmt"># output children</span>
1730
- <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1731
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; {#{$/}&quot;</span>
1732
- <span class="ruby-identifier">children_to_string</span>(<span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">s</span>)
1733
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?}</span>
1734
- <span class="ruby-keyword kw">end</span>
1735
-
1736
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
1737
- <span class="ruby-keyword kw">end</span>
1738
- </pre>
1739
- </div>
1740
- </div>
1741
- </div>
1742
-
1743
- <div id="method-M000054" class="method-detail">
1744
- <a name="M000054"></a>
1745
-
1746
- <div class="method-heading">
1747
- <a href="#M000054" class="method-signature">
1748
- <span class="method-name">to_xml_string</span><span class="method-args">(line_prefix = &quot;&quot;, uri_by_namespace = nil)</span>
1749
- </a>
1750
- </div>
1751
-
1752
- <div class="method-description">
1753
- <p>
1754
- Returns a string containing an XML representation of this tag. Values will
1755
- be represented using _val0, _val1, etc.
1756
- </p>
1757
- <table>
1758
- <tr><td valign="top"><tt>line_prefix</tt>:</td><td>A prefix to insert before every line.
1759
-
1760
- </td></tr>
1761
- <tr><td valign="top"><tt>uri_by_namespace</tt>:</td><td>a Hash giving the URIs for the namespaces. Nil to ignore this.
1762
-
1763
- </td></tr>
1764
- </table>
1765
- <p><a class="source-toggle" href="#"
1766
- onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
1767
- <div class="method-source-code" id="M000054-source">
1768
- <pre>
1769
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 864</span>
1770
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_xml_string</span>(<span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">uri_by_namespace</span> = <span class="ruby-keyword kw">nil</span>)
1771
- <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;&quot;</span>
1772
-
1773
- <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>
1774
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?&lt;</span>
1775
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
1776
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span>
1777
-
1778
- <span class="ruby-comment cmt"># output namespace declarations</span>
1779
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri_by_namespace</span>
1780
- <span class="ruby-identifier">uri_by_namespace</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
1781
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>
1782
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; xmlns:#{namespace}=\&quot;#{uri}\&quot;&quot;</span>
1783
- <span class="ruby-keyword kw">else</span>
1784
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; xmlns=\&quot;#{uri}\&quot;&quot;</span>
1785
- <span class="ruby-keyword kw">end</span>
1786
- <span class="ruby-keyword kw">end</span>
1787
- <span class="ruby-keyword kw">end</span>
1788
-
1789
- <span class="ruby-comment cmt"># output values</span>
1790
- <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">empty?</span>
1791
- <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1792
- <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
1793
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; _val&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=\&quot;&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\&quot;&quot;</span>
1794
- <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1795
- <span class="ruby-keyword kw">end</span>
1796
- <span class="ruby-keyword kw">end</span>
1797
-
1798
- <span class="ruby-comment cmt"># output attributes</span>
1799
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_attribute?</span>
1800
- <span class="ruby-identifier">attributes</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attribute_namespace</span>, <span class="ruby-identifier">attribute_name</span>, <span class="ruby-identifier">attribute_value</span><span class="ruby-operator">|</span>
1801
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span>
1802
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{attribute_namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attribute_namespace</span>.<span class="ruby-identifier">empty?</span>
1803
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">attribute_name</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=\&quot;&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">attribute_value</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?&quot;</span>
1804
- <span class="ruby-keyword kw">end</span>
1805
- <span class="ruby-keyword kw">end</span>
1806
-
1807
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1808
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;/&gt;&quot;</span>
1809
- <span class="ruby-keyword kw">else</span>
1810
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&gt;\n&quot;</span>
1811
- <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
1812
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">to_xml_string</span>(<span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; &quot;</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?\n</span>
1813
- <span class="ruby-keyword kw">end</span>
1814
19
 
1815
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;/&quot;</span>
1816
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
1817
- <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?&gt;</span>
1818
- <span class="ruby-keyword kw">end</span>
1819
-
1820
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
1821
- <span class="ruby-keyword kw">end</span>
1822
- </pre>
1823
- </div>
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='class' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>
29
+ <span class='type'>Class</span>
30
+ SDL4R::Tag
31
+ </h1>
32
+ <ol class='paths'>
33
+ <li>
34
+ <a href="../../files/lib/sdl4r/tag_rb.html">lib/sdl4r/tag.rb</a>
35
+ </li>
36
+ </ol>
37
+ <div class='parent'>
38
+ Parent:
39
+ <strong>Object</strong>
1824
40
  </div>
1825
41
  </div>
1826
-
1827
- <div id="method-M000020" class="method-detail">
1828
- <a name="M000020"></a>
1829
-
1830
- <div class="method-heading">
1831
- <a href="#M000020" class="method-signature">
1832
- <span class="method-name">value</span><span class="method-args">()</span>
1833
- </a>
1834
- </div>
1835
-
1836
- <div class="method-description">
1837
- <p>
1838
- A convenience method that returns the first <a
1839
- href="Tag.html#M000020">value</a>.
1840
- </p>
1841
- <p><a class="source-toggle" href="#"
1842
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1843
- <div class="method-source-code" id="M000020-source">
1844
- <pre>
1845
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 228</span>
1846
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value</span>
1847
- <span class="ruby-ivar">@values</span>[<span class="ruby-value">0</span>]
1848
- <span class="ruby-keyword kw">end</span>
1849
- </pre>
42
+ <div id='content'>
43
+ <div id='text'>
44
+ <div id='description'>
45
+ <p>
46
+ SDL documents are made of Tags.
47
+ </p>
48
+ <p>
49
+ See the <a href="../../files/README.html">README</a> for a longer
50
+ explanation on SDL documents.
51
+ </p>
52
+ <p>
53
+ Do not assume that methods returning sets (Hash, Array, etc) of
54
+ children/values/attributes/etc in this class returns copies or
55
+ implementations. It can be one or the other depending on the method. The
56
+ implementations are designed to be correct and somewhat efficient, not too
57
+ protect the <a href="Tag.html">Tag</a> internal state from ill-use of the
58
+ returned values.
59
+ </p>
60
+ <h2>Authors</h2>
61
+ <p>
62
+ Daniel Leuck, Philippe Vosges
63
+ </p>
1850
64
  </div>
1851
- </div>
1852
- </div>
1853
-
1854
- <div id="method-M000019" class="method-detail">
1855
- <a name="M000019"></a>
1856
-
1857
- <div class="method-heading">
1858
- <a href="#M000019" class="method-signature">
1859
- <span class="method-name">value=</span><span class="method-args">(value)</span>
1860
- </a>
1861
- </div>
1862
-
1863
- <div class="method-description">
1864
- <p>
1865
- A convenience method that sets the first <a
1866
- href="Tag.html#M000020">value</a> in the <a
1867
- href="Tag.html#M000020">value</a> list. See {@link addValue(Object)} for
1868
- legal types.
1869
- </p>
1870
- <table>
1871
- <tr><td valign="top"><tt><a href="Tag.html#M000020">value</a></tt>:</td><td>The <a href="Tag.html#M000020">value</a> to be set.
1872
-
1873
- </td></tr>
1874
- </table>
1875
- <h3>Raises</h3>
1876
- <table>
1877
- <tr><td valign="top"><tt>ArgumentError</tt>:</td><td>if the <a href="Tag.html#M000020">value</a> is not a legal SDL type
1878
-
1879
- </td></tr>
1880
- </table>
1881
- <p><a class="source-toggle" href="#"
1882
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
1883
- <div class="method-source-code" id="M000019-source">
1884
- <pre>
1885
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 220</span>
1886
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value=</span>(<span class="ruby-identifier">value</span>)
1887
- <span class="ruby-ivar">@values</span>[<span class="ruby-value">0</span>] = <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">value</span>)
1888
- <span class="ruby-keyword kw">nil</span>
1889
- <span class="ruby-keyword kw">end</span>
1890
- </pre>
65
+ <div id='method-list'>
66
+ <h2>Methods</h2>
67
+ <h3>public class</h3>
68
+ <ol>
69
+ <li><a href="#M000038">new</a></li>
70
+ </ol>
71
+ <h3>public instance</h3>
72
+ <ol>
73
+ <li><a href="#M000041">&lt;&lt;</a></li>
74
+ <li><a href="#M000077">==</a></li>
75
+ <li><a href="#M000040">add_child</a></li>
76
+ <li><a href="#M000054">add_value</a></li>
77
+ <li><a href="#M000061">attribute</a></li>
78
+ <li><a href="#M000063">attributes</a></li>
79
+ <li><a href="#M000067">attributes=</a></li>
80
+ <li><a href="#M000049">child</a></li>
81
+ <li><a href="#M000046">child_count</a></li>
82
+ <li><a href="#M000047">children</a></li>
83
+ <li><a href="#M000075">children_to_string</a></li>
84
+ <li><a href="#M000048">children_values</a></li>
85
+ <li><a href="#M000065">clear_attributes</a></li>
86
+ <li><a href="#M000043">clear_children</a></li>
87
+ <li><a href="#M000057">clear_values</a></li>
88
+ <li><a href="#M000076">eql?</a></li>
89
+ <li><a href="#M000062">has_attribute?</a></li>
90
+ <li><a href="#M000050">has_child?</a></li>
91
+ <li><a href="#M000051">has_children?</a></li>
92
+ <li><a href="#M000055">has_value?</a></li>
93
+ <li><a href="#M000078">hash</a></li>
94
+ <li><a href="#M000068">name=</a></li>
95
+ <li><a href="#M000069">namespace=</a></li>
96
+ <li><a href="#M000039">new_child</a></li>
97
+ <li><a href="#M000070">read</a></li>
98
+ <li><a href="#M000071">read_from_io</a></li>
99
+ <li><a href="#M000064">remove_attribute</a></li>
100
+ <li><a href="#M000042">remove_child</a></li>
101
+ <li><a href="#M000056">remove_value</a></li>
102
+ <li><a href="#M000060">set_attribute</a></li>
103
+ <li><a href="#M000066">set_attributes</a></li>
104
+ <li><a href="#M000052">to_child_hash</a></li>
105
+ <li><a href="#M000053">to_child_string_hash</a></li>
106
+ <li><a href="#M000073">to_s</a></li>
107
+ <li><a href="#M000074">to_string</a></li>
108
+ <li><a href="#M000079">to_xml_string</a></li>
109
+ <li><a href="#M000045">value</a></li>
110
+ <li><a href="#M000044">value=</a></li>
111
+ <li><a href="#M000058">values</a></li>
112
+ <li><a href="#M000059">values=</a></li>
113
+ <li><a href="#M000072">write</a></li>
114
+ </ol>
115
+ <h3>protected instance</h3>
116
+ <ol>
117
+ <li><a href="#M000080">_to_xml_string</a></li>
118
+ </ol>
1891
119
  </div>
1892
- </div>
1893
- </div>
1894
-
1895
- <div id="method-M000033" class="method-detail">
1896
- <a name="M000033"></a>
1897
-
1898
- <div class="method-heading">
1899
- <a href="#M000033" class="method-signature">
1900
- <span class="method-name">values</span><span class="method-args">( {|value| ...}</span>
1901
- </a>
1902
- </div>
1903
-
1904
- <div class="method-description">
1905
- <p>
1906
- Returns an Array of the <a href="Tag.html#M000033">values</a> of this <a
1907
- href="Tag.html">Tag</a> or enumerates them.
1908
- </p>
1909
- <pre>
1910
- tag.values # =&gt; [123, &quot;spices&quot;]
1911
- tag.values { |value| puts value }
1912
- </pre>
1913
- <p><a class="source-toggle" href="#"
1914
- onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
1915
- <div class="method-source-code" id="M000033-source">
1916
- <pre>
1917
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 447</span>
1918
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values</span> <span class="ruby-comment cmt"># :yields: value</span>
1919
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1920
- <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">v</span> }
1921
- <span class="ruby-keyword kw">nil</span>
1922
- <span class="ruby-keyword kw">else</span>
1923
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@values</span>
1924
- <span class="ruby-keyword kw">end</span>
1925
- <span class="ruby-keyword kw">end</span>
1926
- </pre>
1927
- </div>
1928
- </div>
1929
- </div>
1930
-
1931
- <div id="method-M000034" class="method-detail">
1932
- <a name="M000034"></a>
1933
-
1934
- <div class="method-heading">
1935
- <a href="#M000034" class="method-signature">
1936
- <span class="method-name">values=</span><span class="method-args">(someValues)</span>
1937
- </a>
1938
- </div>
1939
-
1940
- <div class="method-description">
1941
- <p>
1942
- Set the <a href="Tag.html#M000033">values</a> for this tag. See {@link
1943
- addValue(Object)} for legal <a href="Tag.html#M000020">value</a> types.
1944
- </p>
1945
- <table>
1946
- <tr><td valign="top"><tt><a href="Tag.html#M000033">values</a></tt>:</td><td>The <a href="Tag.html#M000013">new</a> <a
1947
- href="Tag.html#M000033">values</a>
1948
-
1949
- </td></tr>
1950
- </table>
1951
- <p>
1952
- @throws IllegalArgumentException if the collection contains any <a
1953
- href="Tag.html#M000033">values</a>
1954
- </p>
1955
- <pre>
1956
- which are not legal SDL types
1957
- </pre>
1958
- <p><a class="source-toggle" href="#"
1959
- onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
1960
- <div class="method-source-code" id="M000034-source">
1961
- <pre>
1962
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 463</span>
1963
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values=</span>(<span class="ruby-identifier">someValues</span>)
1964
- <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">clear</span>()
1965
- <span class="ruby-identifier">someValues</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1966
- <span class="ruby-comment cmt"># this is required to ensure validation of types</span>
1967
- <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">v</span>)
1968
- }
1969
- <span class="ruby-keyword kw">nil</span>
1970
- <span class="ruby-keyword kw">end</span>
1971
- </pre>
120
+ <div id='section'>
121
+ <div id='attribute-list'>
122
+ <h2 class='section-bar'>Attributes</h2>
123
+ <div class='name-list'>
124
+ <table>
125
+ <tr class='top-aligned-row context-row'>
126
+ <td class='context-item-name'>name</td>
127
+ <td class='context-item-value'>[R]</td>
128
+ <td class='context-item-desc'>
129
+
130
+ the name of this <a href="Tag.html">Tag</a>
131
+ </td>
132
+ </tr>
133
+ <tr class='top-aligned-row context-row'>
134
+ <td class='context-item-name'>namespace</td>
135
+ <td class='context-item-value'>[R]</td>
136
+ <td class='context-item-desc'>
137
+
138
+ the namespace of this <a href="Tag.html">Tag</a> or an empty string when
139
+ there is no namespace (i.e. default namespace).
140
+ </td>
141
+ </tr>
142
+ </table>
143
+ </div>
144
+ </div>
145
+ <div id='methods'>
146
+ <h2>Public class methods</h2>
147
+ <div class='method public-class' id='method-M000038'>
148
+ <a name='M000038'></a>
149
+ <div class='synopsis'>
150
+ <span class='name'>new</span>
151
+ <span class='arguments'>(namespace, name = nil, &amp;block)</span>
152
+ </div>
153
+ <div class='description'>
154
+ <p>
155
+ Creates an empty tag in the given namespace. If the <tt>namespace</tt> is
156
+ nil it will be coerced to an empty String.
157
+ </p>
158
+ <pre>tag = Tag.new(&quot;name&quot;)&#x000A;tag = Tag.new(&quot;namespace&quot;, &quot;name&quot;)&#x000A;&#x000A;tag = Tag.new(&quot;fruit&quot;) do&#x000A; add_value 2&#x000A; new_child(&quot;orange&quot;) do&#x000A; set_attribute(&quot;quantity&quot;, 2)&#x000A; end&#x000A;end</pre>
159
+ <p>
160
+ which builds the following SDL structure
161
+ </p>
162
+ <pre>fruit 2 {&#x000A; orange quantity=2&#x000A;}</pre>
163
+ <p>
164
+ If you provide a block that takes an argument, you will write the same
165
+ example, as follows:
166
+ </p>
167
+ <pre>tag = Tag.new(&quot;fruit&quot;) do |t|&#x000A; t.add_value 2&#x000A; t.new_child(&quot;orange&quot;) do&#x000A; set_attribute(&quot;quantity&quot;, 2)&#x000A; end&#x000A;end</pre>
168
+ <p>
169
+ In this case, the current context is not the new <a href="Tag.html">Tag</a>
170
+ anymore but the context of your code.
171
+ </p>
172
+ <h3>Raises</h3>
173
+ <p>
174
+ ArgumentError if the name is not a legal SDL identifier (see <a
175
+ href="../SDL4R.html#M000005">SDL4R#validate_identifier</a>) or the
176
+ namespace is non-blank and is not a legal SDL identifier.
177
+ </p>
178
+ </div>
179
+ <div class='source'>
180
+ <a class='source-toggle' href='#' onclick="toggleCode('M000038-source'); return false">
181
+ [show source]
182
+ </a>
183
+ <pre id='M000038-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 106</span>&#x000A;106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;107: <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span>&#x000A;108: &#x000A;109: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;tag namespace must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;110: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;tag name must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;111: &#x000A;112: <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">namespace</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;113: <span class="ruby-ivar">@namespace</span> = <span class="ruby-identifier">namespace</span>&#x000A;114: &#x000A;115: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>&#x000A;116: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Tag name cannot be nil or empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">empty?</span>&#x000A;117: <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">name</span>)&#x000A;118: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>&#x000A;119: &#x000A;120: <span class="ruby-ivar">@children</span> = []&#x000A;121: <span class="ruby-ivar">@values</span> = []&#x000A;122: &#x000A;123: <span class="ruby-comment cmt"># a Hash of Hash : {namespace =&gt; {name =&gt; value}}</span>&#x000A;124: <span class="ruby-comment cmt"># The default namespace is represented by an empty string.</span>&#x000A;125: <span class="ruby-ivar">@attributesByNamespace</span> = {}&#x000A;126: &#x000A;127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>&#x000A;128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">arity</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>&#x000A;129: <span class="ruby-identifier">block</span>[<span class="ruby-keyword kw">self</span>]&#x000A;130: <span class="ruby-keyword kw">else</span>&#x000A;131: <span class="ruby-identifier">instance_eval</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;132: <span class="ruby-keyword kw">end</span>&#x000A;133: <span class="ruby-keyword kw">end</span>&#x000A;134: <span class="ruby-keyword kw">end</span></pre>
184
+ </div>
185
+ </div>
186
+ <h2>Public instance methods</h2>
187
+ <div class='method public-instance' id='method-M000041'>
188
+ <a name='M000041'></a>
189
+ <div class='synopsis'>
190
+ <span class='name'>&lt;&lt;</span>
191
+ <span class='arguments'>(o)</span>
192
+ </div>
193
+ <div class='description'>
194
+ <p>
195
+ Adds the given object as a child if it is a <tt>Tag</tt>, as an attribute
196
+ if it is a Hash {key => value} (supports namespaces), or as a value
197
+ otherwise. If it is an Enumerable (e.g. Array), each of its elements is
198
+ added to this <a href="Tag.html">Tag</a> via this operator. If any of its
199
+ elements is itself an Enumerable, then an anonymous tag is created and the
200
+ Enumerable is passed to it via this operator (see the examples below).
201
+ </p>
202
+ <pre>tag &lt;&lt; Tag.new(&quot;child&quot;)&#x000A;tag &lt;&lt; 123 # new integer value&#x000A;tag &lt;&lt; &quot;islamabad&quot; # new string value&#x000A;tag &lt;&lt; { &quot;metric:length&quot; =&gt; 1027 } # new attribute (with namespace)&#x000A;tag &lt;&lt; [nil, 456, &quot;abc&quot;] # several values added&#x000A;&#x000A;tag = Tag.new(&quot;tag&quot;)&#x000A;tag &lt;&lt; [[1, 2, 3], [4, 5, 6]] # tag {&#x000A; # 1 2 3&#x000A; # 4 5 6&#x000A; # }</pre>
203
+ <p>
204
+ Of course, despite the fact that String is an Enumerable, it is considered
205
+ as the type of values.
206
+ </p>
207
+ <p>
208
+ Returns <tt>self</tt>.
209
+ </p>
210
+ <p>
211
+ Use other accessors (<a href="Tag.html#M000040">add_child</a>, <a
212
+ href="Tag.html#M000054">add_value</a>, <a
213
+ href="Tag.html#M000063">attributes</a>, etc) for a stricter and less
214
+ &#8220;magical&#8221; behavior.
215
+ </p>
216
+ </div>
217
+ <div class='source'>
218
+ <a class='source-toggle' href='#' onclick="toggleCode('M000041-source'); return false">
219
+ [show source]
220
+ </a>
221
+ <pre id='M000041-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 198</span>&#x000A;198: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">o</span>)&#x000A;199: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Tag</span>)&#x000A;200: <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">o</span>)&#x000A;201: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)&#x000A;202: <span class="ruby-identifier">o</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>&#x000A;203: <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/:/</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/:/</span>)&#x000A;204: <span class="ruby-identifier">namespace</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;&quot;</span>&#x000A;205: <span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)&#x000A;206: }&#x000A;207: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;208: <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">o</span>)&#x000A;209: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Enumerable</span>&#x000A;210: <span class="ruby-identifier">o</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>&#x000A;211: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Enumerable</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;212: <span class="ruby-identifier">anonymous</span> = <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">&quot;content&quot;</span>)&#x000A;213: <span class="ruby-identifier">anonymous</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">item</span>&#x000A;214: <span class="ruby-keyword kw">else</span>&#x000A;215: <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">item</span>&#x000A;216: <span class="ruby-keyword kw">end</span>&#x000A;217: }&#x000A;218: <span class="ruby-keyword kw">else</span>&#x000A;219: <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">o</span>)&#x000A;220: <span class="ruby-keyword kw">end</span>&#x000A;221: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>&#x000A;222: <span class="ruby-keyword kw">end</span></pre>
222
+ </div>
223
+ </div>
224
+ <div class='method public-instance' id='method-M000077'>
225
+ <a name='M000077'></a>
226
+ <div class='synopsis'>
227
+ <span class='name'>==</span>
228
+ <span class='arguments'>(o)</span>
229
+ </div>
230
+ <div class='description'>
231
+ <p>
232
+ Alias for <a href="Tag.html#M000076">eql?</a>
233
+ </p>
234
+ </div>
235
+ </div>
236
+ <div class='method public-instance' id='method-M000040'>
237
+ <a name='M000040'></a>
238
+ <div class='synopsis'>
239
+ <span class='name'>add_child</span>
240
+ <span class='arguments'>(child)</span>
241
+ </div>
242
+ <div class='description'>
243
+ <p>
244
+ Add a child to this <a href="Tag.html">Tag</a>.
245
+ </p>
246
+ <table>
247
+ <tr><td valign="top"><em>child</em>:</td><td>The child to add
248
+
249
+ </td></tr>
250
+ </table>
251
+ <p>
252
+ Returns the added child.
253
+ </p>
254
+ </div>
255
+ <div class='source'>
256
+ <a class='source-toggle' href='#' onclick="toggleCode('M000040-source'); return false">
257
+ [show source]
258
+ </a>
259
+ <pre id='M000040-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 167</span>&#x000A;167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">child</span>)&#x000A;168: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)&#x000A;169: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">child</span>&#x000A;170: <span class="ruby-keyword kw">end</span></pre>
260
+ </div>
261
+ </div>
262
+ <div class='method public-instance' id='method-M000054'>
263
+ <a name='M000054'></a>
264
+ <div class='synopsis'>
265
+ <span class='name'>add_value</span>
266
+ <span class='arguments'>(v)</span>
267
+ </div>
268
+ <div class='description'>
269
+ <p>
270
+ Adds a value to this <a href="Tag.html">Tag</a>. See <a
271
+ href="../SDL4R.html#M000004">SDL4R#coerce_or_fail</a> to know about the
272
+ allowable types.
273
+ </p>
274
+ <table>
275
+ <tr><td valign="top"><em>v</em>:</td><td>The value to add
276
+
277
+ </td></tr>
278
+ </table>
279
+ <p>
280
+ Raises an <tt>ArgumentError</tt> if the value is not a legal SDL type
281
+ </p>
282
+ </div>
283
+ <div class='source'>
284
+ <a class='source-toggle' href='#' onclick="toggleCode('M000054-source'); return false">
285
+ [show source]
286
+ </a>
287
+ <pre id='M000054-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 440</span>&#x000A;440: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">v</span>)&#x000A;441: <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">push</span>(<span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">v</span>))&#x000A;442: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>&#x000A;443: <span class="ruby-keyword kw">end</span></pre>
288
+ </div>
289
+ </div>
290
+ <div class='method public-instance' id='method-M000061'>
291
+ <a name='M000061'></a>
292
+ <div class='synopsis'>
293
+ <span class='name'>attribute</span>
294
+ <span class='arguments'>(namespace, key = nil)</span>
295
+ </div>
296
+ <div class='description'>
297
+ <pre>attribute(key)&#x000A;attribute(namespace, key)</pre>
298
+ <p>
299
+ Returns the attribute of the specified <tt>namespace</tt> of specified
300
+ <tt>key</tt> or <tt>nil</tt> if not found.
301
+ </p>
302
+ </div>
303
+ <div class='source'>
304
+ <a class='source-toggle' href='#' onclick="toggleCode('M000061-source'); return false">
305
+ [show source]
306
+ </a>
307
+ <pre id='M000061-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 546</span>&#x000A;546: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;547: <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>&#x000A;548: <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]&#x000A;549: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">key</span>]&#x000A;550: <span class="ruby-keyword kw">end</span></pre>
308
+ </div>
309
+ </div>
310
+ <div class='method public-instance' id='method-M000063'>
311
+ <a name='M000063'></a>
312
+ <div class='synopsis'>
313
+ <span class='name'>attributes</span>
314
+ <span class='arguments'>(namespace = nil) {|namespace, key, value| ...}</span>
315
+ </div>
316
+ <div class='description'>
317
+ <p>
318
+ Returns a Hash of the attributes of the specified <tt>namespace</tt>
319
+ (default is all) or enumerates them.
320
+ </p>
321
+ <pre>tag.attributes # =&gt; { &quot;length&quot; =&gt; 123, &quot;width&quot; = 25.4, &quot;orig:color&quot; =&gt; &quot;gray&quot; }&#x000A;tag.attributes(&quot;orig&quot;) do |namespace, key, value|&#x000A; p &quot;#{namespace}:#{key} = #{value}&quot;&#x000A;end</pre>
322
+ <p>
323
+ <em>namespace</em>:: namespace of the returned attributes. If nil, all
324
+ attributes are returned with qualified names (e.g.
325
+ &#8220;meat:color&#8221;). If &#8220;&#8221;, attributes of the default
326
+ namespace are returned.
327
+ </p>
328
+ </div>
329
+ <div class='source'>
330
+ <a class='source-toggle' href='#' onclick="toggleCode('M000063-source'); return false">
331
+ [show source]
332
+ </a>
333
+ <pre id='M000063-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 584</span>&#x000A;584: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: namespace, key, value</span>&#x000A;585: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>&#x000A;586: <span class="ruby-identifier">each_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;587: &#x000A;588: <span class="ruby-keyword kw">else</span>&#x000A;589: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>&#x000A;590: <span class="ruby-identifier">hash</span> = {}&#x000A;591: &#x000A;592: <span class="ruby-identifier">each_attribute</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span> <span class="ruby-operator">|</span>&#x000A;593: <span class="ruby-identifier">qualified_name</span> = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-identifier">key</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">namespace</span> <span class="ruby-operator">+</span> <span class="ruby-value str">':'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">key</span>&#x000A;594: <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">qualified_name</span>] = <span class="ruby-identifier">value</span>&#x000A;595: <span class="ruby-keyword kw">end</span>&#x000A;596: &#x000A;597: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>&#x000A;598: &#x000A;599: <span class="ruby-keyword kw">else</span>&#x000A;600: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]&#x000A;601: <span class="ruby-keyword kw">end</span>&#x000A;602: <span class="ruby-keyword kw">end</span>&#x000A;603: <span class="ruby-keyword kw">end</span></pre>
334
+ </div>
335
+ </div>
336
+ <div class='method public-instance' id='method-M000067'>
337
+ <a name='M000067'></a>
338
+ <div class='synopsis'>
339
+ <span class='name'>attributes=</span>
340
+ <span class='arguments'>(attribute_hash)</span>
341
+ </div>
342
+ <div class='description'>
343
+ <p>
344
+ Sets all the attributes of the default namespace for this <a
345
+ href="Tag.html">Tag</a> in one operation.
346
+ </p>
347
+ <p>
348
+ See <a href="Tag.html#M000066">set_attributes</a>.
349
+ </p>
350
+ </div>
351
+ <div class='source'>
352
+ <a class='source-toggle' href='#' onclick="toggleCode('M000067-source'); return false">
353
+ [show source]
354
+ </a>
355
+ <pre id='M000067-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 687</span>&#x000A;687: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes=</span>(<span class="ruby-identifier">attribute_hash</span>)&#x000A;688: <span class="ruby-identifier">set_attributes</span>(<span class="ruby-identifier">attribute_hash</span>)&#x000A;689: <span class="ruby-keyword kw">end</span></pre>
356
+ </div>
357
+ </div>
358
+ <div class='method public-instance' id='method-M000049'>
359
+ <a name='M000049'></a>
360
+ <div class='synopsis'>
361
+ <span class='name'>child</span>
362
+ <span class='arguments'>(recursive = false, name = nil)</span>
363
+ </div>
364
+ <div class='description'>
365
+ <pre>child&#x000A;child(name)&#x000A;child(recursive, name)</pre>
366
+ <p>
367
+ Get the first child with the given name, optionally using a recursive
368
+ search.
369
+ </p>
370
+ <table>
371
+ <tr><td valign="top"><em>name</em>:</td><td>the name of the child <a href="Tag.html">Tag</a>. If <tt>nil</tt>, the
372
+ first child is returned (<tt>nil</tt> if there are
373
+
374
+ </td></tr>
375
+ </table>
376
+ <p>
377
+ no children at all).
378
+ </p>
379
+ <p>
380
+ Returns the first child tag having the given name or <tt>nil</tt> if no
381
+ such child exists
382
+ </p>
383
+ </div>
384
+ <div class='source'>
385
+ <a class='source-toggle' href='#' onclick="toggleCode('M000049-source'); return false">
386
+ [show source]
387
+ </a>
388
+ <pre id='M000049-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 344</span>&#x000A;344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">child</span>(<span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;345: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>&#x000A;346: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">recursive</span>&#x000A;347: <span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>&#x000A;348: <span class="ruby-keyword kw">end</span>&#x000A;349: &#x000A;350: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>&#x000A;351: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">first</span>&#x000A;352: <span class="ruby-keyword kw">else</span>&#x000A;353: <span class="ruby-identifier">each_child</span>(<span class="ruby-identifier">recursive</span>, <span class="ruby-identifier">name</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">child</span> }&#x000A;354: <span class="ruby-keyword kw">end</span>&#x000A;355: <span class="ruby-keyword kw">end</span></pre>
389
+ </div>
390
+ </div>
391
+ <div class='method public-instance' id='method-M000046'>
392
+ <a name='M000046'></a>
393
+ <div class='synopsis'>
394
+ <span class='name'>child_count</span>
395
+ <span class='arguments'>()</span>
396
+ </div>
397
+ <div class='description'>
398
+ <p>
399
+ Returns the number of children <a href="Tag.html">Tag</a>.
400
+ </p>
401
+ </div>
402
+ <div class='source'>
403
+ <a class='source-toggle' href='#' onclick="toggleCode('M000046-source'); return false">
404
+ [show source]
405
+ </a>
406
+ <pre id='M000046-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 265</span>&#x000A;265: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">child_count</span>&#x000A;266: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">size</span>&#x000A;267: <span class="ruby-keyword kw">end</span></pre>
407
+ </div>
408
+ </div>
409
+ <div class='method public-instance' id='method-M000047'>
410
+ <a name='M000047'></a>
411
+ <div class='synopsis'>
412
+ <span class='name'>children</span>
413
+ <span class='arguments'>(recursive = false, namespace = nil, name = :DEFAULT) {|child| ...}</span>
414
+ </div>
415
+ <div class='description'>
416
+ <pre>children(recursive)&#x000A;children(recursive, name)&#x000A;children(recursive, namespace, name)&#x000A;&#x000A;children(recursive) { |child| ... }&#x000A;children(recursive, name) { |child| ... }&#x000A;children(recursive, namespace, name) { |child| ... }</pre>
417
+ <p>
418
+ Returns an Array of the children Tags of this <a href="Tag.html">Tag</a> or
419
+ enumerates them.
420
+ </p>
421
+ <table>
422
+ <tr><td valign="top"><em>recursive</em>:</td><td>if true children and all descendants will be returned. False by default.
423
+
424
+ </td></tr>
425
+ <tr><td valign="top"><em>name</em>:</td><td>if not nil, only children having this name will be returned. Nil by
426
+ default.
427
+
428
+ </td></tr>
429
+ <tr><td valign="top"><em>namespace</em>:</td><td>use nil for all namespaces and &#8220;&#8221; for the default one. Nil by
430
+ default.
431
+
432
+ </td></tr>
433
+ </table>
434
+ <pre>tag.children # =&gt; array of the children&#x000A;tag.children(true) { |descendant| ... }&#x000A;&#x000A;tag.children(false, &quot;name&quot;) # =&gt; children of name &quot;name&quot;&#x000A;tag.children(false, &quot;ns&quot;, nil) # =&gt; children of namespace &quot;ns&quot;</pre>
435
+ </div>
436
+ <div class='source'>
437
+ <a class='source-toggle' href='#' onclick="toggleCode('M000047-source'); return false">
438
+ [show source]
439
+ </a>
440
+ <pre id='M000047-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 289</span>&#x000A;289: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children</span>(<span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">name</span> = <span class="ruby-identifier">:DEFAULT</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: child</span>&#x000A;290: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:DEFAULT</span>&#x000A;291: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">namespace</span>&#x000A;292: <span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>&#x000A;293: <span class="ruby-keyword kw">end</span>&#x000A;294: &#x000A;295: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>&#x000A;296: <span class="ruby-identifier">each_child</span>(<span class="ruby-identifier">recursive</span>, <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;297: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>&#x000A;298: &#x000A;299: <span class="ruby-keyword kw">else</span>&#x000A;300: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">recursive</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">namespace</span>&#x000A;301: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@children</span>&#x000A;302: &#x000A;303: <span class="ruby-keyword kw">else</span>&#x000A;304: <span class="ruby-identifier">result</span> = []&#x000A;305: <span class="ruby-identifier">each_child</span>(<span class="ruby-identifier">recursive</span>, <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">name</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>&#x000A;306: <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>&#x000A;307: }&#x000A;308: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>&#x000A;309: <span class="ruby-keyword kw">end</span>&#x000A;310: <span class="ruby-keyword kw">end</span>&#x000A;311: <span class="ruby-keyword kw">end</span></pre>
441
+ </div>
442
+ </div>
443
+ <div class='method public-instance' id='method-M000075'>
444
+ <a name='M000075'></a>
445
+ <div class='synopsis'>
446
+ <span class='name'>children_to_string</span>
447
+ <span class='arguments'>(line_prefix = &quot;&quot;, s = &quot;&quot;)</span>
448
+ </div>
449
+ <div class='description'>
450
+ <p>
451
+ Returns a string representation of the children tags.
452
+ </p>
453
+ <table>
454
+ <tr><td valign="top"><em>linePrefix</em>:</td><td>A prefix to insert before every line.
455
+
456
+ </td></tr>
457
+ <tr><td valign="top"><em>s</em>:</td><td>a String that receives the string representation
458
+
459
+ </td></tr>
460
+ </table>
461
+ <p>
462
+ TODO: break up long lines using the backslash
463
+ </p>
464
+ </div>
465
+ <div class='source'>
466
+ <a class='source-toggle' href='#' onclick="toggleCode('M000075-source'); return false">
467
+ [show source]
468
+ </a>
469
+ <pre id='M000075-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 858</span>&#x000A;858: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children_to_string</span>(<span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>)&#x000A;859: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>&#x000A;860: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">to_string</span>(<span class="ruby-identifier">line_prefix</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">$/</span>&#x000A;861: <span class="ruby-keyword kw">end</span>&#x000A;862: &#x000A;863: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>&#x000A;864: <span class="ruby-keyword kw">end</span></pre>
470
+ </div>
471
+ </div>
472
+ <div class='method public-instance' id='method-M000048'>
473
+ <a name='M000048'></a>
474
+ <div class='synopsis'>
475
+ <span class='name'>children_values</span>
476
+ <span class='arguments'>(name = nil)</span>
477
+ </div>
478
+ <div class='description'>
479
+ <p>
480
+ Returns the values of all the children with the given <tt>name</tt>. If the
481
+ child has more than one value, all the values will be added as an array. If
482
+ the child has no value, <tt>nil</tt> will be added. The search is not
483
+ recursive.
484
+ </p>
485
+ <table>
486
+ <tr><td valign="top"><em>name</em>:</td><td>if nil, all children are considered (nil by default).
487
+
488
+ </td></tr>
489
+ </table>
490
+ </div>
491
+ <div class='source'>
492
+ <a class='source-toggle' href='#' onclick="toggleCode('M000048-source'); return false">
493
+ [show source]
494
+ </a>
495
+ <pre id='M000048-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 318</span>&#x000A;318: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children_values</span>(<span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;319: <span class="ruby-identifier">children_values</span> = []&#x000A;320: <span class="ruby-identifier">each_child</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">name</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>&#x000A;321: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span>&#x000A;322: <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>&#x000A;323: <span class="ruby-identifier">children_values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>&#x000A;324: <span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span>&#x000A;325: <span class="ruby-identifier">children_values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span>&#x000A;326: <span class="ruby-keyword kw">else</span>&#x000A;327: <span class="ruby-identifier">children_values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">values</span>&#x000A;328: <span class="ruby-keyword kw">end</span>&#x000A;329: }&#x000A;330: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">children_values</span>&#x000A;331: <span class="ruby-keyword kw">end</span></pre>
496
+ </div>
497
+ </div>
498
+ <div class='method public-instance' id='method-M000065'>
499
+ <a name='M000065'></a>
500
+ <div class='synopsis'>
501
+ <span class='name'>clear_attributes</span>
502
+ <span class='arguments'>(namespace = nil)</span>
503
+ </div>
504
+ <div class='description'>
505
+ <p>
506
+ Clears the attributes of the specified namespace or all the attributes if
507
+ <tt>namespace</tt> is <tt>nil</tt>.
508
+ </p>
509
+ </div>
510
+ <div class='source'>
511
+ <a class='source-toggle' href='#' onclick="toggleCode('M000065-source'); return false">
512
+ [show source]
513
+ </a>
514
+ <pre id='M000065-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 624</span>&#x000A;624: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_attributes</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;625: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>&#x000A;626: <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">clear</span>&#x000A;627: <span class="ruby-keyword kw">else</span>&#x000A;628: <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">namespace</span>)&#x000A;629: <span class="ruby-keyword kw">end</span>&#x000A;630: <span class="ruby-keyword kw">end</span></pre>
515
+ </div>
516
+ </div>
517
+ <div class='method public-instance' id='method-M000043'>
518
+ <a name='M000043'></a>
519
+ <div class='synopsis'>
520
+ <span class='name'>clear_children</span>
521
+ <span class='arguments'>()</span>
522
+ </div>
523
+ <div class='description'>
524
+ <p>
525
+ Removes all children.
526
+ </p>
527
+ </div>
528
+ <div class='source'>
529
+ <a class='source-toggle' href='#' onclick="toggleCode('M000043-source'); return false">
530
+ [show source]
531
+ </a>
532
+ <pre id='M000043-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 236</span>&#x000A;236: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_children</span>&#x000A;237: <span class="ruby-ivar">@children</span> = []&#x000A;238: <span class="ruby-keyword kw">nil</span>&#x000A;239: <span class="ruby-keyword kw">end</span></pre>
533
+ </div>
534
+ </div>
535
+ <div class='method public-instance' id='method-M000057'>
536
+ <a name='M000057'></a>
537
+ <div class='synopsis'>
538
+ <span class='name'>clear_values</span>
539
+ <span class='arguments'>()</span>
540
+ </div>
541
+ <div class='description'>
542
+ <p>
543
+ Removes all values.
544
+ </p>
545
+ </div>
546
+ <div class='source'>
547
+ <a class='source-toggle' href='#' onclick="toggleCode('M000057-source'); return false">
548
+ [show source]
549
+ </a>
550
+ <pre id='M000057-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 468</span>&#x000A;468: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_values</span>&#x000A;469: <span class="ruby-ivar">@values</span> = []&#x000A;470: <span class="ruby-keyword kw">nil</span>&#x000A;471: <span class="ruby-keyword kw">end</span></pre>
551
+ </div>
552
+ </div>
553
+ <div class='method public-instance' id='method-M000076'>
554
+ <a name='M000076'></a>
555
+ <div class='synopsis'>
556
+ <span class='name'>eql?</span>
557
+ <span class='arguments'>(o)</span>
558
+ </div>
559
+ <div class='description'>
560
+ <p>
561
+ Returns true if this tag (including all of its values, attributes, and
562
+ children) is equivalent to the given tag.
563
+ </p>
564
+ <p>
565
+ Returns true if the tags are equivalet
566
+ </p>
567
+ </div>
568
+ <div class='source'>
569
+ <a class='source-toggle' href='#' onclick="toggleCode('M000076-source'); return false">
570
+ [show source]
571
+ </a>
572
+ <pre id='M000076-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 871</span>&#x000A;871: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">o</span>)&#x000A;872: <span class="ruby-comment cmt"># this is safe because to_string() dumps the full state</span>&#x000A;873: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Tag</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_string</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">to_string</span>;&#x000A;874: <span class="ruby-keyword kw">end</span></pre>
573
+ </div>
574
+ </div>
575
+ <div class='method public-instance' id='method-M000062'>
576
+ <a name='M000062'></a>
577
+ <div class='synopsis'>
578
+ <span class='name'>has_attribute?</span>
579
+ <span class='arguments'>(namespace = nil, key = nil)</span>
580
+ </div>
581
+ <div class='description'>
582
+ <p>
583
+ Indicates whether there is at least an attribute in this <a
584
+ href="Tag.html">Tag</a>.
585
+ </p>
586
+ <pre>has_attribute?</pre>
587
+ <p>
588
+ Indicates whether there is the specified attribute exists in this <a
589
+ href="Tag.html">Tag</a>.
590
+ </p>
591
+ <pre>has_attribute?(key)&#x000A;has_attribute?(namespace, key)</pre>
592
+ </div>
593
+ <div class='source'>
594
+ <a class='source-toggle' href='#' onclick="toggleCode('M000062-source'); return false">
595
+ [show source]
596
+ </a>
597
+ <pre id='M000062-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 559</span>&#x000A;559: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_attribute?</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">key</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;560: <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>&#x000A;561: &#x000A;562: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">key</span>&#x000A;563: <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]&#x000A;564: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">key</span>)&#x000A;565: &#x000A;566: <span class="ruby-keyword kw">else</span>&#x000A;567: <span class="ruby-identifier">attributes</span> { <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> }&#x000A;568: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>&#x000A;569: <span class="ruby-keyword kw">end</span>&#x000A;570: <span class="ruby-keyword kw">end</span></pre>
598
+ </div>
599
+ </div>
600
+ <div class='method public-instance' id='method-M000050'>
601
+ <a name='M000050'></a>
602
+ <div class='synopsis'>
603
+ <span class='name'>has_child?</span>
604
+ <span class='arguments'>(name)</span>
605
+ </div>
606
+ <div class='description'>
607
+ <p>
608
+ Indicates whether the child <a href="Tag.html">Tag</a> of given name
609
+ exists.
610
+ </p>
611
+ <table>
612
+ <tr><td valign="top"><em>name</em>:</td><td>name of the searched child <a href="Tag.html">Tag</a>
613
+
614
+ </td></tr>
615
+ </table>
616
+ </div>
617
+ <div class='source'>
618
+ <a class='source-toggle' href='#' onclick="toggleCode('M000050-source'); return false">
619
+ [show source]
620
+ </a>
621
+ <pre id='M000050-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 361</span>&#x000A;361: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_child?</span>(<span class="ruby-identifier">name</span>)&#x000A;362: <span class="ruby-operator">!</span><span class="ruby-identifier">child</span>(<span class="ruby-identifier">name</span>).<span class="ruby-identifier">nil?</span>&#x000A;363: <span class="ruby-keyword kw">end</span></pre>
622
+ </div>
623
+ </div>
624
+ <div class='method public-instance' id='method-M000051'>
625
+ <a name='M000051'></a>
626
+ <div class='synopsis'>
627
+ <span class='name'>has_children?</span>
628
+ <span class='arguments'>()</span>
629
+ </div>
630
+ <div class='description'>
631
+ <p>
632
+ Indicates whether there are children <a href="Tag.html">Tag</a>.
633
+ </p>
634
+ </div>
635
+ <div class='source'>
636
+ <a class='source-toggle' href='#' onclick="toggleCode('M000051-source'); return false">
637
+ [show source]
638
+ </a>
639
+ <pre id='M000051-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 367</span>&#x000A;367: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_children?</span>&#x000A;368: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>&#x000A;369: <span class="ruby-keyword kw">end</span></pre>
640
+ </div>
641
+ </div>
642
+ <div class='method public-instance' id='method-M000055'>
643
+ <a name='M000055'></a>
644
+ <div class='synopsis'>
645
+ <span class='name'>has_value?</span>
646
+ <span class='arguments'>(v)</span>
647
+ </div>
648
+ <div class='description'>
649
+ <p>
650
+ Returns true if <tt>v</tt> is a value of this Tag&#8217;s.
651
+ </p>
652
+ </div>
653
+ <div class='source'>
654
+ <a class='source-toggle' href='#' onclick="toggleCode('M000055-source'); return false">
655
+ [show source]
656
+ </a>
657
+ <pre id='M000055-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 447</span>&#x000A;447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">v</span>)&#x000A;448: <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">v</span>)&#x000A;449: <span class="ruby-keyword kw">end</span></pre>
658
+ </div>
659
+ </div>
660
+ <div class='method public-instance' id='method-M000078'>
661
+ <a name='M000078'></a>
662
+ <div class='synopsis'>
663
+ <span class='name'>hash</span>
664
+ <span class='arguments'>()</span>
665
+ </div>
666
+ <div class='description'>
667
+ <p>
668
+ Returns The hash (based on the output from toString())
669
+ </p>
670
+ </div>
671
+ <div class='source'>
672
+ <a class='source-toggle' href='#' onclick="toggleCode('M000078-source'); return false">
673
+ [show source]
674
+ </a>
675
+ <pre id='M000078-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 879</span>&#x000A;879: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash</span>&#x000A;880: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">to_string</span>.<span class="ruby-identifier">hash</span>&#x000A;881: <span class="ruby-keyword kw">end</span></pre>
676
+ </div>
677
+ </div>
678
+ <div class='method public-instance' id='method-M000068'>
679
+ <a name='M000068'></a>
680
+ <div class='synopsis'>
681
+ <span class='name'>name=</span>
682
+ <span class='arguments'>(a_name)</span>
683
+ </div>
684
+ <div class='description'>
685
+ <p>
686
+ Sets the name of this <a href="Tag.html">Tag</a>.
687
+ </p>
688
+ <p>
689
+ Raises <tt>ArgumentError</tt> if the name is not a legal SDL identifier
690
+ (see <a href="../SDL4R.html#M000005">SDL4R#validate_identifier</a>).
691
+ </p>
692
+ </div>
693
+ <div class='source'>
694
+ <a class='source-toggle' href='#' onclick="toggleCode('M000068-source'); return false">
695
+ [show source]
696
+ </a>
697
+ <pre id='M000068-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 696</span>&#x000A;696: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">name=</span>(<span class="ruby-identifier">a_name</span>)&#x000A;697: <span class="ruby-identifier">a_name</span> = <span class="ruby-identifier">a_name</span>.<span class="ruby-identifier">to_s</span>&#x000A;698: <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">a_name</span>)&#x000A;699: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">a_name</span>&#x000A;700: <span class="ruby-keyword kw">end</span></pre>
698
+ </div>
699
+ </div>
700
+ <div class='method public-instance' id='method-M000069'>
701
+ <a name='M000069'></a>
702
+ <div class='synopsis'>
703
+ <span class='name'>namespace=</span>
704
+ <span class='arguments'>(a_namespace)</span>
705
+ </div>
706
+ <div class='description'>
707
+ <p>
708
+ The namespace to set. <tt>nil</tt> will be coerced to the empty string.
709
+ </p>
710
+ <p>
711
+ Raises <tt>ArgumentError</tt> if the namespace is non-blank and is not a
712
+ legal SDL identifier (see <a
713
+ href="../SDL4R.html#M000005">SDL4R#validate_identifier</a>)
714
+ </p>
715
+ </div>
716
+ <div class='source'>
717
+ <a class='source-toggle' href='#' onclick="toggleCode('M000069-source'); return false">
718
+ [show source]
719
+ </a>
720
+ <pre id='M000069-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 707</span>&#x000A;707: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespace=</span>(<span class="ruby-identifier">a_namespace</span>)&#x000A;708: <span class="ruby-identifier">a_namespace</span> = <span class="ruby-identifier">a_namespace</span>.<span class="ruby-identifier">to_s</span>&#x000A;709: <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">a_namespace</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a_namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;710: <span class="ruby-ivar">@namespace</span> = <span class="ruby-identifier">a_namespace</span>&#x000A;711: <span class="ruby-keyword kw">end</span></pre>
721
+ </div>
722
+ </div>
723
+ <div class='method public-instance' id='method-M000039'>
724
+ <a name='M000039'></a>
725
+ <div class='synopsis'>
726
+ <span class='name'>new_child</span>
727
+ <span class='arguments'>(*args, &amp;block)</span>
728
+ </div>
729
+ <div class='description'>
730
+ <p>
731
+ Creates a new child tag. Can take a block so that you can write something
732
+ like:
733
+ </p>
734
+ <pre>car = Tag.new(&quot;car&quot;) do&#x000A; new_child(&quot;wheels&quot;) do&#x000A; self &lt;&lt; 4&#x000A; end&#x000A;end</pre>
735
+ <p>
736
+ The context of execution of the given block is the child instance. If you
737
+ provide a block that takes a parameter (see below), the context is the
738
+ context of your code:
739
+ </p>
740
+ <pre>car = Tag.new(&quot;car&quot;) do |child|&#x000A; child.new_child(&quot;wheels&quot;) do |grandchild|&#x000A; grandchild &lt;&lt; 4&#x000A; end&#x000A;end</pre>
741
+ <p>
742
+ Returns the created child <a href="Tag.html">Tag</a>.
743
+ </p>
744
+ </div>
745
+ <div class='source'>
746
+ <a class='source-toggle' href='#' onclick="toggleCode('M000039-source'); return false">
747
+ [show source]
748
+ </a>
749
+ <pre id='M000039-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 157</span>&#x000A;157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new_child</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;158: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">add_child</span> <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;159: <span class="ruby-keyword kw">end</span></pre>
750
+ </div>
751
+ </div>
752
+ <div class='method public-instance' id='method-M000070'>
753
+ <a name='M000070'></a>
754
+ <div class='synopsis'>
755
+ <span class='name'>read</span>
756
+ <span class='arguments'>(input)</span>
757
+ </div>
758
+ <div class='description'>
759
+ <p>
760
+ Adds all the tags specified in the given IO, String, Pathname or URI to
761
+ this <a href="Tag.html">Tag</a>.
762
+ </p>
763
+ <p>
764
+ Returns this <a href="Tag.html">Tag</a> after adding all the children read
765
+ from <tt>input</tt>.
766
+ </p>
767
+ </div>
768
+ <div class='source'>
769
+ <a class='source-toggle' href='#' onclick="toggleCode('M000070-source'); return false">
770
+ [show source]
771
+ </a>
772
+ <pre id='M000070-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 717</span>&#x000A;717: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">input</span>)&#x000A;718: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;719: <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">true</span>) { <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input</span>) }&#x000A;720: &#x000A;721: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Pathname</span>&#x000A;722: <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">true</span>) { <span class="ruby-identifier">input</span>.<span class="ruby-identifier">open</span>(<span class="ruby-value str">&quot;r:UTF-8&quot;</span>) }&#x000A;723: &#x000A;724: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">URI</span>&#x000A;725: <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">true</span>) { <span class="ruby-identifier">input</span>.<span class="ruby-identifier">open</span> }&#x000A;726: &#x000A;727: <span class="ruby-keyword kw">else</span>&#x000A;728: <span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">false</span>) { <span class="ruby-identifier">input</span> }&#x000A;729: <span class="ruby-keyword kw">end</span>&#x000A;730: &#x000A;731: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>&#x000A;732: <span class="ruby-keyword kw">end</span></pre>
773
+ </div>
774
+ </div>
775
+ <div class='method public-instance' id='method-M000071'>
776
+ <a name='M000071'></a>
777
+ <div class='synopsis'>
778
+ <span class='name'>read_from_io</span>
779
+ <span class='arguments'>(close_io) {|| ...}</span>
780
+ </div>
781
+ <div class='description'>
782
+ <p>
783
+ Reads and parses the <tt>io</tt> returned by the specified block and closes
784
+ this <tt>io</tt> if <tt>close_io</tt> is true.
785
+ </p>
786
+ </div>
787
+ <div class='source'>
788
+ <a class='source-toggle' href='#' onclick="toggleCode('M000071-source'); return false">
789
+ [show source]
790
+ </a>
791
+ <pre id='M000071-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 736</span>&#x000A;736: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_from_io</span>(<span class="ruby-identifier">close_io</span>)&#x000A;737: <span class="ruby-identifier">io</span> = <span class="ruby-keyword kw">yield</span>&#x000A;738: &#x000A;739: <span class="ruby-keyword kw">begin</span>&#x000A;740: <span class="ruby-constant">Parser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">io</span>).<span class="ruby-identifier">parse</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tag</span><span class="ruby-operator">|</span>&#x000A;741: <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">tag</span>)&#x000A;742: <span class="ruby-keyword kw">end</span>&#x000A;743: &#x000A;744: <span class="ruby-keyword kw">ensure</span>&#x000A;745: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">close_io</span>&#x000A;746: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>&#x000A;747: <span class="ruby-keyword kw">end</span>&#x000A;748: <span class="ruby-keyword kw">end</span>&#x000A;749: <span class="ruby-keyword kw">end</span></pre>
792
+ </div>
793
+ </div>
794
+ <div class='method public-instance' id='method-M000064'>
795
+ <a name='M000064'></a>
796
+ <div class='synopsis'>
797
+ <span class='name'>remove_attribute</span>
798
+ <span class='arguments'>(namespace, key = nil)</span>
799
+ </div>
800
+ <div class='description'>
801
+ <pre>remove_attribute(key)&#x000A;remove_attribute(namespace, key)</pre>
802
+ <p>
803
+ Removes the attribute, whose name and namespace are specified.
804
+ </p>
805
+ <table>
806
+ <tr><td valign="top"><em>key</em>:</td><td>name of the removed atribute
807
+
808
+ </td></tr>
809
+ <tr><td valign="top"><em>namespace</em>:</td><td>namespace of the removed attribute (equal to &#8220;&#8221;, default
810
+ namespace, by default)
811
+
812
+ </td></tr>
813
+ </table>
814
+ <p>
815
+ Returns the value of the removed attribute or <tt>nil</tt> if it
816
+ didn&#8217;t exist.
817
+ </p>
818
+ </div>
819
+ <div class='source'>
820
+ <a class='source-toggle' href='#' onclick="toggleCode('M000064-source'); return false">
821
+ [show source]
822
+ </a>
823
+ <pre id='M000064-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 615</span>&#x000A;615: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;616: <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span> = <span class="ruby-identifier">to_nns</span> <span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>&#x000A;617: <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]&#x000A;618: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>)&#x000A;619: <span class="ruby-keyword kw">end</span></pre>
824
+ </div>
825
+ </div>
826
+ <div class='method public-instance' id='method-M000042'>
827
+ <a name='M000042'></a>
828
+ <div class='synopsis'>
829
+ <span class='name'>remove_child</span>
830
+ <span class='arguments'>(child)</span>
831
+ </div>
832
+ <div class='description'>
833
+ <p>
834
+ Remove a child from this <a href="Tag.html">Tag</a>
835
+ </p>
836
+ <table>
837
+ <tr><td valign="top"><em>child</em>:</td><td>the child to remove
838
+
839
+ </td></tr>
840
+ </table>
841
+ <p>
842
+ Returns true if the child exists and is removed
843
+ </p>
844
+ </div>
845
+ <div class='source'>
846
+ <a class='source-toggle' href='#' onclick="toggleCode('M000042-source'); return false">
847
+ [show source]
848
+ </a>
849
+ <pre id='M000042-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 230</span>&#x000A;230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_child</span>(<span class="ruby-identifier">child</span>)&#x000A;231: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">child</span>).<span class="ruby-identifier">nil?</span>&#x000A;232: <span class="ruby-keyword kw">end</span></pre>
850
+ </div>
851
+ </div>
852
+ <div class='method public-instance' id='method-M000056'>
853
+ <a name='M000056'></a>
854
+ <div class='synopsis'>
855
+ <span class='name'>remove_value</span>
856
+ <span class='arguments'>(v)</span>
857
+ </div>
858
+ <div class='description'>
859
+ <p>
860
+ Removes the first occurence of the specified value from this <a
861
+ href="Tag.html">Tag</a>.
862
+ </p>
863
+ <table>
864
+ <tr><td valign="top"><em>v</em>:</td><td>The value to remove
865
+
866
+ </td></tr>
867
+ </table>
868
+ <p>
869
+ Returns true If the value exists and is removed
870
+ </p>
871
+ </div>
872
+ <div class='source'>
873
+ <a class='source-toggle' href='#' onclick="toggleCode('M000056-source'); return false">
874
+ [show source]
875
+ </a>
876
+ <pre id='M000056-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 457</span>&#x000A;457: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_value</span>(<span class="ruby-identifier">v</span>)&#x000A;458: <span class="ruby-identifier">index</span> = <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">v</span>)&#x000A;459: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>&#x000A;460: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@values</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-identifier">index</span>).<span class="ruby-identifier">nil?</span>&#x000A;461: <span class="ruby-keyword kw">else</span>&#x000A;462: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>&#x000A;463: <span class="ruby-keyword kw">end</span>&#x000A;464: <span class="ruby-keyword kw">end</span></pre>
877
+ </div>
878
+ </div>
879
+ <div class='method public-instance' id='method-M000060'>
880
+ <a name='M000060'></a>
881
+ <div class='synopsis'>
882
+ <span class='name'>set_attribute</span>
883
+ <span class='arguments'>(namespace, key, value = :default)</span>
884
+ </div>
885
+ <div class='description'>
886
+ <pre>set_attribute(key, value)&#x000A;set_attribute(namespace, key, value)</pre>
887
+ <p>
888
+ Set an attribute in the given namespace for this tag. The allowable
889
+ attribute value types are the same as those allowed for <a
890
+ href="Tag.html#M000054">add_value</a>.
891
+ </p>
892
+ <table>
893
+ <tr><td valign="top"><em>namespace</em>:</td><td>The namespace for this attribute
894
+
895
+ </td></tr>
896
+ <tr><td valign="top"><em>key</em>:</td><td>The attribute key
897
+
898
+ </td></tr>
899
+ <tr><td valign="top"><em>value</em>:</td><td>The attribute value
900
+
901
+ </td></tr>
902
+ </table>
903
+ <p>
904
+ Raises <tt>ArgumentError</tt> if the key is not a legal SDL identifier (see
905
+ <a href="../SDL4R.html#M000005">SDL4R#validate_identifier</a>), or the
906
+ namespace is non-blank and is not a legal SDL identifier, or thevalue is
907
+ not a legal SDL type
908
+ </p>
909
+ </div>
910
+ <div class='source'>
911
+ <a class='source-toggle' href='#' onclick="toggleCode('M000060-source'); return false">
912
+ [show source]
913
+ </a>
914
+ <pre id='M000060-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 516</span>&#x000A;516: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span> = <span class="ruby-identifier">:default</span>)&#x000A;517: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:default</span>&#x000A;518: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">key</span>&#x000A;519: <span class="ruby-identifier">key</span> = <span class="ruby-identifier">namespace</span>&#x000A;520: <span class="ruby-identifier">namespace</span> = <span class="ruby-value str">&quot;&quot;</span>&#x000A;521: <span class="ruby-keyword kw">end</span>&#x000A;522: &#x000A;523: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute namespace must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;524: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute key must be a String&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;525: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute key cannot be empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">empty?</span>&#x000A;526: &#x000A;527: <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">namespace</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;528: <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">key</span>)&#x000A;529: &#x000A;530: <span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]&#x000A;531: &#x000A;532: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span>&#x000A;533: <span class="ruby-identifier">attributes</span> = {}&#x000A;534: <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>] = <span class="ruby-identifier">attributes</span>&#x000A;535: <span class="ruby-keyword kw">end</span>&#x000A;536: &#x000A;537: <span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">value</span>)&#x000A;538: <span class="ruby-keyword kw">end</span></pre>
915
+ </div>
916
+ </div>
917
+ <div class='method public-instance' id='method-M000066'>
918
+ <a name='M000066'></a>
919
+ <div class='synopsis'>
920
+ <span class='name'>set_attributes</span>
921
+ <span class='arguments'>(namespace, attribute_hash = nil)</span>
922
+ </div>
923
+ <div class='description'>
924
+ <pre>set_attributes(attribute_hash)&#x000A;set_attributes(namespace, attribute_hash)</pre>
925
+ <p>
926
+ Sets the attributes specified by a Hash in the given <tt>namespace</tt> in
927
+ one operation. The previous attributes of the specified <tt>namespace</tt>
928
+ are removed. See <a href="Tag.html#M000060">set_attribute</a> for allowable
929
+ attribute value types.
930
+ </p>
931
+ <table>
932
+ <tr><td valign="top"><em>attributes</em>:</td><td>a Hash where keys are attribute keys
933
+
934
+ </td></tr>
935
+ <tr><td valign="top"><em>namespace</em>:</td><td>&#8220;&#8221; (default namespace) by default
936
+
937
+ </td></tr>
938
+ </table>
939
+ <p>
940
+ Raises an <tt>ArgumentError</tt> if any key in the map is not a legal SDL
941
+ identifier (see <a
942
+ href="../SDL4R.html#M000005">SDL4R#validate_identifier</a>), or any value
943
+ is not a legal SDL type.
944
+ </p>
945
+ </div>
946
+ <div class='source'>
947
+ <a class='source-toggle' href='#' onclick="toggleCode('M000066-source'); return false">
948
+ [show source]
949
+ </a>
950
+ <pre id='M000066-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 664</span>&#x000A;664: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_attributes</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">attribute_hash</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;665: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">nil?</span>&#x000A;666: <span class="ruby-identifier">attribute_hash</span> = <span class="ruby-identifier">namespace</span>&#x000A;667: <span class="ruby-identifier">namespace</span> = <span class="ruby-value str">&quot;&quot;</span>&#x000A;668: <span class="ruby-keyword kw">end</span>&#x000A;669: &#x000A;670: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;namespace can't be nil&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>&#x000A;671: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;attribute_hash should be a Hash&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>&#x000A;672: &#x000A;673: <span class="ruby-identifier">namespace_attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]&#x000A;674: <span class="ruby-identifier">namespace_attributes</span>.<span class="ruby-identifier">clear</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace_attributes</span>&#x000A;675: &#x000A;676: <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>&#x000A;677: <span class="ruby-comment cmt"># Calling set_attribute() is required to ensure validations</span>&#x000A;678: <span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)&#x000A;679: <span class="ruby-keyword kw">end</span>&#x000A;680: <span class="ruby-keyword kw">end</span></pre>
951
+ </div>
952
+ </div>
953
+ <div class='method public-instance' id='method-M000052'>
954
+ <a name='M000052'></a>
955
+ <div class='synopsis'>
956
+ <span class='name'>to_child_hash</span>
957
+ <span class='arguments'>()</span>
958
+ </div>
959
+ <div class='description'>
960
+ <p>
961
+ Returns a new Hash where the children&#8217;s names as keys and their
962
+ values as the key&#8217;s value. Example:
963
+ </p>
964
+ <pre>child1 &quot;toto&quot;&#x000A;child2 2</pre>
965
+ <p>
966
+ would give
967
+ </p>
968
+ <pre>{ &quot;child1&quot; =&gt; &quot;toto&quot;, &quot;child2&quot; =&gt; 2 }</pre>
969
+ </div>
970
+ <div class='source'>
971
+ <a class='source-toggle' href='#' onclick="toggleCode('M000052-source'); return false">
972
+ [show source]
973
+ </a>
974
+ <pre id='M000052-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 406</span>&#x000A;406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_child_hash</span>&#x000A;407: <span class="ruby-identifier">hash</span> = {}&#x000A;408: <span class="ruby-identifier">children</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span> }&#x000A;409: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>&#x000A;410: <span class="ruby-keyword kw">end</span></pre>
975
+ </div>
976
+ </div>
977
+ <div class='method public-instance' id='method-M000053'>
978
+ <a name='M000053'></a>
979
+ <div class='synopsis'>
980
+ <span class='name'>to_child_string_hash</span>
981
+ <span class='arguments'>()</span>
982
+ </div>
983
+ <div class='description'>
984
+ <p>
985
+ Returns a new Hash where the children&#8217;s names as keys and their
986
+ values as the key&#8217;s value. Values are converted to Strings.
987
+ <tt>nil</tt> values become empty Strings. Example:
988
+ </p>
989
+ <pre>child1 &quot;toto&quot;&#x000A;child2 2&#x000A;child3 null</pre>
990
+ <p>
991
+ would give
992
+ </p>
993
+ <pre>{ &quot;child1&quot; =&gt; &quot;toto&quot;, &quot;child2&quot; =&gt; &quot;2&quot;, &quot;child3&quot; =&gt; &quot;&quot; }</pre>
994
+ </div>
995
+ <div class='source'>
996
+ <a class='source-toggle' href='#' onclick="toggleCode('M000053-source'); return false">
997
+ [show source]
998
+ </a>
999
+ <pre id='M000053-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 424</span>&#x000A;424: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_child_string_hash</span>&#x000A;425: <span class="ruby-identifier">hash</span> = {}&#x000A;426: <span class="ruby-identifier">children</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>&#x000A;427: <span class="ruby-comment cmt"># FIXME: it is quite hard to be sure whether we should mimic the Java version</span>&#x000A;428: <span class="ruby-comment cmt"># as there might be a lot of values that don't translate nicely to Strings.</span>&#x000A;429: <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_s</span>&#x000A;430: <span class="ruby-keyword kw">end</span>&#x000A;431: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>&#x000A;432: <span class="ruby-keyword kw">end</span></pre>
1000
+ </div>
1001
+ </div>
1002
+ <div class='method public-instance' id='method-M000073'>
1003
+ <a name='M000073'></a>
1004
+ <div class='synopsis'>
1005
+ <span class='name'>to_s</span>
1006
+ <span class='arguments'>()</span>
1007
+ </div>
1008
+ <div class='description'>
1009
+ <p>
1010
+ Get a String representation of this SDL <a href="Tag.html">Tag</a>. This
1011
+ method returns a complete description of the Tag&#8217;s state using SDL
1012
+ (i.e. the output can be parsed by <a href="Tag.html#M000070">read</a>)
1013
+ </p>
1014
+ <p>
1015
+ Returns A string representation of this tag using SDL
1016
+ </p>
1017
+ </div>
1018
+ <div class='source'>
1019
+ <a class='source-toggle' href='#' onclick="toggleCode('M000073-source'); return false">
1020
+ [show source]
1021
+ </a>
1022
+ <pre id='M000073-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 792</span>&#x000A;792: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>&#x000A;793: <span class="ruby-identifier">to_string</span>&#x000A;794: <span class="ruby-keyword kw">end</span></pre>
1023
+ </div>
1024
+ </div>
1025
+ <div class='method public-instance' id='method-M000074'>
1026
+ <a name='M000074'></a>
1027
+ <div class='synopsis'>
1028
+ <span class='name'>to_string</span>
1029
+ <span class='arguments'>(line_prefix = &quot;&quot;, indent = &quot;\t&quot;)</span>
1030
+ </div>
1031
+ <div class='description'>
1032
+ <table>
1033
+ <tr><td valign="top"><em>linePrefix</em>:</td><td>A prefix to insert before every line.
1034
+
1035
+ </td></tr>
1036
+ </table>
1037
+ <p>
1038
+ Returns A string representation of this tag using SDL
1039
+ </p>
1040
+ <p>
1041
+ TODO: break up long lines using the backslash
1042
+ </p>
1043
+ </div>
1044
+ <div class='source'>
1045
+ <a class='source-toggle' href='#' onclick="toggleCode('M000074-source'); return false">
1046
+ [show source]
1047
+ </a>
1048
+ <pre id='M000074-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 801</span>&#x000A;801: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_string</span>(<span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-value str">&quot;\t&quot;</span>)&#x000A;802: <span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line_prefix</span>.<span class="ruby-identifier">nil?</span>&#x000A;803: <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>&#x000A;804: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span>&#x000A;805: &#x000A;806: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;content&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;807: <span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">true</span>&#x000A;808: <span class="ruby-keyword kw">else</span>&#x000A;809: <span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">false</span>&#x000A;810: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;811: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span>&#x000A;812: <span class="ruby-keyword kw">end</span>&#x000A;813: &#x000A;814: <span class="ruby-comment cmt"># output values</span>&#x000A;815: <span class="ruby-identifier">values</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>&#x000A;816: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">skip_value_space</span>&#x000A;817: <span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">false</span>&#x000A;818: <span class="ruby-keyword kw">else</span>&#x000A;819: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span>&#x000A;820: <span class="ruby-keyword kw">end</span>&#x000A;821: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">line_prefix</span>, <span class="ruby-identifier">indent</span>)&#x000A;822: <span class="ruby-keyword kw">end</span>&#x000A;823: &#x000A;824: <span class="ruby-comment cmt"># output attributes</span>&#x000A;825: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;826: <span class="ruby-identifier">all_attributes_hash</span> = <span class="ruby-identifier">attributes</span>&#x000A;827: <span class="ruby-identifier">all_attributes_array</span> = <span class="ruby-identifier">all_attributes_hash</span>.<span class="ruby-identifier">sort</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>&#x000A;828: <span class="ruby-identifier">namespace1</span>, <span class="ruby-identifier">name1</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)&#x000A;829: <span class="ruby-identifier">namespace1</span>, <span class="ruby-identifier">name1</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">namespace1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name1</span>.<span class="ruby-identifier">nil?</span>&#x000A;830: <span class="ruby-identifier">namespace2</span>, <span class="ruby-identifier">name2</span> = <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)&#x000A;831: <span class="ruby-identifier">namespace2</span>, <span class="ruby-identifier">name2</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">namespace2</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name2</span>.<span class="ruby-identifier">nil?</span>&#x000A;832: &#x000A;833: <span class="ruby-identifier">diff</span> = <span class="ruby-identifier">namespace1</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">namespace2</span>&#x000A;834: <span class="ruby-identifier">diff</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">name1</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">name2</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">diff</span>&#x000A;835: }&#x000A;836: <span class="ruby-identifier">all_attributes_array</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attribute_name</span>, <span class="ruby-identifier">attribute_value</span><span class="ruby-operator">|</span>&#x000A;837: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">attribute_name</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'='</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">attribute_value</span>, <span class="ruby-keyword kw">true</span>)&#x000A;838: <span class="ruby-keyword kw">end</span>&#x000A;839: <span class="ruby-keyword kw">end</span>&#x000A;840: &#x000A;841: <span class="ruby-comment cmt"># output children</span>&#x000A;842: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>&#x000A;843: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; {#{$/}&quot;</span>&#x000A;844: <span class="ruby-identifier">children_to_string</span>(<span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">indent</span>, <span class="ruby-identifier">s</span>)&#x000A;845: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?}</span>&#x000A;846: <span class="ruby-keyword kw">end</span>&#x000A;847: &#x000A;848: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>&#x000A;849: <span class="ruby-keyword kw">end</span></pre>
1049
+ </div>
1050
+ </div>
1051
+ <div class='method public-instance' id='method-M000079'>
1052
+ <a name='M000079'></a>
1053
+ <div class='synopsis'>
1054
+ <span class='name'>to_xml_string</span>
1055
+ <span class='arguments'>(options = {})</span>
1056
+ </div>
1057
+ <div class='description'>
1058
+ <p>
1059
+ Returns a string containing an XML representation of this tag. Values will
1060
+ be represented using _val0, _val1, etc.
1061
+ </p>
1062
+ <table>
1063
+ <tr><td valign="top"><em>options</em>:</td><td>a hash of the options
1064
+
1065
+ </td></tr>
1066
+ </table>
1067
+ <h3>options:</h3>
1068
+ <dl>
1069
+ <dt>:line_prefix</dt><dd>a text prefixing each line (default: &#8220;&#8221;)
1070
+
1071
+ </dd>
1072
+ <dt>:uri_by_namespace</dt><dd>a Hash giving the URIs for the namespaces
1073
+
1074
+ </dd>
1075
+ <dt>:indent</dt><dd>text specifying one indentation (default: &#8220;t&#8220;)
1076
+
1077
+ </dd>
1078
+ <dt>:eol</dt><dd>end of line expression (default: &#8220;n&#8220;)
1079
+
1080
+ </dd>
1081
+ <dt>:omit_null_attributes</dt><dd>if true, null/nil attributes are not exported (default: false). Otherwise,
1082
+ they are exported as follows:
1083
+
1084
+ <pre>tag attr=&quot;null&quot;</pre>
1085
+ </dd>
1086
+ </dl>
1087
+ </div>
1088
+ <div class='source'>
1089
+ <a class='source-toggle' href='#' onclick="toggleCode('M000079-source'); return false">
1090
+ [show source]
1091
+ </a>
1092
+ <pre id='M000079-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 899</span>&#x000A;899: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_xml_string</span>(<span class="ruby-identifier">options</span> = {})&#x000A;900: <span class="ruby-identifier">options</span> = {&#x000A;901: <span class="ruby-identifier">:uri_by_namespace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,&#x000A;902: <span class="ruby-identifier">:indent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;\t&quot;</span>,&#x000A;903: <span class="ruby-identifier">:line_prefix</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&quot;</span>,&#x000A;904: <span class="ruby-identifier">:eol</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;\n&quot;</span>,&#x000A;905: <span class="ruby-identifier">:omit_null_attributes</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>&#x000A;906: }.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)&#x000A;907: <span class="ruby-identifier">_to_xml_string</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:line_prefix</span>], <span class="ruby-identifier">options</span>)&#x000A;908: <span class="ruby-keyword kw">end</span></pre>
1093
+ </div>
1094
+ </div>
1095
+ <div class='method public-instance' id='method-M000045'>
1096
+ <a name='M000045'></a>
1097
+ <div class='synopsis'>
1098
+ <span class='name'>value</span>
1099
+ <span class='arguments'>()</span>
1100
+ </div>
1101
+ <div class='description'>
1102
+ <p>
1103
+ A convenience method that returns the first value.
1104
+ </p>
1105
+ </div>
1106
+ <div class='source'>
1107
+ <a class='source-toggle' href='#' onclick="toggleCode('M000045-source'); return false">
1108
+ [show source]
1109
+ </a>
1110
+ <pre id='M000045-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 259</span>&#x000A;259: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value</span>&#x000A;260: <span class="ruby-ivar">@values</span>[<span class="ruby-value">0</span>]&#x000A;261: <span class="ruby-keyword kw">end</span></pre>
1111
+ </div>
1112
+ </div>
1113
+ <div class='method public-instance' id='method-M000044'>
1114
+ <a name='M000044'></a>
1115
+ <div class='synopsis'>
1116
+ <span class='name'>value=</span>
1117
+ <span class='arguments'>(value)</span>
1118
+ </div>
1119
+ <div class='description'>
1120
+ <p>
1121
+ A convenience method that sets the first value in the value list. See # <a
1122
+ href="Tag.html#M000054">add_value</a> for legal types.
1123
+ </p>
1124
+ <table>
1125
+ <tr><td valign="top"><em>value</em>:</td><td>The value to be set.
1126
+
1127
+ </td></tr>
1128
+ </table>
1129
+ <h3>Raises</h3>
1130
+ <table>
1131
+ <tr><td valign="top"><em>ArgumentError</em>:</td><td>if the value is not a legal SDL type
1132
+
1133
+ </td></tr>
1134
+ </table>
1135
+ </div>
1136
+ <div class='source'>
1137
+ <a class='source-toggle' href='#' onclick="toggleCode('M000044-source'); return false">
1138
+ [show source]
1139
+ </a>
1140
+ <pre id='M000044-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 251</span>&#x000A;251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value=</span>(<span class="ruby-identifier">value</span>)&#x000A;252: <span class="ruby-ivar">@values</span>[<span class="ruby-value">0</span>] = <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">value</span>)&#x000A;253: <span class="ruby-keyword kw">nil</span>&#x000A;254: <span class="ruby-keyword kw">end</span></pre>
1141
+ </div>
1142
+ </div>
1143
+ <div class='method public-instance' id='method-M000058'>
1144
+ <a name='M000058'></a>
1145
+ <div class='synopsis'>
1146
+ <span class='name'>values</span>
1147
+ <span class='arguments'>( {|value| ...}</span>
1148
+ </div>
1149
+ <div class='description'>
1150
+ <p>
1151
+ Returns an Array of the values of this <a href="Tag.html">Tag</a> or
1152
+ enumerates them.
1153
+ </p>
1154
+ <pre>tag.values # =&gt; [123, &quot;spices&quot;]&#x000A;tag.values { |value| puts value }</pre>
1155
+ </div>
1156
+ <div class='source'>
1157
+ <a class='source-toggle' href='#' onclick="toggleCode('M000058-source'); return false">
1158
+ [show source]
1159
+ </a>
1160
+ <pre id='M000058-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 478</span>&#x000A;478: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values</span> <span class="ruby-comment cmt"># :yields: value</span>&#x000A;479: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>&#x000A;480: <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">v</span> }&#x000A;481: <span class="ruby-keyword kw">nil</span>&#x000A;482: <span class="ruby-keyword kw">else</span>&#x000A;483: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@values</span>&#x000A;484: <span class="ruby-keyword kw">end</span>&#x000A;485: <span class="ruby-keyword kw">end</span></pre>
1161
+ </div>
1162
+ </div>
1163
+ <div class='method public-instance' id='method-M000059'>
1164
+ <a name='M000059'></a>
1165
+ <div class='synopsis'>
1166
+ <span class='name'>values=</span>
1167
+ <span class='arguments'>(someValues)</span>
1168
+ </div>
1169
+ <div class='description'>
1170
+ <p>
1171
+ Set the values for this tag. See <a href="Tag.html#M000054">add_value</a>
1172
+ for legal value types.
1173
+ </p>
1174
+ <table>
1175
+ <tr><td valign="top"><em>values</em>:</td><td>The new values
1176
+
1177
+ </td></tr>
1178
+ </table>
1179
+ <p>
1180
+ Raises an <tt>ArgumentError</tt> if the collection contains any values
1181
+ which are not legal SDL types.
1182
+ </p>
1183
+ </div>
1184
+ <div class='source'>
1185
+ <a class='source-toggle' href='#' onclick="toggleCode('M000059-source'); return false">
1186
+ [show source]
1187
+ </a>
1188
+ <pre id='M000059-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 493</span>&#x000A;493: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values=</span>(<span class="ruby-identifier">someValues</span>)&#x000A;494: <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">clear</span>()&#x000A;495: <span class="ruby-identifier">someValues</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>&#x000A;496: <span class="ruby-comment cmt"># this is required to ensure validation of types</span>&#x000A;497: <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">v</span>)&#x000A;498: }&#x000A;499: <span class="ruby-keyword kw">nil</span>&#x000A;500: <span class="ruby-keyword kw">end</span></pre>
1189
+ </div>
1190
+ </div>
1191
+ <div class='method public-instance' id='method-M000072'>
1192
+ <a name='M000072'></a>
1193
+ <div class='synopsis'>
1194
+ <span class='name'>write</span>
1195
+ <span class='arguments'>(output, include_root = false)</span>
1196
+ </div>
1197
+ <div class='description'>
1198
+ <p>
1199
+ Write this tag out to the given IO or StringIO or String (optionally
1200
+ clipping the root.) Returns <tt>output</tt>.
1201
+ </p>
1202
+ <table>
1203
+ <tr><td valign="top"><em>output</em>:</td><td>an IO or StringIO or a String to write to
1204
+
1205
+ </td></tr>
1206
+ <tr><td valign="top"><tt>include_root</tt>:</td><td>if true this tag will be written out as the root element, if false only the
1207
+
1208
+ </td></tr>
1209
+ </table>
1210
+ <pre>children will be written. False by default.</pre>
1211
+ </div>
1212
+ <div class='source'>
1213
+ <a class='source-toggle' href='#' onclick="toggleCode('M000072-source'); return false">
1214
+ [show source]
1215
+ </a>
1216
+ <pre id='M000072-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 759</span>&#x000A;759: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">output</span>, <span class="ruby-identifier">include_root</span> = <span class="ruby-keyword kw">false</span>)&#x000A;760: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>&#x000A;761: <span class="ruby-identifier">io</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output</span>)&#x000A;762: <span class="ruby-identifier">close_io</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-comment cmt"># indicates we close the IO ourselves</span>&#x000A;763: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">StringIO</span>&#x000A;764: <span class="ruby-identifier">io</span> = <span class="ruby-identifier">output</span>&#x000A;765: <span class="ruby-identifier">close_io</span> = <span class="ruby-keyword kw">false</span> <span class="ruby-comment cmt"># let the caller close the IO</span>&#x000A;766: <span class="ruby-keyword kw">else</span>&#x000A;767: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;'output' should be a String or an IO but was #{output.class}&quot;</span>&#x000A;768: <span class="ruby-keyword kw">end</span>&#x000A;769: &#x000A;770: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">include_root</span>&#x000A;771: <span class="ruby-identifier">io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">to_s</span>&#x000A;772: <span class="ruby-keyword kw">else</span>&#x000A;773: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>&#x000A;774: <span class="ruby-identifier">children</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>&#x000A;775: <span class="ruby-identifier">io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">$/</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span>&#x000A;776: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>&#x000A;777: <span class="ruby-identifier">io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">to_s</span>&#x000A;778: <span class="ruby-keyword kw">end</span>&#x000A;779: <span class="ruby-keyword kw">end</span>&#x000A;780: &#x000A;781: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">close</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">close_io</span>&#x000A;782: &#x000A;783: <span class="ruby-identifier">output</span>&#x000A;784: <span class="ruby-keyword kw">end</span></pre>
1217
+ </div>
1218
+ </div>
1219
+ <h2>Protected instance methods</h2>
1220
+ <div class='method protected-instance' id='method-M000080'>
1221
+ <a name='M000080'></a>
1222
+ <div class='synopsis'>
1223
+ <span class='name'>_to_xml_string</span>
1224
+ <span class='arguments'>(line_prefix, options)</span>
1225
+ </div>
1226
+ <div class='description'>
1227
+ <p>
1228
+ Implementation of <a href="Tag.html#M000079">to_xml_string</a> but without
1229
+ the extra-treatment on parameters for default values.
1230
+ </p>
1231
+ </div>
1232
+ <div class='source'>
1233
+ <a class='source-toggle' href='#' onclick="toggleCode('M000080-source'); return false">
1234
+ [show source]
1235
+ </a>
1236
+ <pre id='M000080-source'> <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 914</span>&#x000A;914: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_to_xml_string</span>(<span class="ruby-identifier">line_prefix</span>, <span class="ruby-identifier">options</span>)&#x000A;915: <span class="ruby-identifier">eol</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:eol</span>]&#x000A;916: &#x000A;917: <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>&#x000A;918: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?&lt;</span>&#x000A;919: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;920: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span>&#x000A;921: &#x000A;922: <span class="ruby-comment cmt"># output namespace declarations</span>&#x000A;923: <span class="ruby-identifier">uri_by_namespace</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:uri_by_namespace</span>]&#x000A;924: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri_by_namespace</span>&#x000A;925: <span class="ruby-identifier">uri_by_namespace</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>&#x000A;926: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>&#x000A;927: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; xmlns:#{namespace}=\&quot;#{uri}\&quot;&quot;</span>&#x000A;928: <span class="ruby-keyword kw">else</span>&#x000A;929: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; xmlns=\&quot;#{uri}\&quot;&quot;</span>&#x000A;930: <span class="ruby-keyword kw">end</span>&#x000A;931: <span class="ruby-keyword kw">end</span>&#x000A;932: <span class="ruby-keyword kw">end</span>&#x000A;933: &#x000A;934: <span class="ruby-comment cmt"># output values</span>&#x000A;935: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">empty?</span>&#x000A;936: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>&#x000A;937: <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>&#x000A;938: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; _val&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=\&quot;&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\&quot;&quot;</span>&#x000A;939: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>&#x000A;940: <span class="ruby-keyword kw">end</span>&#x000A;941: <span class="ruby-keyword kw">end</span>&#x000A;942: &#x000A;943: <span class="ruby-comment cmt"># output attributes</span>&#x000A;944: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_attribute?</span>&#x000A;945: <span class="ruby-identifier">omit_null_attributes</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:omit_null_attributes</span>]&#x000A;946: <span class="ruby-identifier">attributes</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attribute_namespace</span>, <span class="ruby-identifier">attribute_name</span>, <span class="ruby-identifier">attribute_value</span><span class="ruby-operator">|</span>&#x000A;947: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">omit_null_attributes</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">attribute_value</span>.<span class="ruby-identifier">nil?</span>&#x000A;948: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span>&#x000A;949: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{attribute_namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attribute_namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;950: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">attribute_name</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=\&quot;&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">attribute_value</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?&quot;</span>&#x000A;951: <span class="ruby-keyword kw">end</span>&#x000A;952: <span class="ruby-keyword kw">end</span>&#x000A;953: <span class="ruby-keyword kw">end</span>&#x000A;954: &#x000A;955: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>&#x000A;956: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;/&gt;&quot;</span>&#x000A;957: <span class="ruby-keyword kw">else</span>&#x000A;958: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&gt;&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">eol</span>&#x000A;959: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>&#x000A;960: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">_to_xml_string</span>(<span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:indent</span>], <span class="ruby-identifier">options</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">eol</span>&#x000A;961: <span class="ruby-keyword kw">end</span>&#x000A;962: &#x000A;963: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;/&quot;</span>&#x000A;964: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{namespace}:&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>&#x000A;965: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?&gt;</span>&#x000A;966: <span class="ruby-keyword kw">end</span>&#x000A;967: &#x000A;968: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>&#x000A;969: <span class="ruby-keyword kw">end</span></pre>
1237
+ </div>
1238
+ </div>
1239
+ </div>
1972
1240
  </div>
1973
1241
  </div>
1974
1242
  </div>
1975
-
1976
- <div id="method-M000047" class="method-detail">
1977
- <a name="M000047"></a>
1978
-
1979
- <div class="method-heading">
1980
- <a href="#M000047" class="method-signature">
1981
- <span class="method-name">write</span><span class="method-args">(output, include_root = false)</span>
1982
- </a>
1983
- </div>
1984
-
1985
- <div class="method-description">
1986
- <p>
1987
- Write this tag out to the given IO or StringIO or String (optionally
1988
- clipping the root.) Returns <tt>output</tt>.
1989
- </p>
1990
- <table>
1991
- <tr><td valign="top"><tt>output</tt>:</td><td>an IO or StringIO or a String to <a href="Tag.html#M000047">write</a> to
1992
-
1993
- </td></tr>
1994
- <tr><td valign="top"><tt>include_root</tt>:</td><td>if true this tag will be written out as the root element, if false only the
1995
-
1996
- </td></tr>
1997
- </table>
1998
- <pre>
1999
- children will be written. False by default.
2000
- </pre>
2001
- <p><a class="source-toggle" href="#"
2002
- onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
2003
- <div class="method-source-code" id="M000047-source">
2004
- <pre>
2005
- <span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 732</span>
2006
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">output</span>, <span class="ruby-identifier">include_root</span> = <span class="ruby-keyword kw">false</span>)
2007
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>
2008
- <span class="ruby-identifier">io</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output</span>)
2009
- <span class="ruby-identifier">close_io</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-comment cmt"># indicates we close the IO ourselves</span>
2010
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">StringIO</span>
2011
- <span class="ruby-identifier">io</span> = <span class="ruby-identifier">output</span>
2012
- <span class="ruby-identifier">close_io</span> = <span class="ruby-keyword kw">false</span> <span class="ruby-comment cmt"># let the caller close the IO</span>
2013
- <span class="ruby-keyword kw">else</span>
2014
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;'output' should be a String or an IO but was #{output.class}&quot;</span>
2015
- <span class="ruby-keyword kw">end</span>
2016
-
2017
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">include_root</span>
2018
- <span class="ruby-identifier">io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">to_s</span>
2019
- <span class="ruby-keyword kw">else</span>
2020
- <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
2021
- <span class="ruby-identifier">children</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
2022
- <span class="ruby-identifier">io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">$/</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span>
2023
- <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
2024
- <span class="ruby-identifier">io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">to_s</span>
2025
- <span class="ruby-keyword kw">end</span>
2026
- <span class="ruby-keyword kw">end</span>
2027
-
2028
- <span class="ruby-identifier">io</span>.<span class="ruby-identifier">close</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">close_io</span>
2029
-
2030
- <span class="ruby-identifier">output</span>
2031
- <span class="ruby-keyword kw">end</span>
2032
- </pre>
2033
- </div>
2034
- </div>
2035
- </div>
2036
-
2037
-
1243
+ <div id='footer-push'></div>
1244
+ </div>
1245
+ <div id='footer'>
1246
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
2038
1247
  </div>
2039
-
2040
-
2041
- </div>
2042
-
2043
-
2044
- <div id="validator-badges">
2045
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
2046
- </div>
2047
-
2048
- </body>
2049
- </html>
1248
+ </body>
1249
+ </html>