sdl4r 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +13 -0
- data/README +2 -2
- data/Rakefile +3 -3
- data/TODO.txt +28 -11
- data/doc/classes/SDL4R.html +681 -0
- data/doc/classes/SDL4R/Parser.html +314 -0
- data/doc/classes/SDL4R/SdlBinary.html +303 -0
- data/doc/classes/SDL4R/SdlParseError.html +185 -0
- data/doc/classes/SDL4R/SdlTimeSpan.html +948 -0
- data/doc/classes/SDL4R/Tag.html +2028 -0
- data/doc/created.rid +1 -1
- data/doc/files/CHANGELOG.html +130 -0
- data/doc/files/LICENSE.html +756 -0
- data/doc/files/README.html +606 -0
- data/doc/files/lib/sdl4r/parser/reader_rb.html +108 -0
- data/doc/files/lib/sdl4r/parser/time_span_with_zone_rb.html +101 -0
- data/doc/files/lib/sdl4r/parser/token_rb.html +101 -0
- data/doc/files/lib/sdl4r/parser/tokenizer_rb.html +101 -0
- data/doc/files/lib/sdl4r/parser_rb.html +108 -0
- data/doc/files/lib/sdl4r/sdl4r_rb.html +111 -0
- data/doc/files/lib/sdl4r/sdl_binary_rb.html +101 -0
- data/doc/files/lib/sdl4r/sdl_parse_error_rb.html +101 -0
- data/doc/files/lib/sdl4r/sdl_time_span_rb.html +101 -0
- data/doc/files/lib/sdl4r/tag_rb.html +110 -0
- data/doc/files/lib/sdl4r_rb.html +101 -0
- data/doc/fr_file_index.html +2 -1
- data/doc/fr_method_index.html +88 -82
- data/lib/sdl4r.rb +18 -0
- data/lib/sdl4r/parser.rb +2 -9
- data/lib/sdl4r/{sdl.rb → sdl4r.rb} +46 -7
- data/lib/sdl4r/sdl_time_span.rb +6 -1
- data/lib/sdl4r/tag.rb +6 -7
- data/test/sdl4r/parser_test.rb +4 -16
- data/test/sdl4r/sdl4r_test.rb +3 -13
- data/test/sdl4r/sdl_test.rb +39 -0
- metadata +29 -6
@@ -0,0 +1,2028 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
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=iso-8859-1" />
|
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"><<</a>
|
112
|
+
<a href="#M000052">==</a>
|
113
|
+
<a href="#M000015">add_child</a>
|
114
|
+
<a href="#M000029">add_value</a>
|
115
|
+
<a href="#M000036">attribute</a>
|
116
|
+
<a href="#M000038">attributes</a>
|
117
|
+
<a href="#M000042">attributes=</a>
|
118
|
+
<a href="#M000024">child</a>
|
119
|
+
<a href="#M000021">child_count</a>
|
120
|
+
<a href="#M000022">children</a>
|
121
|
+
<a href="#M000050">children_to_string</a>
|
122
|
+
<a href="#M000023">children_values</a>
|
123
|
+
<a href="#M000040">clear_attributes</a>
|
124
|
+
<a href="#M000018">clear_children</a>
|
125
|
+
<a href="#M000032">clear_values</a>
|
126
|
+
<a href="#M000051">eql?</a>
|
127
|
+
<a href="#M000037">has_attribute?</a>
|
128
|
+
<a href="#M000025">has_child?</a>
|
129
|
+
<a href="#M000026">has_children?</a>
|
130
|
+
<a href="#M000030">has_value?</a>
|
131
|
+
<a href="#M000053">hash</a>
|
132
|
+
<a href="#M000043">name=</a>
|
133
|
+
<a href="#M000044">namespace=</a>
|
134
|
+
<a href="#M000013">new</a>
|
135
|
+
<a href="#M000014">new_child</a>
|
136
|
+
<a href="#M000045">read</a>
|
137
|
+
<a href="#M000046">read_from_io</a>
|
138
|
+
<a href="#M000039">remove_attribute</a>
|
139
|
+
<a href="#M000017">remove_child</a>
|
140
|
+
<a href="#M000031">remove_value</a>
|
141
|
+
<a href="#M000035">set_attribute</a>
|
142
|
+
<a href="#M000041">set_attributes</a>
|
143
|
+
<a href="#M000027">to_child_hash</a>
|
144
|
+
<a href="#M000028">to_child_string_hash</a>
|
145
|
+
<a href="#M000048">to_s</a>
|
146
|
+
<a href="#M000049">to_string</a>
|
147
|
+
<a href="#M000054">to_xml_string</a>
|
148
|
+
<a href="#M000020">value</a>
|
149
|
+
<a href="#M000019">value=</a>
|
150
|
+
<a href="#M000033">values</a>
|
151
|
+
<a href="#M000034">values=</a>
|
152
|
+
<a href="#M000047">write</a>
|
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"> [R] </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"> [R] </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, &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("name")
|
215
|
+
tag = Tag.new("namespace", "name")
|
216
|
+
|
217
|
+
tag = Tag.new("fruit") do
|
218
|
+
add_value 2
|
219
|
+
new_child("orange") do
|
220
|
+
set_attribute("quantity", 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 92</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">&</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">"tag namespace must be a String"</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">"tag name must be a String"</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">"Tag name cannot be nil or empty"</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 => {name => 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">&</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"><<</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 => <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 << Tag.new("child")
|
295
|
+
tag << 123 # new integer value
|
296
|
+
tag << "islamabad" # new string value
|
297
|
+
tag << { "metric:length" => 1027 } # new attribute (with namespace)
|
298
|
+
tag << [nil, 456, "abc"] # several values added
|
299
|
+
|
300
|
+
tag = Tag.new("tag")
|
301
|
+
tag << [[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 "magical" 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 166</span>
|
317
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-operator"><<</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">""</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>)
|
325
|
+
}
|
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">"content"</span>)
|
330
|
+
<span class="ruby-identifier">anonymous</span> <span class="ruby-operator"><<</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"><<</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 139</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 400</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">end</span>
|
428
|
+
</pre>
|
429
|
+
</div>
|
430
|
+
</div>
|
431
|
+
</div>
|
432
|
+
|
433
|
+
<div id="method-M000036" class="method-detail">
|
434
|
+
<a name="M000036"></a>
|
435
|
+
|
436
|
+
<div class="method-heading">
|
437
|
+
<a href="#M000036" class="method-signature">
|
438
|
+
<span class="method-name">attribute</span><span class="method-args">(namespace, key = nil)</span>
|
439
|
+
</a>
|
440
|
+
</div>
|
441
|
+
|
442
|
+
<div class="method-description">
|
443
|
+
<pre>
|
444
|
+
attribute(key)
|
445
|
+
attribute(namespace, key)
|
446
|
+
</pre>
|
447
|
+
<p>
|
448
|
+
Returns the <a href="Tag.html#M000036">attribute</a> of the specified
|
449
|
+
<tt>namespace</tt> of specified <tt>key</tt> or <tt>nil</tt> if not found.
|
450
|
+
</p>
|
451
|
+
<p><a class="source-toggle" href="#"
|
452
|
+
onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
|
453
|
+
<div class="method-source-code" id="M000036-source">
|
454
|
+
<pre>
|
455
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 506</span>
|
456
|
+
<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>)
|
457
|
+
<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>
|
458
|
+
<span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
|
459
|
+
<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>]
|
460
|
+
<span class="ruby-keyword kw">end</span>
|
461
|
+
</pre>
|
462
|
+
</div>
|
463
|
+
</div>
|
464
|
+
</div>
|
465
|
+
|
466
|
+
<div id="method-M000038" class="method-detail">
|
467
|
+
<a name="M000038"></a>
|
468
|
+
|
469
|
+
<div class="method-heading">
|
470
|
+
<a href="#M000038" class="method-signature">
|
471
|
+
<span class="method-name">attributes</span><span class="method-args">(namespace = nil) {|namespace, key, value| ...}</span>
|
472
|
+
</a>
|
473
|
+
</div>
|
474
|
+
|
475
|
+
<div class="method-description">
|
476
|
+
<p>
|
477
|
+
Returns a Hash of the <a href="Tag.html#M000038">attributes</a> of the
|
478
|
+
specified <tt>namespace</tt> (default is all) or enumerates them.
|
479
|
+
</p>
|
480
|
+
<pre>
|
481
|
+
tag.attributes # => { "length" => 123, "width" = 25.4, "orig:color" => "gray" }
|
482
|
+
tag.attributes("orig") do |namespace, key, value|
|
483
|
+
p "#{namespace}:#{key} = #{value}"
|
484
|
+
end
|
485
|
+
</pre>
|
486
|
+
<p>
|
487
|
+
<tt>namespace</tt>:: namespace of the returned <a
|
488
|
+
href="Tag.html#M000038">attributes</a>. If nil, all <a
|
489
|
+
href="Tag.html#M000038">attributes</a> are returned with qualified names
|
490
|
+
(e.g. "meat:color"). If "", <a
|
491
|
+
href="Tag.html#M000038">attributes</a> of the default namespace are
|
492
|
+
returned.
|
493
|
+
</p>
|
494
|
+
<p><a class="source-toggle" href="#"
|
495
|
+
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
496
|
+
<div class="method-source-code" id="M000038-source">
|
497
|
+
<pre>
|
498
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 544</span>
|
499
|
+
<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">&</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: namespace, key, value</span>
|
500
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
501
|
+
<span class="ruby-identifier">each_attribute</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
502
|
+
|
503
|
+
<span class="ruby-keyword kw">else</span>
|
504
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
|
505
|
+
<span class="ruby-identifier">hash</span> = {}
|
506
|
+
|
507
|
+
<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>
|
508
|
+
<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>
|
509
|
+
<span class="ruby-identifier">hash</span>[<span class="ruby-identifier">qualified_name</span>] = <span class="ruby-identifier">value</span>
|
510
|
+
<span class="ruby-keyword kw">end</span>
|
511
|
+
|
512
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>
|
513
|
+
|
514
|
+
<span class="ruby-keyword kw">else</span>
|
515
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
|
516
|
+
<span class="ruby-keyword kw">end</span>
|
517
|
+
<span class="ruby-keyword kw">end</span>
|
518
|
+
<span class="ruby-keyword kw">end</span>
|
519
|
+
</pre>
|
520
|
+
</div>
|
521
|
+
</div>
|
522
|
+
</div>
|
523
|
+
|
524
|
+
<div id="method-M000042" class="method-detail">
|
525
|
+
<a name="M000042"></a>
|
526
|
+
|
527
|
+
<div class="method-heading">
|
528
|
+
<a href="#M000042" class="method-signature">
|
529
|
+
<span class="method-name">attributes=</span><span class="method-args">(attribute_hash)</span>
|
530
|
+
</a>
|
531
|
+
</div>
|
532
|
+
|
533
|
+
<div class="method-description">
|
534
|
+
<p>
|
535
|
+
Sets all the <a href="Tag.html#M000038">attributes</a> of the default
|
536
|
+
namespace for this <a href="Tag.html">Tag</a> in one operation.
|
537
|
+
</p>
|
538
|
+
<p>
|
539
|
+
See <a href="Tag.html#M000041">set_attributes</a>
|
540
|
+
</p>
|
541
|
+
<p><a class="source-toggle" href="#"
|
542
|
+
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
543
|
+
<div class="method-source-code" id="M000042-source">
|
544
|
+
<pre>
|
545
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 648</span>
|
546
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes=</span>(<span class="ruby-identifier">attribute_hash</span>)
|
547
|
+
<span class="ruby-identifier">set_attributes</span>(<span class="ruby-identifier">attribute_hash</span>)
|
548
|
+
<span class="ruby-keyword kw">end</span>
|
549
|
+
</pre>
|
550
|
+
</div>
|
551
|
+
</div>
|
552
|
+
</div>
|
553
|
+
|
554
|
+
<div id="method-M000024" class="method-detail">
|
555
|
+
<a name="M000024"></a>
|
556
|
+
|
557
|
+
<div class="method-heading">
|
558
|
+
<a href="#M000024" class="method-signature">
|
559
|
+
<span class="method-name">child</span><span class="method-args">(recursive = false, name = nil)</span>
|
560
|
+
</a>
|
561
|
+
</div>
|
562
|
+
|
563
|
+
<div class="method-description">
|
564
|
+
<pre>
|
565
|
+
child
|
566
|
+
child(name)
|
567
|
+
child(recursive, name)
|
568
|
+
</pre>
|
569
|
+
<p>
|
570
|
+
Get the first <a href="Tag.html#M000024">child</a> with the given name,
|
571
|
+
optionally using a recursive search.
|
572
|
+
</p>
|
573
|
+
<table>
|
574
|
+
<tr><td valign="top"><tt>name</tt>:</td><td>the name of the <a href="Tag.html#M000024">child</a> <a
|
575
|
+
href="Tag.html">Tag</a>. If <tt>nil</tt>, the first <a
|
576
|
+
href="Tag.html#M000024">child</a> is returned (<tt>nil</tt> if there are
|
577
|
+
|
578
|
+
</td></tr>
|
579
|
+
</table>
|
580
|
+
<p>
|
581
|
+
no <a href="Tag.html#M000022">children</a> at all).
|
582
|
+
</p>
|
583
|
+
<p>
|
584
|
+
Returns the first <a href="Tag.html#M000024">child</a> tag having the given
|
585
|
+
name or <tt>nil</tt> if no such <a href="Tag.html#M000024">child</a> exists
|
586
|
+
</p>
|
587
|
+
<p><a class="source-toggle" href="#"
|
588
|
+
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
589
|
+
<div class="method-source-code" id="M000024-source">
|
590
|
+
<pre>
|
591
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 304</span>
|
592
|
+
<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>)
|
593
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
|
594
|
+
<span class="ruby-identifier">name</span> = <span class="ruby-identifier">recursive</span>
|
595
|
+
<span class="ruby-identifier">recursive</span> = <span class="ruby-keyword kw">false</span>
|
596
|
+
<span class="ruby-keyword kw">end</span>
|
597
|
+
|
598
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>
|
599
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">first</span>
|
600
|
+
<span class="ruby-keyword kw">else</span>
|
601
|
+
<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> }
|
602
|
+
<span class="ruby-keyword kw">end</span>
|
603
|
+
<span class="ruby-keyword kw">end</span>
|
604
|
+
</pre>
|
605
|
+
</div>
|
606
|
+
</div>
|
607
|
+
</div>
|
608
|
+
|
609
|
+
<div id="method-M000021" class="method-detail">
|
610
|
+
<a name="M000021"></a>
|
611
|
+
|
612
|
+
<div class="method-heading">
|
613
|
+
<a href="#M000021" class="method-signature">
|
614
|
+
<span class="method-name">child_count</span><span class="method-args">()</span>
|
615
|
+
</a>
|
616
|
+
</div>
|
617
|
+
|
618
|
+
<div class="method-description">
|
619
|
+
<p>
|
620
|
+
Returns the number of <a href="Tag.html#M000022">children</a> <a
|
621
|
+
href="Tag.html">Tag</a>.
|
622
|
+
</p>
|
623
|
+
<p><a class="source-toggle" href="#"
|
624
|
+
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
625
|
+
<div class="method-source-code" id="M000021-source">
|
626
|
+
<pre>
|
627
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 226</span>
|
628
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">child_count</span>
|
629
|
+
<span class="ruby-ivar">@children</span>.<span class="ruby-identifier">size</span>
|
630
|
+
<span class="ruby-keyword kw">end</span>
|
631
|
+
</pre>
|
632
|
+
</div>
|
633
|
+
</div>
|
634
|
+
</div>
|
635
|
+
|
636
|
+
<div id="method-M000022" class="method-detail">
|
637
|
+
<a name="M000022"></a>
|
638
|
+
|
639
|
+
<div class="method-heading">
|
640
|
+
<a href="#M000022" class="method-signature">
|
641
|
+
<span class="method-name">children</span><span class="method-args">(recursive = false, namespace = nil, name = :DEFAULT) {|child| ...}</span>
|
642
|
+
</a>
|
643
|
+
</div>
|
644
|
+
|
645
|
+
<div class="method-description">
|
646
|
+
<pre>
|
647
|
+
children(recursive)
|
648
|
+
children(recursive, name)
|
649
|
+
children(recursive, namespace, name)
|
650
|
+
|
651
|
+
children(recursive) { |child| ... }
|
652
|
+
children(recursive, name) { |child| ... }
|
653
|
+
children(recursive, namespace, name) { |child| ... }
|
654
|
+
</pre>
|
655
|
+
<p>
|
656
|
+
Returns an Array of the <a href="Tag.html#M000022">children</a> Tags of
|
657
|
+
this <a href="Tag.html">Tag</a> or enumerates them.
|
658
|
+
</p>
|
659
|
+
<table>
|
660
|
+
<tr><td valign="top"><tt>recursive</tt>:</td><td>if true <a href="Tag.html#M000022">children</a> and all descendants will be
|
661
|
+
returned. False by default.
|
662
|
+
|
663
|
+
</td></tr>
|
664
|
+
<tr><td valign="top"><tt>name</tt>:</td><td>if not nil, only <a href="Tag.html#M000022">children</a> having this name
|
665
|
+
will be returned. Nil by default.
|
666
|
+
|
667
|
+
</td></tr>
|
668
|
+
<tr><td valign="top"><tt>namespace</tt>:</td><td>use nil for all namespaces and "" for the default one. Nil by
|
669
|
+
default.
|
670
|
+
|
671
|
+
</td></tr>
|
672
|
+
</table>
|
673
|
+
<pre>
|
674
|
+
tag.children # => array of the children
|
675
|
+
tag.children(true) { |descendant| ... }
|
676
|
+
|
677
|
+
tag.children(false, "name") # => children of name "name"
|
678
|
+
tag.children(false, "ns", nil) # => children of namespace "ns"
|
679
|
+
</pre>
|
680
|
+
<p><a class="source-toggle" href="#"
|
681
|
+
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
682
|
+
<div class="method-source-code" id="M000022-source">
|
683
|
+
<pre>
|
684
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 250</span>
|
685
|
+
<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">&</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: child</span>
|
686
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:DEFAULT</span>
|
687
|
+
<span class="ruby-identifier">name</span> = <span class="ruby-identifier">namespace</span>
|
688
|
+
<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>
|
689
|
+
<span class="ruby-keyword kw">end</span>
|
690
|
+
|
691
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
692
|
+
<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">block</span>)
|
693
|
+
|
694
|
+
<span class="ruby-keyword kw">else</span>
|
695
|
+
<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>
|
696
|
+
<span class="ruby-ivar">@children</span>
|
697
|
+
|
698
|
+
<span class="ruby-keyword kw">else</span>
|
699
|
+
<span class="ruby-identifier">result</span> = []
|
700
|
+
<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>
|
701
|
+
<span class="ruby-identifier">result</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">child</span>
|
702
|
+
}
|
703
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
|
704
|
+
<span class="ruby-keyword kw">end</span>
|
705
|
+
<span class="ruby-keyword kw">end</span>
|
706
|
+
<span class="ruby-keyword kw">end</span>
|
707
|
+
</pre>
|
708
|
+
</div>
|
709
|
+
</div>
|
710
|
+
</div>
|
711
|
+
|
712
|
+
<div id="method-M000050" class="method-detail">
|
713
|
+
<a name="M000050"></a>
|
714
|
+
|
715
|
+
<div class="method-heading">
|
716
|
+
<a href="#M000050" class="method-signature">
|
717
|
+
<span class="method-name">children_to_string</span><span class="method-args">(line_prefix = "", s = "")</span>
|
718
|
+
</a>
|
719
|
+
</div>
|
720
|
+
|
721
|
+
<div class="method-description">
|
722
|
+
<p>
|
723
|
+
Returns a string representation of the <a
|
724
|
+
href="Tag.html#M000022">children</a> tags.
|
725
|
+
</p>
|
726
|
+
<table>
|
727
|
+
<tr><td valign="top"><tt>linePrefix</tt>:</td><td>A prefix to insert before every line.
|
728
|
+
|
729
|
+
</td></tr>
|
730
|
+
<tr><td valign="top"><tt>s</tt>:</td><td>a String that receives the string representation
|
731
|
+
|
732
|
+
</td></tr>
|
733
|
+
</table>
|
734
|
+
<p>
|
735
|
+
TODO: break up long lines using the backslash
|
736
|
+
</p>
|
737
|
+
<p><a class="source-toggle" href="#"
|
738
|
+
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
739
|
+
<div class="method-source-code" id="M000050-source">
|
740
|
+
<pre>
|
741
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 808</span>
|
742
|
+
<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">""</span>, <span class="ruby-identifier">s</span> = <span class="ruby-value str">""</span>)
|
743
|
+
<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>
|
744
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</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"><<</span> <span class="ruby-identifier">$/</span>
|
745
|
+
<span class="ruby-keyword kw">end</span>
|
746
|
+
|
747
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
|
748
|
+
<span class="ruby-keyword kw">end</span>
|
749
|
+
</pre>
|
750
|
+
</div>
|
751
|
+
</div>
|
752
|
+
</div>
|
753
|
+
|
754
|
+
<div id="method-M000023" class="method-detail">
|
755
|
+
<a name="M000023"></a>
|
756
|
+
|
757
|
+
<div class="method-heading">
|
758
|
+
<a href="#M000023" class="method-signature">
|
759
|
+
<span class="method-name">children_values</span><span class="method-args">(name = nil)</span>
|
760
|
+
</a>
|
761
|
+
</div>
|
762
|
+
|
763
|
+
<div class="method-description">
|
764
|
+
<p>
|
765
|
+
Returns the <a href="Tag.html#M000033">values</a> of all the <a
|
766
|
+
href="Tag.html#M000022">children</a> with the given <tt>name</tt>. If the
|
767
|
+
<a href="Tag.html#M000024">child</a> has more than one <a
|
768
|
+
href="Tag.html#M000020">value</a>, all the <a
|
769
|
+
href="Tag.html#M000033">values</a> will be added as an array. If the <a
|
770
|
+
href="Tag.html#M000024">child</a> has no <a
|
771
|
+
href="Tag.html#M000020">value</a>, <tt>nil</tt> will be added. The search
|
772
|
+
is not recursive.
|
773
|
+
</p>
|
774
|
+
<table>
|
775
|
+
<tr><td valign="top"><tt>name</tt>:</td><td>if nil, all <a href="Tag.html#M000022">children</a> are considered (nil by
|
776
|
+
default).
|
777
|
+
|
778
|
+
</td></tr>
|
779
|
+
</table>
|
780
|
+
<p><a class="source-toggle" href="#"
|
781
|
+
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
782
|
+
<div class="method-source-code" id="M000023-source">
|
783
|
+
<pre>
|
784
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 278</span>
|
785
|
+
<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>)
|
786
|
+
<span class="ruby-identifier">children_values</span> = []
|
787
|
+
<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>
|
788
|
+
<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>
|
789
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
|
790
|
+
<span class="ruby-identifier">children_values</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">nil</span>
|
791
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span>
|
792
|
+
<span class="ruby-identifier">children_values</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span>
|
793
|
+
<span class="ruby-keyword kw">else</span>
|
794
|
+
<span class="ruby-identifier">children_values</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">values</span>
|
795
|
+
<span class="ruby-keyword kw">end</span>
|
796
|
+
}
|
797
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">children_values</span>
|
798
|
+
<span class="ruby-keyword kw">end</span>
|
799
|
+
</pre>
|
800
|
+
</div>
|
801
|
+
</div>
|
802
|
+
</div>
|
803
|
+
|
804
|
+
<div id="method-M000040" class="method-detail">
|
805
|
+
<a name="M000040"></a>
|
806
|
+
|
807
|
+
<div class="method-heading">
|
808
|
+
<a href="#M000040" class="method-signature">
|
809
|
+
<span class="method-name">clear_attributes</span><span class="method-args">(namespace = nil)</span>
|
810
|
+
</a>
|
811
|
+
</div>
|
812
|
+
|
813
|
+
<div class="method-description">
|
814
|
+
<p>
|
815
|
+
Clears the <a href="Tag.html#M000038">attributes</a> of the specified
|
816
|
+
namespace or all the <a href="Tag.html#M000038">attributes</a> if
|
817
|
+
<tt>namespace</tt> is <tt>nil</tt>.
|
818
|
+
</p>
|
819
|
+
<p><a class="source-toggle" href="#"
|
820
|
+
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
821
|
+
<div class="method-source-code" id="M000040-source">
|
822
|
+
<pre>
|
823
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 584</span>
|
824
|
+
<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>)
|
825
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
|
826
|
+
<span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">clear</span>
|
827
|
+
<span class="ruby-keyword kw">else</span>
|
828
|
+
<span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">namespace</span>)
|
829
|
+
<span class="ruby-keyword kw">end</span>
|
830
|
+
<span class="ruby-keyword kw">end</span>
|
831
|
+
</pre>
|
832
|
+
</div>
|
833
|
+
</div>
|
834
|
+
</div>
|
835
|
+
|
836
|
+
<div id="method-M000018" class="method-detail">
|
837
|
+
<a name="M000018"></a>
|
838
|
+
|
839
|
+
<div class="method-heading">
|
840
|
+
<a href="#M000018" class="method-signature">
|
841
|
+
<span class="method-name">clear_children</span><span class="method-args">()</span>
|
842
|
+
</a>
|
843
|
+
</div>
|
844
|
+
|
845
|
+
<div class="method-description">
|
846
|
+
<p>
|
847
|
+
Removes all <a href="Tag.html#M000022">children</a>.
|
848
|
+
</p>
|
849
|
+
<p><a class="source-toggle" href="#"
|
850
|
+
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
851
|
+
<div class="method-source-code" id="M000018-source">
|
852
|
+
<pre>
|
853
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 202</span>
|
854
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_children</span>
|
855
|
+
<span class="ruby-ivar">@children</span> = []
|
856
|
+
<span class="ruby-keyword kw">end</span>
|
857
|
+
</pre>
|
858
|
+
</div>
|
859
|
+
</div>
|
860
|
+
</div>
|
861
|
+
|
862
|
+
<div id="method-M000032" class="method-detail">
|
863
|
+
<a name="M000032"></a>
|
864
|
+
|
865
|
+
<div class="method-heading">
|
866
|
+
<a href="#M000032" class="method-signature">
|
867
|
+
<span class="method-name">clear_values</span><span class="method-args">()</span>
|
868
|
+
</a>
|
869
|
+
</div>
|
870
|
+
|
871
|
+
<div class="method-description">
|
872
|
+
<p>
|
873
|
+
Removes all <a href="Tag.html#M000033">values</a>.
|
874
|
+
</p>
|
875
|
+
<p><a class="source-toggle" href="#"
|
876
|
+
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
877
|
+
<div class="method-source-code" id="M000032-source">
|
878
|
+
<pre>
|
879
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 427</span>
|
880
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_values</span>
|
881
|
+
<span class="ruby-ivar">@values</span> = []
|
882
|
+
<span class="ruby-keyword kw">end</span>
|
883
|
+
</pre>
|
884
|
+
</div>
|
885
|
+
</div>
|
886
|
+
</div>
|
887
|
+
|
888
|
+
<div id="method-M000051" class="method-detail">
|
889
|
+
<a name="M000051"></a>
|
890
|
+
|
891
|
+
<div class="method-heading">
|
892
|
+
<a href="#M000051" class="method-signature">
|
893
|
+
<span class="method-name">eql?</span><span class="method-args">(o)</span>
|
894
|
+
</a>
|
895
|
+
</div>
|
896
|
+
|
897
|
+
<div class="method-description">
|
898
|
+
<p>
|
899
|
+
Returns true if this tag (including all of its <a
|
900
|
+
href="Tag.html#M000033">values</a>, <a
|
901
|
+
href="Tag.html#M000038">attributes</a>, and <a
|
902
|
+
href="Tag.html#M000022">children</a>) is equivalent to the given tag.
|
903
|
+
</p>
|
904
|
+
<p>
|
905
|
+
Returns true if the tags are equivalet
|
906
|
+
</p>
|
907
|
+
<p><a class="source-toggle" href="#"
|
908
|
+
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
909
|
+
<div class="method-source-code" id="M000051-source">
|
910
|
+
<pre>
|
911
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 821</span>
|
912
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">o</span>)
|
913
|
+
<span class="ruby-comment cmt"># this is safe because to_string() dumps the full state</span>
|
914
|
+
<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">&&</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>;
|
915
|
+
<span class="ruby-keyword kw">end</span>
|
916
|
+
</pre>
|
917
|
+
</div>
|
918
|
+
</div>
|
919
|
+
</div>
|
920
|
+
|
921
|
+
<div id="method-M000037" class="method-detail">
|
922
|
+
<a name="M000037"></a>
|
923
|
+
|
924
|
+
<div class="method-heading">
|
925
|
+
<a href="#M000037" class="method-signature">
|
926
|
+
<span class="method-name">has_attribute?</span><span class="method-args">(namespace = nil, key = nil)</span>
|
927
|
+
</a>
|
928
|
+
</div>
|
929
|
+
|
930
|
+
<div class="method-description">
|
931
|
+
<p>
|
932
|
+
Indicates whether there is at least an <a
|
933
|
+
href="Tag.html#M000036">attribute</a> in this <a href="Tag.html">Tag</a>.
|
934
|
+
</p>
|
935
|
+
<pre>
|
936
|
+
has_attribute?
|
937
|
+
</pre>
|
938
|
+
<p>
|
939
|
+
Indicates whether there is the specified <a
|
940
|
+
href="Tag.html#M000036">attribute</a> exists in this <a
|
941
|
+
href="Tag.html">Tag</a>.
|
942
|
+
</p>
|
943
|
+
<pre>
|
944
|
+
has_attribute?(key)
|
945
|
+
has_attribute?(namespace, key)
|
946
|
+
</pre>
|
947
|
+
<p><a class="source-toggle" href="#"
|
948
|
+
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
949
|
+
<div class="method-source-code" id="M000037-source">
|
950
|
+
<pre>
|
951
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 519</span>
|
952
|
+
<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>)
|
953
|
+
<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>
|
954
|
+
|
955
|
+
<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>
|
956
|
+
<span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
|
957
|
+
<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>)
|
958
|
+
|
959
|
+
<span class="ruby-keyword kw">else</span>
|
960
|
+
<span class="ruby-identifier">attributes</span> { <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> }
|
961
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
962
|
+
<span class="ruby-keyword kw">end</span>
|
963
|
+
<span class="ruby-keyword kw">end</span>
|
964
|
+
</pre>
|
965
|
+
</div>
|
966
|
+
</div>
|
967
|
+
</div>
|
968
|
+
|
969
|
+
<div id="method-M000025" class="method-detail">
|
970
|
+
<a name="M000025"></a>
|
971
|
+
|
972
|
+
<div class="method-heading">
|
973
|
+
<a href="#M000025" class="method-signature">
|
974
|
+
<span class="method-name">has_child?</span><span class="method-args">(name)</span>
|
975
|
+
</a>
|
976
|
+
</div>
|
977
|
+
|
978
|
+
<div class="method-description">
|
979
|
+
<p>
|
980
|
+
Indicates whether the <a href="Tag.html#M000024">child</a> <a
|
981
|
+
href="Tag.html">Tag</a> of given name exists.
|
982
|
+
</p>
|
983
|
+
<table>
|
984
|
+
<tr><td valign="top"><tt>name</tt>:</td><td>name of the searched <a href="Tag.html#M000024">child</a> <a
|
985
|
+
href="Tag.html">Tag</a>
|
986
|
+
|
987
|
+
</td></tr>
|
988
|
+
</table>
|
989
|
+
<p><a class="source-toggle" href="#"
|
990
|
+
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
991
|
+
<div class="method-source-code" id="M000025-source">
|
992
|
+
<pre>
|
993
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 321</span>
|
994
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_child?</span>(<span class="ruby-identifier">name</span>)
|
995
|
+
<span class="ruby-operator">!</span><span class="ruby-identifier">child</span>(<span class="ruby-identifier">name</span>).<span class="ruby-identifier">nil?</span>
|
996
|
+
<span class="ruby-keyword kw">end</span>
|
997
|
+
</pre>
|
998
|
+
</div>
|
999
|
+
</div>
|
1000
|
+
</div>
|
1001
|
+
|
1002
|
+
<div id="method-M000026" class="method-detail">
|
1003
|
+
<a name="M000026"></a>
|
1004
|
+
|
1005
|
+
<div class="method-heading">
|
1006
|
+
<a href="#M000026" class="method-signature">
|
1007
|
+
<span class="method-name">has_children?</span><span class="method-args">()</span>
|
1008
|
+
</a>
|
1009
|
+
</div>
|
1010
|
+
|
1011
|
+
<div class="method-description">
|
1012
|
+
<p>
|
1013
|
+
Indicates whether there are <a href="Tag.html#M000022">children</a> <a
|
1014
|
+
href="Tag.html">Tag</a>.
|
1015
|
+
</p>
|
1016
|
+
<p><a class="source-toggle" href="#"
|
1017
|
+
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
1018
|
+
<div class="method-source-code" id="M000026-source">
|
1019
|
+
<pre>
|
1020
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 327</span>
|
1021
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_children?</span>
|
1022
|
+
<span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
|
1023
|
+
<span class="ruby-keyword kw">end</span>
|
1024
|
+
</pre>
|
1025
|
+
</div>
|
1026
|
+
</div>
|
1027
|
+
</div>
|
1028
|
+
|
1029
|
+
<div id="method-M000030" class="method-detail">
|
1030
|
+
<a name="M000030"></a>
|
1031
|
+
|
1032
|
+
<div class="method-heading">
|
1033
|
+
<a href="#M000030" class="method-signature">
|
1034
|
+
<span class="method-name">has_value?</span><span class="method-args">(v)</span>
|
1035
|
+
</a>
|
1036
|
+
</div>
|
1037
|
+
|
1038
|
+
<div class="method-description">
|
1039
|
+
<p>
|
1040
|
+
Returns true if <tt>v</tt> is a <a href="Tag.html#M000020">value</a> of
|
1041
|
+
this <a href="Tag.html">Tag</a>‘s.
|
1042
|
+
</p>
|
1043
|
+
<p><a class="source-toggle" href="#"
|
1044
|
+
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
1045
|
+
<div class="method-source-code" id="M000030-source">
|
1046
|
+
<pre>
|
1047
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 406</span>
|
1048
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">v</span>)
|
1049
|
+
<span class="ruby-ivar">@values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">v</span>)
|
1050
|
+
<span class="ruby-keyword kw">end</span>
|
1051
|
+
</pre>
|
1052
|
+
</div>
|
1053
|
+
</div>
|
1054
|
+
</div>
|
1055
|
+
|
1056
|
+
<div id="method-M000053" class="method-detail">
|
1057
|
+
<a name="M000053"></a>
|
1058
|
+
|
1059
|
+
<div class="method-heading">
|
1060
|
+
<a href="#M000053" class="method-signature">
|
1061
|
+
<span class="method-name">hash</span><span class="method-args">()</span>
|
1062
|
+
</a>
|
1063
|
+
</div>
|
1064
|
+
|
1065
|
+
<div class="method-description">
|
1066
|
+
<p>
|
1067
|
+
Returns The <a href="Tag.html#M000053">hash</a> (based on the output from
|
1068
|
+
toString())
|
1069
|
+
</p>
|
1070
|
+
<p><a class="source-toggle" href="#"
|
1071
|
+
onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
|
1072
|
+
<div class="method-source-code" id="M000053-source">
|
1073
|
+
<pre>
|
1074
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 829</span>
|
1075
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash</span>
|
1076
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">to_string</span>.<span class="ruby-identifier">hash</span>
|
1077
|
+
<span class="ruby-keyword kw">end</span>
|
1078
|
+
</pre>
|
1079
|
+
</div>
|
1080
|
+
</div>
|
1081
|
+
</div>
|
1082
|
+
|
1083
|
+
<div id="method-M000043" class="method-detail">
|
1084
|
+
<a name="M000043"></a>
|
1085
|
+
|
1086
|
+
<div class="method-heading">
|
1087
|
+
<a href="#M000043" class="method-signature">
|
1088
|
+
<span class="method-name">name=</span><span class="method-args">(a_name)</span>
|
1089
|
+
</a>
|
1090
|
+
</div>
|
1091
|
+
|
1092
|
+
<div class="method-description">
|
1093
|
+
<p>
|
1094
|
+
Sets the name of this <a href="Tag.html">Tag</a>.
|
1095
|
+
</p>
|
1096
|
+
<p>
|
1097
|
+
Raises <tt>ArgumentError</tt> if the name is not a legal SDL
|
1098
|
+
</p>
|
1099
|
+
<pre>
|
1100
|
+
identifier (see SDL4R#validate_identifier)
|
1101
|
+
</pre>
|
1102
|
+
<p><a class="source-toggle" href="#"
|
1103
|
+
onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
|
1104
|
+
<div class="method-source-code" id="M000043-source">
|
1105
|
+
<pre>
|
1106
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 657</span>
|
1107
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">name=</span>(<span class="ruby-identifier">a_name</span>)
|
1108
|
+
<span class="ruby-identifier">a_name</span> = <span class="ruby-identifier">a_name</span>.<span class="ruby-identifier">to_s</span>
|
1109
|
+
<span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">a_name</span>)
|
1110
|
+
<span class="ruby-ivar">@name</span> = <span class="ruby-identifier">a_name</span>
|
1111
|
+
<span class="ruby-keyword kw">end</span>
|
1112
|
+
</pre>
|
1113
|
+
</div>
|
1114
|
+
</div>
|
1115
|
+
</div>
|
1116
|
+
|
1117
|
+
<div id="method-M000044" class="method-detail">
|
1118
|
+
<a name="M000044"></a>
|
1119
|
+
|
1120
|
+
<div class="method-heading">
|
1121
|
+
<a href="#M000044" class="method-signature">
|
1122
|
+
<span class="method-name">namespace=</span><span class="method-args">(a_namespace)</span>
|
1123
|
+
</a>
|
1124
|
+
</div>
|
1125
|
+
|
1126
|
+
<div class="method-description">
|
1127
|
+
<p>
|
1128
|
+
The namespace to set. <tt>nil</tt> will be coerced to the empty string.
|
1129
|
+
</p>
|
1130
|
+
<p>
|
1131
|
+
Raises <tt>ArgumentError</tt> if the namespace is non-blank and is not
|
1132
|
+
</p>
|
1133
|
+
<pre>
|
1134
|
+
a legal SDL identifier (see {@link SDL4R#validate_identifier(String)})
|
1135
|
+
</pre>
|
1136
|
+
<p><a class="source-toggle" href="#"
|
1137
|
+
onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
|
1138
|
+
<div class="method-source-code" id="M000044-source">
|
1139
|
+
<pre>
|
1140
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 668</span>
|
1141
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespace=</span>(<span class="ruby-identifier">a_namespace</span>)
|
1142
|
+
<span class="ruby-identifier">a_namespace</span> = <span class="ruby-identifier">a_namespace</span>.<span class="ruby-identifier">to_s</span>
|
1143
|
+
<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>
|
1144
|
+
<span class="ruby-ivar">@namespace</span> = <span class="ruby-identifier">a_namespace</span>
|
1145
|
+
<span class="ruby-keyword kw">end</span>
|
1146
|
+
</pre>
|
1147
|
+
</div>
|
1148
|
+
</div>
|
1149
|
+
</div>
|
1150
|
+
|
1151
|
+
<div id="method-M000014" class="method-detail">
|
1152
|
+
<a name="M000014"></a>
|
1153
|
+
|
1154
|
+
<div class="method-heading">
|
1155
|
+
<a href="#M000014" class="method-signature">
|
1156
|
+
<span class="method-name">new_child</span><span class="method-args">(*args, &block)</span>
|
1157
|
+
</a>
|
1158
|
+
</div>
|
1159
|
+
|
1160
|
+
<div class="method-description">
|
1161
|
+
<p>
|
1162
|
+
Creates a <a href="Tag.html#M000013">new</a> <a
|
1163
|
+
href="Tag.html#M000024">child</a> tag. Can take a block so that you can <a
|
1164
|
+
href="Tag.html#M000047">write</a> something like:
|
1165
|
+
</p>
|
1166
|
+
<pre>
|
1167
|
+
car = Tag.new("car") do
|
1168
|
+
new_child("wheels") do
|
1169
|
+
self << 4
|
1170
|
+
end
|
1171
|
+
end
|
1172
|
+
</pre>
|
1173
|
+
<p>
|
1174
|
+
The context of execution of the given block is the <a
|
1175
|
+
href="Tag.html#M000024">child</a> instance
|
1176
|
+
</p>
|
1177
|
+
<p>
|
1178
|
+
Returns the created <a href="Tag.html#M000024">child</a> <a
|
1179
|
+
href="Tag.html">Tag</a>.
|
1180
|
+
</p>
|
1181
|
+
<p><a class="source-toggle" href="#"
|
1182
|
+
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
1183
|
+
<div class="method-source-code" id="M000014-source">
|
1184
|
+
<pre>
|
1185
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 129</span>
|
1186
|
+
<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">&</span><span class="ruby-identifier">block</span>)
|
1187
|
+
<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">&</span><span class="ruby-identifier">block</span>)
|
1188
|
+
<span class="ruby-keyword kw">end</span>
|
1189
|
+
</pre>
|
1190
|
+
</div>
|
1191
|
+
</div>
|
1192
|
+
</div>
|
1193
|
+
|
1194
|
+
<div id="method-M000045" class="method-detail">
|
1195
|
+
<a name="M000045"></a>
|
1196
|
+
|
1197
|
+
<div class="method-heading">
|
1198
|
+
<a href="#M000045" class="method-signature">
|
1199
|
+
<span class="method-name">read</span><span class="method-args">(input)</span>
|
1200
|
+
</a>
|
1201
|
+
</div>
|
1202
|
+
|
1203
|
+
<div class="method-description">
|
1204
|
+
<p>
|
1205
|
+
Adds all the tags specified in the given IO, String, Pathname or URI to
|
1206
|
+
this <a href="Tag.html">Tag</a>.
|
1207
|
+
</p>
|
1208
|
+
<p>
|
1209
|
+
Returns this <a href="Tag.html">Tag</a> after adding all the <a
|
1210
|
+
href="Tag.html#M000022">children</a> <a href="Tag.html#M000045">read</a>
|
1211
|
+
from <tt>input</tt>.
|
1212
|
+
</p>
|
1213
|
+
<p><a class="source-toggle" href="#"
|
1214
|
+
onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
|
1215
|
+
<div class="method-source-code" id="M000045-source">
|
1216
|
+
<pre>
|
1217
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 678</span>
|
1218
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">input</span>)
|
1219
|
+
<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>
|
1220
|
+
<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>) }
|
1221
|
+
|
1222
|
+
<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>
|
1223
|
+
<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">"r"</span>) }
|
1224
|
+
|
1225
|
+
<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>
|
1226
|
+
<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> }
|
1227
|
+
|
1228
|
+
<span class="ruby-keyword kw">else</span>
|
1229
|
+
<span class="ruby-identifier">read_from_io</span>(<span class="ruby-keyword kw">false</span>) { <span class="ruby-identifier">input</span> }
|
1230
|
+
<span class="ruby-keyword kw">end</span>
|
1231
|
+
|
1232
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
|
1233
|
+
<span class="ruby-keyword kw">end</span>
|
1234
|
+
</pre>
|
1235
|
+
</div>
|
1236
|
+
</div>
|
1237
|
+
</div>
|
1238
|
+
|
1239
|
+
<div id="method-M000046" class="method-detail">
|
1240
|
+
<a name="M000046"></a>
|
1241
|
+
|
1242
|
+
<div class="method-heading">
|
1243
|
+
<a href="#M000046" class="method-signature">
|
1244
|
+
<span class="method-name">read_from_io</span><span class="method-args">(close_io) {|| ...}</span>
|
1245
|
+
</a>
|
1246
|
+
</div>
|
1247
|
+
|
1248
|
+
<div class="method-description">
|
1249
|
+
<p>
|
1250
|
+
Reads and parses the <tt>io</tt> returned by the specified block and closes
|
1251
|
+
this <tt>io</tt> if <tt>close_io</tt> is true.
|
1252
|
+
</p>
|
1253
|
+
<p><a class="source-toggle" href="#"
|
1254
|
+
onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
|
1255
|
+
<div class="method-source-code" id="M000046-source">
|
1256
|
+
<pre>
|
1257
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 697</span>
|
1258
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_from_io</span>(<span class="ruby-identifier">close_io</span>)
|
1259
|
+
<span class="ruby-identifier">io</span> = <span class="ruby-keyword kw">yield</span>
|
1260
|
+
|
1261
|
+
<span class="ruby-keyword kw">begin</span>
|
1262
|
+
<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>
|
1263
|
+
<span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">tag</span>)
|
1264
|
+
<span class="ruby-keyword kw">end</span>
|
1265
|
+
|
1266
|
+
<span class="ruby-keyword kw">ensure</span>
|
1267
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">close_io</span>
|
1268
|
+
<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>
|
1269
|
+
<span class="ruby-keyword kw">end</span>
|
1270
|
+
<span class="ruby-keyword kw">end</span>
|
1271
|
+
<span class="ruby-keyword kw">end</span>
|
1272
|
+
</pre>
|
1273
|
+
</div>
|
1274
|
+
</div>
|
1275
|
+
</div>
|
1276
|
+
|
1277
|
+
<div id="method-M000039" class="method-detail">
|
1278
|
+
<a name="M000039"></a>
|
1279
|
+
|
1280
|
+
<div class="method-heading">
|
1281
|
+
<a href="#M000039" class="method-signature">
|
1282
|
+
<span class="method-name">remove_attribute</span><span class="method-args">(namespace, key = nil)</span>
|
1283
|
+
</a>
|
1284
|
+
</div>
|
1285
|
+
|
1286
|
+
<div class="method-description">
|
1287
|
+
<pre>
|
1288
|
+
remove_attribute(key)
|
1289
|
+
remove_attribute(namespace, key)
|
1290
|
+
</pre>
|
1291
|
+
<p>
|
1292
|
+
Removes the <a href="Tag.html#M000036">attribute</a>, whose name and
|
1293
|
+
namespace are specified.
|
1294
|
+
</p>
|
1295
|
+
<table>
|
1296
|
+
<tr><td valign="top"><tt>key</tt>:</td><td>name of the removed atribute
|
1297
|
+
|
1298
|
+
</td></tr>
|
1299
|
+
<tr><td valign="top"><tt>namespace</tt>:</td><td>namespace of the removed <a href="Tag.html#M000036">attribute</a> (equal to
|
1300
|
+
"", default namespace, by default)
|
1301
|
+
|
1302
|
+
</td></tr>
|
1303
|
+
</table>
|
1304
|
+
<p>
|
1305
|
+
Returns the <a href="Tag.html#M000020">value</a> of the removed <a
|
1306
|
+
href="Tag.html#M000036">attribute</a> or <tt>nil</tt> if it didn‘t
|
1307
|
+
exist.
|
1308
|
+
</p>
|
1309
|
+
<p><a class="source-toggle" href="#"
|
1310
|
+
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
1311
|
+
<div class="method-source-code" id="M000039-source">
|
1312
|
+
<pre>
|
1313
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 575</span>
|
1314
|
+
<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>)
|
1315
|
+
<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>
|
1316
|
+
<span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
|
1317
|
+
<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>)
|
1318
|
+
<span class="ruby-keyword kw">end</span>
|
1319
|
+
</pre>
|
1320
|
+
</div>
|
1321
|
+
</div>
|
1322
|
+
</div>
|
1323
|
+
|
1324
|
+
<div id="method-M000017" class="method-detail">
|
1325
|
+
<a name="M000017"></a>
|
1326
|
+
|
1327
|
+
<div class="method-heading">
|
1328
|
+
<a href="#M000017" class="method-signature">
|
1329
|
+
<span class="method-name">remove_child</span><span class="method-args">(child)</span>
|
1330
|
+
</a>
|
1331
|
+
</div>
|
1332
|
+
|
1333
|
+
<div class="method-description">
|
1334
|
+
<p>
|
1335
|
+
Remove a <a href="Tag.html#M000024">child</a> from this <a
|
1336
|
+
href="Tag.html">Tag</a>
|
1337
|
+
</p>
|
1338
|
+
<table>
|
1339
|
+
<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
|
1340
|
+
|
1341
|
+
</td></tr>
|
1342
|
+
</table>
|
1343
|
+
<p>
|
1344
|
+
Returns true if the <a href="Tag.html#M000024">child</a> exists and is
|
1345
|
+
removed
|
1346
|
+
</p>
|
1347
|
+
<p><a class="source-toggle" href="#"
|
1348
|
+
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
1349
|
+
<div class="method-source-code" id="M000017-source">
|
1350
|
+
<pre>
|
1351
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 196</span>
|
1352
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_child</span>(<span class="ruby-identifier">child</span>)
|
1353
|
+
<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>
|
1354
|
+
<span class="ruby-keyword kw">end</span>
|
1355
|
+
</pre>
|
1356
|
+
</div>
|
1357
|
+
</div>
|
1358
|
+
</div>
|
1359
|
+
|
1360
|
+
<div id="method-M000031" class="method-detail">
|
1361
|
+
<a name="M000031"></a>
|
1362
|
+
|
1363
|
+
<div class="method-heading">
|
1364
|
+
<a href="#M000031" class="method-signature">
|
1365
|
+
<span class="method-name">remove_value</span><span class="method-args">(v)</span>
|
1366
|
+
</a>
|
1367
|
+
</div>
|
1368
|
+
|
1369
|
+
<div class="method-description">
|
1370
|
+
<p>
|
1371
|
+
Removes the first occurence of the specified <a
|
1372
|
+
href="Tag.html#M000020">value</a> from this <a href="Tag.html">Tag</a>.
|
1373
|
+
</p>
|
1374
|
+
<table>
|
1375
|
+
<tr><td valign="top"><tt>v</tt>:</td><td>The <a href="Tag.html#M000020">value</a> to remove
|
1376
|
+
|
1377
|
+
</td></tr>
|
1378
|
+
</table>
|
1379
|
+
<p>
|
1380
|
+
Returns true If the <a href="Tag.html#M000020">value</a> exists and is
|
1381
|
+
removed
|
1382
|
+
</p>
|
1383
|
+
<p><a class="source-toggle" href="#"
|
1384
|
+
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
1385
|
+
<div class="method-source-code" id="M000031-source">
|
1386
|
+
<pre>
|
1387
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 416</span>
|
1388
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_value</span>(<span class="ruby-identifier">v</span>)
|
1389
|
+
<span class="ruby-identifier">index</span> = <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">v</span>)
|
1390
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>
|
1391
|
+
<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>
|
1392
|
+
<span class="ruby-keyword kw">else</span>
|
1393
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
1394
|
+
<span class="ruby-keyword kw">end</span>
|
1395
|
+
<span class="ruby-keyword kw">end</span>
|
1396
|
+
</pre>
|
1397
|
+
</div>
|
1398
|
+
</div>
|
1399
|
+
</div>
|
1400
|
+
|
1401
|
+
<div id="method-M000035" class="method-detail">
|
1402
|
+
<a name="M000035"></a>
|
1403
|
+
|
1404
|
+
<div class="method-heading">
|
1405
|
+
<a href="#M000035" class="method-signature">
|
1406
|
+
<span class="method-name">set_attribute</span><span class="method-args">(namespace, key, value = nil)</span>
|
1407
|
+
</a>
|
1408
|
+
</div>
|
1409
|
+
|
1410
|
+
<div class="method-description">
|
1411
|
+
<pre>
|
1412
|
+
set_attribute(key, value)
|
1413
|
+
set_attribute(namespace, key, value)
|
1414
|
+
</pre>
|
1415
|
+
<p>
|
1416
|
+
Set an <a href="Tag.html#M000036">attribute</a> in the given namespace for
|
1417
|
+
this tag. The allowable <a href="Tag.html#M000036">attribute</a> <a
|
1418
|
+
href="Tag.html#M000020">value</a> types are the same as those allowed for
|
1419
|
+
{@link addValue(Object)}
|
1420
|
+
</p>
|
1421
|
+
<table>
|
1422
|
+
<tr><td valign="top"><tt>namespace</tt>:</td><td>The namespace for this <a href="Tag.html#M000036">attribute</a>
|
1423
|
+
|
1424
|
+
</td></tr>
|
1425
|
+
<tr><td valign="top"><tt>key</tt>:</td><td>The <a href="Tag.html#M000036">attribute</a> key
|
1426
|
+
|
1427
|
+
</td></tr>
|
1428
|
+
<tr><td valign="top"><tt><a href="Tag.html#M000020">value</a></tt>:</td><td>The <a href="Tag.html#M000036">attribute</a> <a
|
1429
|
+
href="Tag.html#M000020">value</a>
|
1430
|
+
|
1431
|
+
</td></tr>
|
1432
|
+
</table>
|
1433
|
+
<p>
|
1434
|
+
@throws IllegalArgumentException if the key is not a legal SDL
|
1435
|
+
</p>
|
1436
|
+
<pre>
|
1437
|
+
identifier (see {@link SDL4R#validateIdentifier(String)}), or the
|
1438
|
+
namespace is non-blank and is not a legal SDL identifier, or the
|
1439
|
+
value is not a legal SDL type
|
1440
|
+
</pre>
|
1441
|
+
<p><a class="source-toggle" href="#"
|
1442
|
+
onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
|
1443
|
+
<div class="method-source-code" id="M000035-source">
|
1444
|
+
<pre>
|
1445
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 476</span>
|
1446
|
+
<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-keyword kw">nil</span>)
|
1447
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">nil?</span>
|
1448
|
+
<span class="ruby-identifier">value</span> = <span class="ruby-identifier">key</span>
|
1449
|
+
<span class="ruby-identifier">key</span> = <span class="ruby-identifier">namespace</span>
|
1450
|
+
<span class="ruby-identifier">namespace</span> = <span class="ruby-value str">""</span>
|
1451
|
+
<span class="ruby-keyword kw">end</span>
|
1452
|
+
|
1453
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"attribute namespace must be a String"</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>
|
1454
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"attribute key must be a String"</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>
|
1455
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"attribute key cannot be empty"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">empty?</span>
|
1456
|
+
|
1457
|
+
<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>
|
1458
|
+
<span class="ruby-constant">SDL4R</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">key</span>)
|
1459
|
+
|
1460
|
+
<span class="ruby-identifier">attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
|
1461
|
+
|
1462
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">nil?</span>
|
1463
|
+
<span class="ruby-identifier">attributes</span> = {}
|
1464
|
+
<span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>] = <span class="ruby-identifier">attributes</span>
|
1465
|
+
<span class="ruby-keyword kw">end</span>
|
1466
|
+
|
1467
|
+
<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>)
|
1468
|
+
<span class="ruby-keyword kw">end</span>
|
1469
|
+
</pre>
|
1470
|
+
</div>
|
1471
|
+
</div>
|
1472
|
+
</div>
|
1473
|
+
|
1474
|
+
<div id="method-M000041" class="method-detail">
|
1475
|
+
<a name="M000041"></a>
|
1476
|
+
|
1477
|
+
<div class="method-heading">
|
1478
|
+
<a href="#M000041" class="method-signature">
|
1479
|
+
<span class="method-name">set_attributes</span><span class="method-args">(namespace, attribute_hash = nil)</span>
|
1480
|
+
</a>
|
1481
|
+
</div>
|
1482
|
+
|
1483
|
+
<div class="method-description">
|
1484
|
+
<pre>
|
1485
|
+
set_attributes(attribute_hash)
|
1486
|
+
set_attributes(namespace, attribute_hash)
|
1487
|
+
</pre>
|
1488
|
+
<p>
|
1489
|
+
Sets the <a href="Tag.html#M000038">attributes</a> specified by a Hash in
|
1490
|
+
the given <tt>namespace</tt> in one operation. The previous <a
|
1491
|
+
href="Tag.html#M000038">attributes</a> of the specified <tt>namespace</tt>
|
1492
|
+
are removed. See <a href="Tag.html#M000035">set_attribute</a> for allowable
|
1493
|
+
<a href="Tag.html#M000036">attribute</a> <a
|
1494
|
+
href="Tag.html#M000020">value</a> types.
|
1495
|
+
</p>
|
1496
|
+
<table>
|
1497
|
+
<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
|
1498
|
+
|
1499
|
+
</td></tr>
|
1500
|
+
<tr><td valign="top"><tt>namespace</tt>:</td><td>"" (default namespace) by default
|
1501
|
+
|
1502
|
+
</td></tr>
|
1503
|
+
</table>
|
1504
|
+
<p>
|
1505
|
+
Raises an <tt>ArgumentError</tt> if any key in the map is not a legal SDL
|
1506
|
+
</p>
|
1507
|
+
<pre>
|
1508
|
+
identifier (see SDL4R#validate_identifier), or any value
|
1509
|
+
is not a legal SDL type.
|
1510
|
+
</pre>
|
1511
|
+
<p><a class="source-toggle" href="#"
|
1512
|
+
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
1513
|
+
<div class="method-source-code" id="M000041-source">
|
1514
|
+
<pre>
|
1515
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 625</span>
|
1516
|
+
<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>)
|
1517
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attribute_hash</span>.<span class="ruby-identifier">nil?</span>
|
1518
|
+
<span class="ruby-identifier">attribute_hash</span> = <span class="ruby-identifier">namespace</span>
|
1519
|
+
<span class="ruby-identifier">namespace</span> = <span class="ruby-value str">""</span>
|
1520
|
+
<span class="ruby-keyword kw">end</span>
|
1521
|
+
|
1522
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"namespace can't be nil"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
|
1523
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"attribute_hash should be a Hash"</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>
|
1524
|
+
|
1525
|
+
<span class="ruby-identifier">namespace_attributes</span> = <span class="ruby-ivar">@attributesByNamespace</span>[<span class="ruby-identifier">namespace</span>]
|
1526
|
+
<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>
|
1527
|
+
|
1528
|
+
<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>
|
1529
|
+
<span class="ruby-comment cmt"># Calling set_attribute() is required to ensure validations</span>
|
1530
|
+
<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>)
|
1531
|
+
<span class="ruby-keyword kw">end</span>
|
1532
|
+
<span class="ruby-keyword kw">end</span>
|
1533
|
+
</pre>
|
1534
|
+
</div>
|
1535
|
+
</div>
|
1536
|
+
</div>
|
1537
|
+
|
1538
|
+
<div id="method-M000027" class="method-detail">
|
1539
|
+
<a name="M000027"></a>
|
1540
|
+
|
1541
|
+
<div class="method-heading">
|
1542
|
+
<a href="#M000027" class="method-signature">
|
1543
|
+
<span class="method-name">to_child_hash</span><span class="method-args">()</span>
|
1544
|
+
</a>
|
1545
|
+
</div>
|
1546
|
+
|
1547
|
+
<div class="method-description">
|
1548
|
+
<p>
|
1549
|
+
Returns a <a href="Tag.html#M000013">new</a> Hash where the <a
|
1550
|
+
href="Tag.html#M000022">children</a>‘s names as keys and their <a
|
1551
|
+
href="Tag.html#M000033">values</a> as the key‘s <a
|
1552
|
+
href="Tag.html#M000020">value</a>. Example:
|
1553
|
+
</p>
|
1554
|
+
<pre>
|
1555
|
+
child1 "toto"
|
1556
|
+
child2 2
|
1557
|
+
</pre>
|
1558
|
+
<p>
|
1559
|
+
would give
|
1560
|
+
</p>
|
1561
|
+
<pre>
|
1562
|
+
{ "child1" => "toto", "child2" => 2 }
|
1563
|
+
</pre>
|
1564
|
+
<p><a class="source-toggle" href="#"
|
1565
|
+
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
1566
|
+
<div class="method-source-code" id="M000027-source">
|
1567
|
+
<pre>
|
1568
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 366</span>
|
1569
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_child_hash</span>
|
1570
|
+
<span class="ruby-identifier">hash</span> = {}
|
1571
|
+
<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> }
|
1572
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>
|
1573
|
+
<span class="ruby-keyword kw">end</span>
|
1574
|
+
</pre>
|
1575
|
+
</div>
|
1576
|
+
</div>
|
1577
|
+
</div>
|
1578
|
+
|
1579
|
+
<div id="method-M000028" class="method-detail">
|
1580
|
+
<a name="M000028"></a>
|
1581
|
+
|
1582
|
+
<div class="method-heading">
|
1583
|
+
<a href="#M000028" class="method-signature">
|
1584
|
+
<span class="method-name">to_child_string_hash</span><span class="method-args">()</span>
|
1585
|
+
</a>
|
1586
|
+
</div>
|
1587
|
+
|
1588
|
+
<div class="method-description">
|
1589
|
+
<p>
|
1590
|
+
Returns a <a href="Tag.html#M000013">new</a> Hash where the <a
|
1591
|
+
href="Tag.html#M000022">children</a>‘s names as keys and their <a
|
1592
|
+
href="Tag.html#M000033">values</a> as the key‘s <a
|
1593
|
+
href="Tag.html#M000020">value</a>. Values are converted to Strings.
|
1594
|
+
<tt>nil</tt> <a href="Tag.html#M000033">values</a> become empty Strings.
|
1595
|
+
Example:
|
1596
|
+
</p>
|
1597
|
+
<pre>
|
1598
|
+
child1 "toto"
|
1599
|
+
child2 2
|
1600
|
+
child3 null
|
1601
|
+
</pre>
|
1602
|
+
<p>
|
1603
|
+
would give
|
1604
|
+
</p>
|
1605
|
+
<pre>
|
1606
|
+
{ "child1" => "toto", "child2" => "2", "child3" => "" }
|
1607
|
+
</pre>
|
1608
|
+
<p><a class="source-toggle" href="#"
|
1609
|
+
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
1610
|
+
<div class="method-source-code" id="M000028-source">
|
1611
|
+
<pre>
|
1612
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 384</span>
|
1613
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_child_string_hash</span>
|
1614
|
+
<span class="ruby-identifier">hash</span> = {}
|
1615
|
+
<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>
|
1616
|
+
<span class="ruby-comment cmt"># FIXME: it is quite hard to be sure whether we should mimic the Java version</span>
|
1617
|
+
<span class="ruby-comment cmt"># as there might be a lot of values that don't translate nicely to Strings.</span>
|
1618
|
+
<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>
|
1619
|
+
<span class="ruby-keyword kw">end</span>
|
1620
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">hash</span>
|
1621
|
+
<span class="ruby-keyword kw">end</span>
|
1622
|
+
</pre>
|
1623
|
+
</div>
|
1624
|
+
</div>
|
1625
|
+
</div>
|
1626
|
+
|
1627
|
+
<div id="method-M000048" class="method-detail">
|
1628
|
+
<a name="M000048"></a>
|
1629
|
+
|
1630
|
+
<div class="method-heading">
|
1631
|
+
<a href="#M000048" class="method-signature">
|
1632
|
+
<span class="method-name">to_s</span><span class="method-args">()</span>
|
1633
|
+
</a>
|
1634
|
+
</div>
|
1635
|
+
|
1636
|
+
<div class="method-description">
|
1637
|
+
<p>
|
1638
|
+
Get a String representation of this SDL <a href="Tag.html">Tag</a>. This
|
1639
|
+
method returns a complete description of the <a
|
1640
|
+
href="Tag.html">Tag</a>‘s state using SDL (i.e. the output can be
|
1641
|
+
parsed by {@link read(String)})
|
1642
|
+
</p>
|
1643
|
+
<p>
|
1644
|
+
Returns A string representation of this tag using SDL
|
1645
|
+
</p>
|
1646
|
+
<p><a class="source-toggle" href="#"
|
1647
|
+
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
1648
|
+
<div class="method-source-code" id="M000048-source">
|
1649
|
+
<pre>
|
1650
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 741</span>
|
1651
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
1652
|
+
<span class="ruby-identifier">to_string</span>
|
1653
|
+
<span class="ruby-keyword kw">end</span>
|
1654
|
+
</pre>
|
1655
|
+
</div>
|
1656
|
+
</div>
|
1657
|
+
</div>
|
1658
|
+
|
1659
|
+
<div id="method-M000049" class="method-detail">
|
1660
|
+
<a name="M000049"></a>
|
1661
|
+
|
1662
|
+
<div class="method-heading">
|
1663
|
+
<a href="#M000049" class="method-signature">
|
1664
|
+
<span class="method-name">to_string</span><span class="method-args">(line_prefix = "", indent = "\t")</span>
|
1665
|
+
</a>
|
1666
|
+
</div>
|
1667
|
+
|
1668
|
+
<div class="method-description">
|
1669
|
+
<table>
|
1670
|
+
<tr><td valign="top"><tt>linePrefix</tt>:</td><td>A prefix to insert before every line.
|
1671
|
+
|
1672
|
+
</td></tr>
|
1673
|
+
</table>
|
1674
|
+
<p>
|
1675
|
+
Returns A string representation of this tag using SDL
|
1676
|
+
</p>
|
1677
|
+
<p>
|
1678
|
+
TODO: break up long lines using the backslash
|
1679
|
+
</p>
|
1680
|
+
<p><a class="source-toggle" href="#"
|
1681
|
+
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
1682
|
+
<div class="method-source-code" id="M000049-source">
|
1683
|
+
<pre>
|
1684
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 751</span>
|
1685
|
+
<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">""</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-value str">"\t"</span>)
|
1686
|
+
<span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">""</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line_prefix</span>.<span class="ruby-identifier">nil?</span>
|
1687
|
+
<span class="ruby-identifier">s</span> = <span class="ruby-value str">""</span>
|
1688
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line_prefix</span>
|
1689
|
+
|
1690
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"content"</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
|
1691
|
+
<span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">true</span>
|
1692
|
+
<span class="ruby-keyword kw">else</span>
|
1693
|
+
<span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">false</span>
|
1694
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{namespace}:"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
|
1695
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">name</span>
|
1696
|
+
<span class="ruby-keyword kw">end</span>
|
1697
|
+
|
1698
|
+
<span class="ruby-comment cmt"># output values</span>
|
1699
|
+
<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>
|
1700
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">skip_value_space</span>
|
1701
|
+
<span class="ruby-identifier">skip_value_space</span> = <span class="ruby-keyword kw">false</span>
|
1702
|
+
<span class="ruby-keyword kw">else</span>
|
1703
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" "</span>
|
1704
|
+
<span class="ruby-keyword kw">end</span>
|
1705
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</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>)
|
1706
|
+
<span class="ruby-keyword kw">end</span>
|
1707
|
+
|
1708
|
+
<span class="ruby-comment cmt"># output attributes</span>
|
1709
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributesByNamespace</span>.<span class="ruby-identifier">empty?</span>
|
1710
|
+
<span class="ruby-identifier">all_attributes_hash</span> = <span class="ruby-identifier">attributes</span>
|
1711
|
+
<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>
|
1712
|
+
<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>)
|
1713
|
+
<span class="ruby-identifier">namespace1</span>, <span class="ruby-identifier">name1</span> = <span class="ruby-value str">""</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>
|
1714
|
+
<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>)
|
1715
|
+
<span class="ruby-identifier">namespace2</span>, <span class="ruby-identifier">name2</span> = <span class="ruby-value str">""</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>
|
1716
|
+
|
1717
|
+
<span class="ruby-identifier">diff</span> = <span class="ruby-identifier">namespace1</span> <span class="ruby-operator"><=></span> <span class="ruby-identifier">namespace2</span>
|
1718
|
+
<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"><=></span> <span class="ruby-identifier">name2</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">diff</span>
|
1719
|
+
}
|
1720
|
+
<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>
|
1721
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" "</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">attribute_name</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'='</span> <span class="ruby-operator"><<</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>)
|
1722
|
+
<span class="ruby-keyword kw">end</span>
|
1723
|
+
<span class="ruby-keyword kw">end</span>
|
1724
|
+
|
1725
|
+
<span class="ruby-comment cmt"># output children</span>
|
1726
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
|
1727
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" {#{$/}"</span>
|
1728
|
+
<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>)
|
1729
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator"><<</span> <span class="ruby-value">?}</span>
|
1730
|
+
<span class="ruby-keyword kw">end</span>
|
1731
|
+
|
1732
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
|
1733
|
+
<span class="ruby-keyword kw">end</span>
|
1734
|
+
</pre>
|
1735
|
+
</div>
|
1736
|
+
</div>
|
1737
|
+
</div>
|
1738
|
+
|
1739
|
+
<div id="method-M000054" class="method-detail">
|
1740
|
+
<a name="M000054"></a>
|
1741
|
+
|
1742
|
+
<div class="method-heading">
|
1743
|
+
<a href="#M000054" class="method-signature">
|
1744
|
+
<span class="method-name">to_xml_string</span><span class="method-args">(line_prefix = "", uri_by_namespace = nil)</span>
|
1745
|
+
</a>
|
1746
|
+
</div>
|
1747
|
+
|
1748
|
+
<div class="method-description">
|
1749
|
+
<p>
|
1750
|
+
Returns a string containing an XML representation of this tag. Values will
|
1751
|
+
be represented using _val0, _val1, etc.
|
1752
|
+
</p>
|
1753
|
+
<table>
|
1754
|
+
<tr><td valign="top"><tt>line_prefix</tt>:</td><td>A prefix to insert before every line.
|
1755
|
+
|
1756
|
+
</td></tr>
|
1757
|
+
<tr><td valign="top"><tt>uri_by_namespace</tt>:</td><td>a Hash giving the URIs for the namespaces. Nil to ignore this.
|
1758
|
+
|
1759
|
+
</td></tr>
|
1760
|
+
</table>
|
1761
|
+
<p><a class="source-toggle" href="#"
|
1762
|
+
onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
|
1763
|
+
<div class="method-source-code" id="M000054-source">
|
1764
|
+
<pre>
|
1765
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 839</span>
|
1766
|
+
<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">""</span>, <span class="ruby-identifier">uri_by_namespace</span> = <span class="ruby-keyword kw">nil</span>)
|
1767
|
+
<span class="ruby-identifier">line_prefix</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">""</span>
|
1768
|
+
|
1769
|
+
<span class="ruby-identifier">s</span> = <span class="ruby-value str">""</span>
|
1770
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator"><<</span> <span class="ruby-value">?<</span>
|
1771
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{namespace}:"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
|
1772
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">name</span>
|
1773
|
+
|
1774
|
+
<span class="ruby-comment cmt"># output namespace declarations</span>
|
1775
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri_by_namespace</span>
|
1776
|
+
<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>
|
1777
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>
|
1778
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" xmlns:#{namespace}=\"#{uri}\""</span>
|
1779
|
+
<span class="ruby-keyword kw">else</span>
|
1780
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" xmlns=\"#{uri}\""</span>
|
1781
|
+
<span class="ruby-keyword kw">end</span>
|
1782
|
+
<span class="ruby-keyword kw">end</span>
|
1783
|
+
<span class="ruby-keyword kw">end</span>
|
1784
|
+
|
1785
|
+
<span class="ruby-comment cmt"># output values</span>
|
1786
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@values</span>.<span class="ruby-identifier">empty?</span>
|
1787
|
+
<span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
1788
|
+
<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>
|
1789
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _val"</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"=\""</span> <span class="ruby-operator"><<</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"><<</span> <span class="ruby-value str">"\""</span>
|
1790
|
+
<span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
1791
|
+
<span class="ruby-keyword kw">end</span>
|
1792
|
+
<span class="ruby-keyword kw">end</span>
|
1793
|
+
|
1794
|
+
<span class="ruby-comment cmt"># output attributes</span>
|
1795
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_attribute?</span>
|
1796
|
+
<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>
|
1797
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" "</span>
|
1798
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{attribute_namespace}:"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attribute_namespace</span>.<span class="ruby-identifier">empty?</span>
|
1799
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">attribute_name</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"=\""</span> <span class="ruby-operator"><<</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"><<</span> <span class="ruby-value">?"</span>
|
1800
|
+
<span class="ruby-keyword kw">end</span>
|
1801
|
+
<span class="ruby-keyword kw">end</span>
|
1802
|
+
|
1803
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
|
1804
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"/>"</span>
|
1805
|
+
<span class="ruby-keyword kw">else</span>
|
1806
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">">\n"</span>
|
1807
|
+
<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>
|
1808
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</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">" "</span>) <span class="ruby-operator"><<</span> <span class="ruby-value">?\n</span>
|
1809
|
+
<span class="ruby-keyword kw">end</span>
|
1810
|
+
|
1811
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line_prefix</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"</"</span>
|
1812
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{namespace}:"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">empty?</span>
|
1813
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">name</span> <span class="ruby-operator"><<</span> <span class="ruby-value">?></span>
|
1814
|
+
<span class="ruby-keyword kw">end</span>
|
1815
|
+
|
1816
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
|
1817
|
+
<span class="ruby-keyword kw">end</span>
|
1818
|
+
</pre>
|
1819
|
+
</div>
|
1820
|
+
</div>
|
1821
|
+
</div>
|
1822
|
+
|
1823
|
+
<div id="method-M000020" class="method-detail">
|
1824
|
+
<a name="M000020"></a>
|
1825
|
+
|
1826
|
+
<div class="method-heading">
|
1827
|
+
<a href="#M000020" class="method-signature">
|
1828
|
+
<span class="method-name">value</span><span class="method-args">()</span>
|
1829
|
+
</a>
|
1830
|
+
</div>
|
1831
|
+
|
1832
|
+
<div class="method-description">
|
1833
|
+
<p>
|
1834
|
+
A convenience method that returns the first <a
|
1835
|
+
href="Tag.html#M000020">value</a>.
|
1836
|
+
</p>
|
1837
|
+
<p><a class="source-toggle" href="#"
|
1838
|
+
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
1839
|
+
<div class="method-source-code" id="M000020-source">
|
1840
|
+
<pre>
|
1841
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 220</span>
|
1842
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value</span>
|
1843
|
+
<span class="ruby-ivar">@values</span>[<span class="ruby-value">0</span>]
|
1844
|
+
<span class="ruby-keyword kw">end</span>
|
1845
|
+
</pre>
|
1846
|
+
</div>
|
1847
|
+
</div>
|
1848
|
+
</div>
|
1849
|
+
|
1850
|
+
<div id="method-M000019" class="method-detail">
|
1851
|
+
<a name="M000019"></a>
|
1852
|
+
|
1853
|
+
<div class="method-heading">
|
1854
|
+
<a href="#M000019" class="method-signature">
|
1855
|
+
<span class="method-name">value=</span><span class="method-args">(value)</span>
|
1856
|
+
</a>
|
1857
|
+
</div>
|
1858
|
+
|
1859
|
+
<div class="method-description">
|
1860
|
+
<p>
|
1861
|
+
A convenience method that sets the first <a
|
1862
|
+
href="Tag.html#M000020">value</a> in the <a
|
1863
|
+
href="Tag.html#M000020">value</a> list. See {@link addValue(Object)} for
|
1864
|
+
legal types.
|
1865
|
+
</p>
|
1866
|
+
<table>
|
1867
|
+
<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.
|
1868
|
+
|
1869
|
+
</td></tr>
|
1870
|
+
</table>
|
1871
|
+
<p>
|
1872
|
+
@throws IllegalArgumentException if the <a
|
1873
|
+
href="Tag.html#M000020">value</a> is not a legal SDL type
|
1874
|
+
</p>
|
1875
|
+
<p><a class="source-toggle" href="#"
|
1876
|
+
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
1877
|
+
<div class="method-source-code" id="M000019-source">
|
1878
|
+
<pre>
|
1879
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 213</span>
|
1880
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">value=</span>(<span class="ruby-identifier">value</span>)
|
1881
|
+
<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>)
|
1882
|
+
<span class="ruby-keyword kw">end</span>
|
1883
|
+
</pre>
|
1884
|
+
</div>
|
1885
|
+
</div>
|
1886
|
+
</div>
|
1887
|
+
|
1888
|
+
<div id="method-M000033" class="method-detail">
|
1889
|
+
<a name="M000033"></a>
|
1890
|
+
|
1891
|
+
<div class="method-heading">
|
1892
|
+
<a href="#M000033" class="method-signature">
|
1893
|
+
<span class="method-name">values</span><span class="method-args">( {|value| ...}</span>
|
1894
|
+
</a>
|
1895
|
+
</div>
|
1896
|
+
|
1897
|
+
<div class="method-description">
|
1898
|
+
<p>
|
1899
|
+
Returns an Array of the <a href="Tag.html#M000033">values</a> of this <a
|
1900
|
+
href="Tag.html">Tag</a> or enumerates them.
|
1901
|
+
</p>
|
1902
|
+
<pre>
|
1903
|
+
tag.values # => [123, "spices"]
|
1904
|
+
tag.values { |value| puts value }
|
1905
|
+
</pre>
|
1906
|
+
<p><a class="source-toggle" href="#"
|
1907
|
+
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
1908
|
+
<div class="method-source-code" id="M000033-source">
|
1909
|
+
<pre>
|
1910
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 436</span>
|
1911
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values</span> <span class="ruby-comment cmt"># :yields: value</span>
|
1912
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
1913
|
+
<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> }
|
1914
|
+
<span class="ruby-keyword kw">else</span>
|
1915
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@values</span>
|
1916
|
+
<span class="ruby-keyword kw">end</span>
|
1917
|
+
<span class="ruby-keyword kw">end</span>
|
1918
|
+
</pre>
|
1919
|
+
</div>
|
1920
|
+
</div>
|
1921
|
+
</div>
|
1922
|
+
|
1923
|
+
<div id="method-M000034" class="method-detail">
|
1924
|
+
<a name="M000034"></a>
|
1925
|
+
|
1926
|
+
<div class="method-heading">
|
1927
|
+
<a href="#M000034" class="method-signature">
|
1928
|
+
<span class="method-name">values=</span><span class="method-args">(someValues)</span>
|
1929
|
+
</a>
|
1930
|
+
</div>
|
1931
|
+
|
1932
|
+
<div class="method-description">
|
1933
|
+
<p>
|
1934
|
+
Set the <a href="Tag.html#M000033">values</a> for this tag. See {@link
|
1935
|
+
addValue(Object)} for legal <a href="Tag.html#M000020">value</a> types.
|
1936
|
+
</p>
|
1937
|
+
<table>
|
1938
|
+
<tr><td valign="top"><tt><a href="Tag.html#M000033">values</a></tt>:</td><td>The <a href="Tag.html#M000013">new</a> <a
|
1939
|
+
href="Tag.html#M000033">values</a>
|
1940
|
+
|
1941
|
+
</td></tr>
|
1942
|
+
</table>
|
1943
|
+
<p>
|
1944
|
+
@throws IllegalArgumentException if the collection contains any <a
|
1945
|
+
href="Tag.html#M000033">values</a>
|
1946
|
+
</p>
|
1947
|
+
<pre>
|
1948
|
+
which are not legal SDL types
|
1949
|
+
</pre>
|
1950
|
+
<p><a class="source-toggle" href="#"
|
1951
|
+
onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
|
1952
|
+
<div class="method-source-code" id="M000034-source">
|
1953
|
+
<pre>
|
1954
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 452</span>
|
1955
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values=</span>(<span class="ruby-identifier">someValues</span>)
|
1956
|
+
<span class="ruby-ivar">@values</span>.<span class="ruby-identifier">clear</span>()
|
1957
|
+
<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>
|
1958
|
+
<span class="ruby-comment cmt"># this is required to ensure validation of types</span>
|
1959
|
+
<span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">v</span>)
|
1960
|
+
}
|
1961
|
+
<span class="ruby-keyword kw">end</span>
|
1962
|
+
</pre>
|
1963
|
+
</div>
|
1964
|
+
</div>
|
1965
|
+
</div>
|
1966
|
+
|
1967
|
+
<div id="method-M000047" class="method-detail">
|
1968
|
+
<a name="M000047"></a>
|
1969
|
+
|
1970
|
+
<div class="method-heading">
|
1971
|
+
<a href="#M000047" class="method-signature">
|
1972
|
+
<span class="method-name">write</span><span class="method-args">(output, include_root = false)</span>
|
1973
|
+
</a>
|
1974
|
+
</div>
|
1975
|
+
|
1976
|
+
<div class="method-description">
|
1977
|
+
<p>
|
1978
|
+
Write this tag out to the given IO or string (optionally clipping the
|
1979
|
+
root.)
|
1980
|
+
</p>
|
1981
|
+
<table>
|
1982
|
+
<tr><td valign="top"><tt>writer</tt>:</td><td>The writer to which we will <a href="Tag.html#M000047">write</a> this tag
|
1983
|
+
|
1984
|
+
</td></tr>
|
1985
|
+
<tr><td valign="top"><tt>includeRoot</tt>:</td><td>If true this tag will be written out as the root
|
1986
|
+
|
1987
|
+
</td></tr>
|
1988
|
+
</table>
|
1989
|
+
<pre>
|
1990
|
+
element, if false only the children will be written
|
1991
|
+
</pre>
|
1992
|
+
<p><a class="source-toggle" href="#"
|
1993
|
+
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
1994
|
+
<div class="method-source-code" id="M000047-source">
|
1995
|
+
<pre>
|
1996
|
+
<span class="ruby-comment cmt"># File lib/sdl4r/tag.rb, line 719</span>
|
1997
|
+
<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>)
|
1998
|
+
<span class="ruby-identifier">io</span> = (<span class="ruby-identifier">output</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>))<span class="ruby-operator">?</span> <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">output</span>
|
1999
|
+
|
2000
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">include_root</span>
|
2001
|
+
<span class="ruby-identifier">io</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">to_s</span>
|
2002
|
+
<span class="ruby-keyword kw">else</span>
|
2003
|
+
<span class="ruby-identifier">each_child</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span>, <span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
|
2004
|
+
<span class="ruby-identifier">io</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">$/</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
2005
|
+
<span class="ruby-identifier">child</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">io</span>)
|
2006
|
+
<span class="ruby-keyword kw">end</span>
|
2007
|
+
<span class="ruby-keyword kw">end</span>
|
2008
|
+
|
2009
|
+
<span class="ruby-identifier">io</span>.<span class="ruby-identifier">close</span>()
|
2010
|
+
<span class="ruby-keyword kw">end</span>
|
2011
|
+
</pre>
|
2012
|
+
</div>
|
2013
|
+
</div>
|
2014
|
+
</div>
|
2015
|
+
|
2016
|
+
|
2017
|
+
</div>
|
2018
|
+
|
2019
|
+
|
2020
|
+
</div>
|
2021
|
+
|
2022
|
+
|
2023
|
+
<div id="validator-badges">
|
2024
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
2025
|
+
</div>
|
2026
|
+
|
2027
|
+
</body>
|
2028
|
+
</html>
|