atom-tools 0.9.0 → 2.0.5
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/COPYING +3 -3
- data/README +9 -49
- data/Rakefile +65 -62
- data/bin/atom-cp +159 -0
- data/bin/atom-grep +78 -0
- data/bin/atom-post +73 -0
- data/bin/atom-purge +82 -0
- data/doc/classes/Atom/AttrEl.html +163 -0
- data/doc/classes/Atom/Author.html +2 -19
- data/doc/classes/Atom/AutodiscoveryFailure.html +111 -0
- data/doc/classes/Atom/Categories.html +168 -0
- data/doc/classes/Atom/Category.html +10 -1
- data/doc/classes/Atom/Collection.html +194 -91
- data/doc/classes/Atom/Content.html +42 -1
- data/doc/classes/Atom/Contributor.html +2 -8
- data/doc/classes/Atom/Control.html +126 -0
- data/doc/classes/Atom/Converters.html +571 -0
- data/doc/classes/Atom/DigestAuth.html +285 -0
- data/doc/classes/Atom/Element.html +673 -106
- data/doc/classes/Atom/FileCache.html +287 -0
- data/doc/classes/Atom/HTTP.html +211 -95
- data/doc/classes/Atom/HTTPResponse.html +190 -0
- data/doc/classes/Atom/HasCategories.html +187 -0
- data/doc/classes/Atom/HasLinks.html +168 -0
- data/doc/classes/Atom/Link.html +80 -3
- data/doc/classes/Atom/NilCache.html +202 -0
- data/doc/classes/Atom/ParseError.html +111 -0
- data/doc/classes/Atom/Parsers.html +311 -0
- data/doc/classes/Atom/Person.html +130 -0
- data/doc/classes/Atom/Rights.html +113 -0
- data/doc/classes/Atom/Service.html +298 -0
- data/doc/{files/lib/atom/yaml_rb.html → classes/Atom/Source.html} +26 -24
- data/doc/classes/Atom/Subtitle.html +113 -0
- data/doc/classes/Atom/Summary.html +113 -0
- data/doc/classes/Atom/Text.html +196 -53
- data/doc/classes/Atom/Title.html +113 -0
- data/doc/classes/Atom/Tools.html +525 -0
- data/doc/classes/Atom/Workspace.html +121 -0
- data/doc/classes/Object.html +204 -0
- data/doc/created.rid +1 -1
- data/doc/files/README.html +9 -49
- data/doc/files/lib/atom/cache_rb.html +302 -0
- data/doc/files/lib/atom/collection_rb.html +1 -2
- data/doc/files/lib/atom/element_rb.html +2 -1
- data/doc/files/lib/atom/entry_rb.html +2 -2
- data/doc/files/lib/atom/feed_rb.html +1 -2
- data/doc/files/lib/atom/http_rb.html +6 -1
- data/doc/files/lib/atom/{xml_rb.html → service_rb.html} +8 -6
- data/doc/files/lib/atom/text_rb.html +2 -1
- data/doc/files/lib/atom/{app_rb.html → tools_rb.html} +4 -6
- data/doc/fr_class_index.html +23 -3
- data/doc/fr_file_index.html +3 -3
- data/doc/fr_method_index.html +111 -36
- data/lib/atom/cache.rb +178 -0
- data/lib/atom/collection.rb +90 -40
- data/lib/atom/element.rb +569 -161
- data/lib/atom/entry.rb +63 -89
- data/lib/atom/feed.rb +65 -67
- data/lib/atom/http.rb +421 -49
- data/lib/atom/service.rb +106 -0
- data/lib/atom/text.rb +138 -61
- data/lib/atom/tools.rb +163 -0
- data/spec/entry_spec.rb +364 -0
- data/spec/ext_spec.rb +42 -0
- data/spec/feed_spec.rb +39 -0
- data/spec/fixtures/contacts-feed.xml +34 -0
- data/spec/fixtures/entry-w-ext.xml +15 -0
- data/spec/fixtures/entry-w-xml.xml +24 -0
- data/spec/fixtures/entry.xml +42 -0
- data/spec/fixtures/feed-w-ext.xml +33 -0
- data/spec/fixtures/service-w-xhtml-ns.xml +21 -0
- data/spec/fixtures/service.xml +36 -0
- data/spec/service_spec.rb +108 -0
- data/spec/spec_helper.rb +9 -0
- data/test/conformance/order.rb +11 -10
- data/test/conformance/title.rb +9 -9
- data/test/conformance/updated.rb +2 -1
- data/test/runtests.rb +0 -0
- data/test/test_constructs.rb +78 -8
- data/test/test_feed.rb +35 -29
- data/test/test_general.rb +3 -30
- data/test/test_http.rb +248 -34
- data/test/test_protocol.rb +143 -24
- data/test/test_xml.rb +145 -53
- metadata +116 -62
- data/bin/atom-client.rb +0 -246
- data/bin/atom-server.rb~ +0 -71
- data/doc/classes/Atom/App.html +0 -217
- data/doc/classes/Atom/Entry.html +0 -365
- data/doc/classes/Atom/Feed.html +0 -585
- data/lib/atom/app.rb +0 -87
- data/lib/atom/xml.rb +0 -200
- data/lib/atom/yaml.rb +0 -101
|
@@ -55,10 +55,6 @@
|
|
|
55
55
|
<tr class="top-aligned-row">
|
|
56
56
|
<td><strong>In:</strong></td>
|
|
57
57
|
<td>
|
|
58
|
-
<a href="../../files/lib/atom/yaml_rb.html">
|
|
59
|
-
lib/atom/yaml.rb
|
|
60
|
-
</a>
|
|
61
|
-
<br />
|
|
62
58
|
<a href="../../files/lib/atom/element_rb.html">
|
|
63
59
|
lib/atom/element.rb
|
|
64
60
|
</a>
|
|
@@ -69,7 +65,9 @@
|
|
|
69
65
|
<tr class="top-aligned-row">
|
|
70
66
|
<td><strong>Parent:</strong></td>
|
|
71
67
|
<td>
|
|
72
|
-
|
|
68
|
+
<a href="../Object.html">
|
|
69
|
+
Object
|
|
70
|
+
</a>
|
|
73
71
|
</td>
|
|
74
72
|
</tr>
|
|
75
73
|
</table>
|
|
@@ -82,6 +80,16 @@
|
|
|
82
80
|
|
|
83
81
|
<div id="contextContent">
|
|
84
82
|
|
|
83
|
+
<div id="description">
|
|
84
|
+
<p>
|
|
85
|
+
The Class’ methods provide a DSL for describing Atom‘s
|
|
86
|
+
structure
|
|
87
|
+
</p>
|
|
88
|
+
<pre>
|
|
89
|
+
(and more generally for describing simple namespaced XML)
|
|
90
|
+
</pre>
|
|
91
|
+
|
|
92
|
+
</div>
|
|
85
93
|
|
|
86
94
|
|
|
87
95
|
</div>
|
|
@@ -90,11 +98,29 @@
|
|
|
90
98
|
<h3 class="section-bar">Methods</h3>
|
|
91
99
|
|
|
92
100
|
<div class="name-list">
|
|
93
|
-
<a href="#
|
|
94
|
-
<a href="#
|
|
95
|
-
<a href="#
|
|
96
|
-
<a href="#
|
|
97
|
-
<a href="#
|
|
101
|
+
<a href="#M000095">append_elem</a>
|
|
102
|
+
<a href="#M000088">build</a>
|
|
103
|
+
<a href="#M000085">builders</a>
|
|
104
|
+
<a href="#M000090">def_get</a>
|
|
105
|
+
<a href="#M000091">def_set</a>
|
|
106
|
+
<a href="#M000084">do_parsing</a>
|
|
107
|
+
<a href="#M000096">get</a>
|
|
108
|
+
<a href="#M000081">get_atom_attrb</a>
|
|
109
|
+
<a href="#M000079">get_atom_elem</a>
|
|
110
|
+
<a href="#M000080">get_atom_elems</a>
|
|
111
|
+
<a href="#M000077">get_elem</a>
|
|
112
|
+
<a href="#M000078">get_elems</a>
|
|
113
|
+
<a href="#M000076">is_atom_element</a>
|
|
114
|
+
<a href="#M000075">is_element</a>
|
|
115
|
+
<a href="#M000092">new</a>
|
|
116
|
+
<a href="#M000083">on_build</a>
|
|
117
|
+
<a href="#M000093">on_init</a>
|
|
118
|
+
<a href="#M000086">parse</a>
|
|
119
|
+
<a href="#M000094">run_initters</a>
|
|
120
|
+
<a href="#M000097">set</a>
|
|
121
|
+
<a href="#M000082">set_atom_attrb</a>
|
|
122
|
+
<a href="#M000089">to_s</a>
|
|
123
|
+
<a href="#M000087">to_xml</a>
|
|
98
124
|
</div>
|
|
99
125
|
</div>
|
|
100
126
|
|
|
@@ -118,7 +144,7 @@
|
|
|
118
144
|
<td class="context-item-name">base</td>
|
|
119
145
|
<td class="context-item-value"> [RW] </td>
|
|
120
146
|
<td class="context-item-desc">
|
|
121
|
-
this element&#
|
|
147
|
+
this element‘s xml:base
|
|
122
148
|
|
|
123
149
|
</td>
|
|
124
150
|
</tr>
|
|
@@ -126,8 +152,7 @@ this element’s xml:base
|
|
|
126
152
|
<td class="context-item-name">extensions</td>
|
|
127
153
|
<td class="context-item-value"> [R] </td>
|
|
128
154
|
<td class="context-item-desc">
|
|
129
|
-
|
|
130
|
-
child elements
|
|
155
|
+
xml elements and attributes that have been parsed, but are unknown
|
|
131
156
|
|
|
132
157
|
</td>
|
|
133
158
|
</tr>
|
|
@@ -139,172 +164,714 @@ child elements
|
|
|
139
164
|
|
|
140
165
|
<!-- if method_list -->
|
|
141
166
|
<div id="methods">
|
|
167
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
168
|
+
|
|
169
|
+
<div id="method-M000085" class="method-detail">
|
|
170
|
+
<a name="M000085"></a>
|
|
171
|
+
|
|
172
|
+
<div class="method-heading">
|
|
173
|
+
<a href="#M000085" class="method-signature">
|
|
174
|
+
<span class="method-name">builders</span><span class="method-args">(&block)</span>
|
|
175
|
+
</a>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<div class="method-description">
|
|
179
|
+
<p><a class="source-toggle" href="#"
|
|
180
|
+
onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
|
|
181
|
+
<div class="method-source-code" id="M000085-source">
|
|
182
|
+
<pre>
|
|
183
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 396</span>
|
|
184
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">builders</span> <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
185
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ancestors</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:builders</span>
|
|
186
|
+
<span class="ruby-identifier">ancestors</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">builders</span> <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
187
|
+
<span class="ruby-keyword kw">end</span>
|
|
188
|
+
|
|
189
|
+
<span class="ruby-ivar">@on_build</span> <span class="ruby-operator">||=</span> []
|
|
190
|
+
<span class="ruby-ivar">@on_build</span>.<span class="ruby-identifier">each</span> <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
191
|
+
<span class="ruby-keyword kw">end</span>
|
|
192
|
+
</pre>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
<div id="method-M000090" class="method-detail">
|
|
198
|
+
<a name="M000090"></a>
|
|
199
|
+
|
|
200
|
+
<div class="method-heading">
|
|
201
|
+
<a href="#M000090" class="method-signature">
|
|
202
|
+
<span class="method-name">def_get</span><span class="method-args">(name, &block)</span>
|
|
203
|
+
</a>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
<div class="method-description">
|
|
207
|
+
<p>
|
|
208
|
+
defines a getter that calls ‘block‘
|
|
209
|
+
</p>
|
|
210
|
+
<p><a class="source-toggle" href="#"
|
|
211
|
+
onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
|
|
212
|
+
<div class="method-source-code" id="M000090-source">
|
|
213
|
+
<pre>
|
|
214
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 492</span>
|
|
215
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">def_get</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
|
216
|
+
<span class="ruby-identifier">define_method</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
217
|
+
<span class="ruby-keyword kw">end</span>
|
|
218
|
+
</pre>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
<div id="method-M000091" class="method-detail">
|
|
224
|
+
<a name="M000091"></a>
|
|
225
|
+
|
|
226
|
+
<div class="method-heading">
|
|
227
|
+
<a href="#M000091" class="method-signature">
|
|
228
|
+
<span class="method-name">def_set</span><span class="method-args">(name, &block)</span>
|
|
229
|
+
</a>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div class="method-description">
|
|
233
|
+
<p>
|
|
234
|
+
defines a setter that calls ‘block‘
|
|
235
|
+
</p>
|
|
236
|
+
<p><a class="source-toggle" href="#"
|
|
237
|
+
onclick="toggleCode('M000091-source');return false;">[Source]</a></p>
|
|
238
|
+
<div class="method-source-code" id="M000091-source">
|
|
239
|
+
<pre>
|
|
240
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 497</span>
|
|
241
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">def_set</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
|
242
|
+
<span class="ruby-identifier">define_method</span> <span class="ruby-node">"#{name}="</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
243
|
+
<span class="ruby-keyword kw">end</span>
|
|
244
|
+
</pre>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
|
|
249
|
+
<div id="method-M000084" class="method-detail">
|
|
250
|
+
<a name="M000084"></a>
|
|
251
|
+
|
|
252
|
+
<div class="method-heading">
|
|
253
|
+
<a href="#M000084" class="method-signature">
|
|
254
|
+
<span class="method-name">do_parsing</span><span class="method-args">(e, root)</span>
|
|
255
|
+
</a>
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
<div class="method-description">
|
|
259
|
+
<p><a class="source-toggle" href="#"
|
|
260
|
+
onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
|
|
261
|
+
<div class="method-source-code" id="M000084-source">
|
|
262
|
+
<pre>
|
|
263
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 387</span>
|
|
264
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">do_parsing</span> <span class="ruby-identifier">e</span>, <span class="ruby-identifier">root</span>
|
|
265
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ancestors</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:do_parsing</span>
|
|
266
|
+
<span class="ruby-identifier">ancestors</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">do_parsing</span> <span class="ruby-identifier">e</span>, <span class="ruby-identifier">root</span>
|
|
267
|
+
<span class="ruby-keyword kw">end</span>
|
|
268
|
+
|
|
269
|
+
<span class="ruby-ivar">@on_parse</span> <span class="ruby-operator">||=</span> []
|
|
270
|
+
<span class="ruby-ivar">@on_parse</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">e</span>, <span class="ruby-identifier">root</span> }
|
|
271
|
+
<span class="ruby-keyword kw">end</span>
|
|
272
|
+
</pre>
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
</div>
|
|
276
|
+
|
|
277
|
+
<div id="method-M000076" class="method-detail">
|
|
278
|
+
<a name="M000076"></a>
|
|
279
|
+
|
|
280
|
+
<div class="method-heading">
|
|
281
|
+
<a href="#M000076" class="method-signature">
|
|
282
|
+
<span class="method-name">is_atom_element</span><span class="method-args">(name)</span>
|
|
283
|
+
</a>
|
|
284
|
+
</div>
|
|
285
|
+
|
|
286
|
+
<div class="method-description">
|
|
287
|
+
<p>
|
|
288
|
+
wrapper for <a href="Element.html#M000075">is_element</a>
|
|
289
|
+
</p>
|
|
290
|
+
<p><a class="source-toggle" href="#"
|
|
291
|
+
onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
|
|
292
|
+
<div class="method-source-code" id="M000076-source">
|
|
293
|
+
<pre>
|
|
294
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 345</span>
|
|
295
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_atom_element</span> <span class="ruby-identifier">name</span>
|
|
296
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_element</span> <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">NS</span>, <span class="ruby-identifier">name</span>
|
|
297
|
+
<span class="ruby-keyword kw">end</span>
|
|
298
|
+
</pre>
|
|
299
|
+
</div>
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
|
|
303
|
+
<div id="method-M000075" class="method-detail">
|
|
304
|
+
<a name="M000075"></a>
|
|
305
|
+
|
|
306
|
+
<div class="method-heading">
|
|
307
|
+
<a href="#M000075" class="method-signature">
|
|
308
|
+
<span class="method-name">is_element</span><span class="method-args">(ns, name)</span>
|
|
309
|
+
</a>
|
|
310
|
+
</div>
|
|
311
|
+
|
|
312
|
+
<div class="method-description">
|
|
313
|
+
<p>
|
|
314
|
+
attaches a name and a namespace to an element this needs to be called on
|
|
315
|
+
any <a href="Element.html#M000092">new</a> element
|
|
316
|
+
</p>
|
|
317
|
+
<p><a class="source-toggle" href="#"
|
|
318
|
+
onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
|
|
319
|
+
<div class="method-source-code" id="M000075-source">
|
|
320
|
+
<pre>
|
|
321
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 339</span>
|
|
322
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_element</span> <span class="ruby-identifier">ns</span>, <span class="ruby-identifier">name</span>
|
|
323
|
+
<span class="ruby-identifier">meta_def</span> <span class="ruby-identifier">:self_namespace</span> <span class="ruby-keyword kw">do</span>; <span class="ruby-identifier">ns</span>; <span class="ruby-keyword kw">end</span>
|
|
324
|
+
<span class="ruby-identifier">meta_def</span> <span class="ruby-identifier">:self_name</span> <span class="ruby-keyword kw">do</span>; <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>; <span class="ruby-keyword kw">end</span>
|
|
325
|
+
<span class="ruby-keyword kw">end</span>
|
|
326
|
+
</pre>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
|
|
331
|
+
<div id="method-M000092" class="method-detail">
|
|
332
|
+
<a name="M000092"></a>
|
|
333
|
+
|
|
334
|
+
<div class="method-heading">
|
|
335
|
+
<a href="#M000092" class="method-signature">
|
|
336
|
+
<span class="method-name">new</span><span class="method-args">(defaults = {})</span>
|
|
337
|
+
</a>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
<div class="method-description">
|
|
341
|
+
<p>
|
|
342
|
+
be sure to call super if you override this method!
|
|
343
|
+
</p>
|
|
344
|
+
<p><a class="source-toggle" href="#"
|
|
345
|
+
onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
|
|
346
|
+
<div class="method-source-code" id="M000092-source">
|
|
347
|
+
<pre>
|
|
348
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 502</span>
|
|
349
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">defaults</span> = {}
|
|
350
|
+
<span class="ruby-ivar">@extensions</span> = []
|
|
351
|
+
|
|
352
|
+
<span class="ruby-ivar">@extensions</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@attrs'</span>, {})
|
|
353
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-ivar">@extensions</span>.<span class="ruby-identifier">attributes</span>
|
|
354
|
+
<span class="ruby-ivar">@attrs</span>
|
|
355
|
+
<span class="ruby-keyword kw">end</span>
|
|
356
|
+
|
|
357
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">run_initters</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">init</span><span class="ruby-operator">|</span>
|
|
358
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-operator">&</span><span class="ruby-identifier">init</span>
|
|
359
|
+
<span class="ruby-keyword kw">end</span>
|
|
360
|
+
|
|
361
|
+
<span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
362
|
+
<span class="ruby-identifier">set</span>(<span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>)
|
|
363
|
+
<span class="ruby-keyword kw">end</span>
|
|
364
|
+
<span class="ruby-keyword kw">end</span>
|
|
365
|
+
</pre>
|
|
366
|
+
</div>
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
|
|
370
|
+
<div id="method-M000083" class="method-detail">
|
|
371
|
+
<a name="M000083"></a>
|
|
372
|
+
|
|
373
|
+
<div class="method-heading">
|
|
374
|
+
<a href="#M000083" class="method-signature">
|
|
375
|
+
<span class="method-name">on_build</span><span class="method-args">(&block)</span>
|
|
376
|
+
</a>
|
|
377
|
+
</div>
|
|
378
|
+
|
|
379
|
+
<div class="method-description">
|
|
380
|
+
<p><a class="source-toggle" href="#"
|
|
381
|
+
onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
|
|
382
|
+
<div class="method-source-code" id="M000083-source">
|
|
383
|
+
<pre>
|
|
384
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 382</span>
|
|
385
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">on_build</span> <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
386
|
+
<span class="ruby-ivar">@on_build</span> <span class="ruby-operator">||=</span> []
|
|
387
|
+
<span class="ruby-ivar">@on_build</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">block</span>
|
|
388
|
+
<span class="ruby-keyword kw">end</span>
|
|
389
|
+
</pre>
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
|
|
394
|
+
<div id="method-M000093" class="method-detail">
|
|
395
|
+
<a name="M000093"></a>
|
|
396
|
+
|
|
397
|
+
<div class="method-heading">
|
|
398
|
+
<a href="#M000093" class="method-signature">
|
|
399
|
+
<span class="method-name">on_init</span><span class="method-args">(&block)</span>
|
|
400
|
+
</a>
|
|
401
|
+
</div>
|
|
402
|
+
|
|
403
|
+
<div class="method-description">
|
|
404
|
+
<p><a class="source-toggle" href="#"
|
|
405
|
+
onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
|
|
406
|
+
<div class="method-source-code" id="M000093-source">
|
|
407
|
+
<pre>
|
|
408
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 519</span>
|
|
409
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span><span class="ruby-keyword kw">self</span>..<span class="ruby-identifier">on_init</span><span class="ruby-identifier">on_init</span> <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
410
|
+
<span class="ruby-ivar">@on_init</span> <span class="ruby-operator">||=</span> []
|
|
411
|
+
<span class="ruby-ivar">@on_init</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">block</span>
|
|
412
|
+
<span class="ruby-keyword kw">end</span>
|
|
413
|
+
</pre>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
</div>
|
|
417
|
+
|
|
418
|
+
<div id="method-M000086" class="method-detail">
|
|
419
|
+
<a name="M000086"></a>
|
|
420
|
+
|
|
421
|
+
<div class="method-heading">
|
|
422
|
+
<a href="#M000086" class="method-signature">
|
|
423
|
+
<span class="method-name">parse</span><span class="method-args">(xml, base = '', element = nil)</span>
|
|
424
|
+
</a>
|
|
425
|
+
</div>
|
|
426
|
+
|
|
427
|
+
<div class="method-description">
|
|
428
|
+
<p>
|
|
429
|
+
turns a String, an IO-like, a REXML::Element, etc. into an <a
|
|
430
|
+
href="Element.html">Atom::Element</a>
|
|
431
|
+
</p>
|
|
432
|
+
<p>
|
|
433
|
+
the ‘base’ base URL parameter should be supplied if you know
|
|
434
|
+
where this XML was fetched from
|
|
435
|
+
</p>
|
|
436
|
+
<p>
|
|
437
|
+
if you want to <a href="Element.html#M000086">parse</a> into an existing <a
|
|
438
|
+
href="Element.html">Atom::Element</a>, it can be passed in as
|
|
439
|
+
‘element‘
|
|
440
|
+
</p>
|
|
441
|
+
<p><a class="source-toggle" href="#"
|
|
442
|
+
onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
|
|
443
|
+
<div class="method-source-code" id="M000086-source">
|
|
444
|
+
<pre>
|
|
445
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 412</span>
|
|
446
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">base</span> = <span class="ruby-value str">''</span>, <span class="ruby-identifier">element</span> = <span class="ruby-keyword kw">nil</span>
|
|
447
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:elements</span>
|
|
448
|
+
<span class="ruby-identifier">root</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">dup</span>
|
|
449
|
+
<span class="ruby-keyword kw">else</span>
|
|
450
|
+
<span class="ruby-identifier">xml</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">read</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:read</span>
|
|
451
|
+
|
|
452
|
+
<span class="ruby-keyword kw">begin</span>
|
|
453
|
+
<span class="ruby-identifier">root</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">root</span>
|
|
454
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
|
455
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
|
456
|
+
<span class="ruby-keyword kw">end</span>
|
|
457
|
+
<span class="ruby-keyword kw">end</span>
|
|
458
|
+
|
|
459
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">root</span>.<span class="ruby-identifier">local_name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">self_name</span>
|
|
460
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span>, <span class="ruby-node">"expected element named #{self.self_name}, not #{root.local_name}"</span>
|
|
461
|
+
<span class="ruby-keyword kw">end</span>
|
|
462
|
+
|
|
463
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">root</span>.<span class="ruby-identifier">namespace</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">self_namespace</span>
|
|
464
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span>, <span class="ruby-node">"expected element in namespace #{self.self_namespace}, not #{root.namespace}"</span>
|
|
465
|
+
<span class="ruby-keyword kw">end</span>
|
|
466
|
+
|
|
467
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">root</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'xml:base'</span>]
|
|
468
|
+
<span class="ruby-identifier">base</span> = (<span class="ruby-identifier">base</span>.<span class="ruby-identifier">to_uri</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">root</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'xml:base'</span>])
|
|
469
|
+
<span class="ruby-keyword kw">end</span>
|
|
470
|
+
|
|
471
|
+
<span class="ruby-identifier">e</span> = <span class="ruby-identifier">element</span> <span class="ruby-value">? </span><span class="ruby-identifier">element</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>
|
|
472
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">base</span> = <span class="ruby-identifier">base</span>
|
|
473
|
+
|
|
474
|
+
<span class="ruby-comment cmt"># extension elements</span>
|
|
475
|
+
<span class="ruby-identifier">root</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
476
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">extensions</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
477
|
+
<span class="ruby-keyword kw">end</span>
|
|
478
|
+
|
|
479
|
+
<span class="ruby-comment cmt"># extension attributes</span>
|
|
480
|
+
<span class="ruby-identifier">root</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
481
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">extensions</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
|
|
482
|
+
<span class="ruby-keyword kw">end</span>
|
|
483
|
+
|
|
484
|
+
<span class="ruby-comment cmt"># as things are parsed, they're removed from e.extensions. whatever's</span>
|
|
485
|
+
<span class="ruby-comment cmt"># left over is stored so it can be round-tripped</span>
|
|
486
|
+
|
|
487
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">do_parsing</span> <span class="ruby-identifier">e</span>, <span class="ruby-identifier">root</span>
|
|
488
|
+
|
|
489
|
+
<span class="ruby-identifier">e</span>
|
|
490
|
+
<span class="ruby-keyword kw">end</span>
|
|
491
|
+
</pre>
|
|
492
|
+
</div>
|
|
493
|
+
</div>
|
|
494
|
+
</div>
|
|
495
|
+
|
|
496
|
+
<div id="method-M000094" class="method-detail">
|
|
497
|
+
<a name="M000094"></a>
|
|
498
|
+
|
|
499
|
+
<div class="method-heading">
|
|
500
|
+
<a href="#M000094" class="method-signature">
|
|
501
|
+
<span class="method-name">run_initters</span><span class="method-args">(&block)</span>
|
|
502
|
+
</a>
|
|
503
|
+
</div>
|
|
504
|
+
|
|
505
|
+
<div class="method-description">
|
|
506
|
+
<p><a class="source-toggle" href="#"
|
|
507
|
+
onclick="toggleCode('M000094-source');return false;">[Source]</a></p>
|
|
508
|
+
<div class="method-source-code" id="M000094-source">
|
|
509
|
+
<pre>
|
|
510
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 524</span>
|
|
511
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">run_initters</span> <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
|
|
512
|
+
<span class="ruby-ivar">@on_init</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@on_init</span>
|
|
513
|
+
<span class="ruby-keyword kw">end</span>
|
|
514
|
+
</pre>
|
|
515
|
+
</div>
|
|
516
|
+
</div>
|
|
517
|
+
</div>
|
|
518
|
+
|
|
142
519
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
143
520
|
|
|
144
|
-
<div id="method-
|
|
145
|
-
<a name="
|
|
521
|
+
<div id="method-M000095" class="method-detail">
|
|
522
|
+
<a name="M000095"></a>
|
|
146
523
|
|
|
147
524
|
<div class="method-heading">
|
|
148
|
-
<a href="#
|
|
149
|
-
<span class="method-name">
|
|
525
|
+
<a href="#M000095" class="method-signature">
|
|
526
|
+
<span class="method-name">append_elem</span><span class="method-args">(root, ns, name)</span>
|
|
150
527
|
</a>
|
|
151
528
|
</div>
|
|
152
529
|
|
|
153
530
|
<div class="method-description">
|
|
154
531
|
<p>
|
|
155
|
-
|
|
532
|
+
appends an element named ‘name’ in namespace ‘ns’
|
|
533
|
+
to ‘root’ ns is either [prefix, namespace] or just a String
|
|
534
|
+
containing the namespace
|
|
156
535
|
</p>
|
|
157
536
|
<p><a class="source-toggle" href="#"
|
|
158
|
-
onclick="toggleCode('
|
|
159
|
-
<div class="method-source-code" id="
|
|
537
|
+
onclick="toggleCode('M000095-source');return false;">[Source]</a></p>
|
|
538
|
+
<div class="method-source-code" id="M000095-source">
|
|
160
539
|
<pre>
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
540
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 530</span>
|
|
541
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append_elem</span>(<span class="ruby-identifier">root</span>, <span class="ruby-identifier">ns</span>, <span class="ruby-identifier">name</span>)
|
|
542
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
|
|
543
|
+
<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">ns</span>
|
|
544
|
+
<span class="ruby-keyword kw">else</span>
|
|
545
|
+
<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">uri</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">ns</span>
|
|
546
|
+
<span class="ruby-keyword kw">end</span>
|
|
547
|
+
|
|
548
|
+
<span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>
|
|
549
|
+
|
|
550
|
+
<span class="ruby-identifier">existing_prefix</span> = <span class="ruby-identifier">root</span>.<span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
551
|
+
<span class="ruby-identifier">v</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>
|
|
552
|
+
<span class="ruby-keyword kw">end</span>
|
|
553
|
+
|
|
554
|
+
<span class="ruby-identifier">root</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">existing_prefix</span>
|
|
555
|
+
<span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">existing_prefix</span>[<span class="ruby-value">0</span>]
|
|
556
|
+
|
|
557
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prefix</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'xmlns'</span>
|
|
558
|
+
<span class="ruby-identifier">name</span> = <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-value str">':'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">name</span>
|
|
559
|
+
<span class="ruby-keyword kw">end</span>
|
|
560
|
+
|
|
561
|
+
<span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Element</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
|
|
562
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">prefix</span>
|
|
563
|
+
<span class="ruby-identifier">e</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Element</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-value str">':'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">name</span>)
|
|
564
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">add_namespace</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">uri</span>)
|
|
565
|
+
<span class="ruby-identifier">e</span>
|
|
566
|
+
<span class="ruby-keyword kw">else</span>
|
|
567
|
+
<span class="ruby-identifier">e</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Element</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
|
|
568
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">add_namespace</span>(<span class="ruby-identifier">uri</span>)
|
|
569
|
+
<span class="ruby-identifier">e</span>
|
|
570
|
+
<span class="ruby-keyword kw">end</span>
|
|
571
|
+
<span class="ruby-keyword kw">end</span>
|
|
167
572
|
</pre>
|
|
168
573
|
</div>
|
|
169
574
|
</div>
|
|
170
575
|
</div>
|
|
171
576
|
|
|
172
|
-
<div id="method-
|
|
173
|
-
<a name="
|
|
577
|
+
<div id="method-M000088" class="method-detail">
|
|
578
|
+
<a name="M000088"></a>
|
|
174
579
|
|
|
175
580
|
<div class="method-heading">
|
|
176
|
-
<a href="#
|
|
177
|
-
<span class="method-name">
|
|
581
|
+
<a href="#M000088" class="method-signature">
|
|
582
|
+
<span class="method-name">build</span><span class="method-args">(root)</span>
|
|
178
583
|
</a>
|
|
179
584
|
</div>
|
|
180
585
|
|
|
181
586
|
<div class="method-description">
|
|
182
587
|
<p>
|
|
183
|
-
|
|
588
|
+
fill a REXML::Element with the data from this <a
|
|
589
|
+
href="Element.html">Atom::Element</a>
|
|
184
590
|
</p>
|
|
185
591
|
<p><a class="source-toggle" href="#"
|
|
186
|
-
onclick="toggleCode('
|
|
187
|
-
<div class="method-source-code" id="
|
|
592
|
+
onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
|
|
593
|
+
<div class="method-source-code" id="M000088-source">
|
|
188
594
|
<pre>
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
595
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 469</span>
|
|
596
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build</span> <span class="ruby-identifier">root</span>
|
|
597
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">base</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">base</span>.<span class="ruby-identifier">empty?</span>
|
|
598
|
+
<span class="ruby-identifier">root</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'xml:base'</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">base</span>
|
|
599
|
+
<span class="ruby-keyword kw">end</span>
|
|
600
|
+
|
|
601
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">builders</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">builder</span><span class="ruby-operator">|</span>
|
|
602
|
+
<span class="ruby-identifier">builder</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">root</span>
|
|
603
|
+
<span class="ruby-keyword kw">end</span>
|
|
604
|
+
|
|
605
|
+
<span class="ruby-ivar">@extensions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
|
|
606
|
+
<span class="ruby-identifier">root</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">dup</span>
|
|
607
|
+
<span class="ruby-keyword kw">end</span>
|
|
608
|
+
|
|
609
|
+
<span class="ruby-ivar">@extensions</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
|
610
|
+
<span class="ruby-identifier">root</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
|
|
611
|
+
<span class="ruby-keyword kw">end</span>
|
|
612
|
+
<span class="ruby-keyword kw">end</span>
|
|
195
613
|
</pre>
|
|
196
614
|
</div>
|
|
197
615
|
</div>
|
|
198
616
|
</div>
|
|
199
617
|
|
|
200
|
-
<div id="method-
|
|
201
|
-
<a name="
|
|
618
|
+
<div id="method-M000096" class="method-detail">
|
|
619
|
+
<a name="M000096"></a>
|
|
202
620
|
|
|
203
621
|
<div class="method-heading">
|
|
204
|
-
<a href="#
|
|
205
|
-
<span class="method-name">
|
|
622
|
+
<a href="#M000096" class="method-signature">
|
|
623
|
+
<span class="method-name">get</span><span class="method-args">(name)</span>
|
|
206
624
|
</a>
|
|
207
625
|
</div>
|
|
208
626
|
|
|
209
627
|
<div class="method-description">
|
|
210
628
|
<p>
|
|
211
|
-
|
|
629
|
+
calls a getter
|
|
212
630
|
</p>
|
|
213
631
|
<p><a class="source-toggle" href="#"
|
|
214
|
-
onclick="toggleCode('
|
|
215
|
-
<div class="method-source-code" id="
|
|
632
|
+
onclick="toggleCode('M000096-source');return false;">[Source]</a></p>
|
|
633
|
+
<div class="method-source-code" id="M000096-source">
|
|
216
634
|
<pre>
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
150: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">elements</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>,<span class="ruby-identifier">kind</span>,<span class="ruby-identifier">req</span><span class="ruby-operator">|</span>
|
|
222
|
-
151: <span class="ruby-identifier">v</span> = <span class="ruby-identifier">get</span>(<span class="ruby-identifier">name</span>)
|
|
223
|
-
152: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">nil?</span>
|
|
224
|
-
153:
|
|
225
|
-
154: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_element</span>
|
|
226
|
-
155: <span class="ruby-identifier">e</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_element</span>
|
|
227
|
-
156: <span class="ruby-identifier">e</span> = [ <span class="ruby-identifier">e</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
|
|
228
|
-
157:
|
|
229
|
-
158: <span class="ruby-identifier">e</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bit</span><span class="ruby-operator">|</span>
|
|
230
|
-
159: <span class="ruby-identifier">elem</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">bit</span>
|
|
231
|
-
160: <span class="ruby-keyword kw">end</span>
|
|
232
|
-
161: <span class="ruby-keyword kw">else</span>
|
|
233
|
-
162: <span class="ruby-identifier">e</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Element</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">elem</span>).<span class="ruby-identifier">text</span> = <span class="ruby-identifier">get</span>(<span class="ruby-identifier">name</span>)
|
|
234
|
-
163: <span class="ruby-keyword kw">end</span>
|
|
235
|
-
164: <span class="ruby-keyword kw">end</span>
|
|
236
|
-
165:
|
|
237
|
-
166: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>,<span class="ruby-identifier">req</span><span class="ruby-operator">|</span>
|
|
238
|
-
167: <span class="ruby-identifier">value</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>]
|
|
239
|
-
168: <span class="ruby-identifier">elem</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">value</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>
|
|
240
|
-
169: <span class="ruby-keyword kw">end</span>
|
|
241
|
-
170:
|
|
242
|
-
171: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">extensions</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
|
|
243
|
-
172: <span class="ruby-identifier">elem</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">dup</span> <span class="ruby-comment cmt"># otherwise they get removed from @extensions</span>
|
|
244
|
-
173: <span class="ruby-keyword kw">end</span>
|
|
245
|
-
174:
|
|
246
|
-
175: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">base</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">base</span>.<span class="ruby-identifier">empty?</span>
|
|
247
|
-
176: <span class="ruby-identifier">elem</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"xml:base"</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">base</span>
|
|
248
|
-
177: <span class="ruby-keyword kw">end</span>
|
|
249
|
-
178:
|
|
250
|
-
179: <span class="ruby-identifier">elem</span>
|
|
251
|
-
180: <span class="ruby-keyword kw">end</span>
|
|
635
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 567</span>
|
|
636
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span> <span class="ruby-identifier">name</span>
|
|
637
|
+
<span class="ruby-identifier">send</span> <span class="ruby-node">"#{name}"</span>.<span class="ruby-identifier">to_sym</span>
|
|
638
|
+
<span class="ruby-keyword kw">end</span>
|
|
252
639
|
</pre>
|
|
253
640
|
</div>
|
|
254
641
|
</div>
|
|
255
642
|
</div>
|
|
256
643
|
|
|
257
|
-
<div id="method-
|
|
258
|
-
<a name="
|
|
644
|
+
<div id="method-M000081" class="method-detail">
|
|
645
|
+
<a name="M000081"></a>
|
|
259
646
|
|
|
260
647
|
<div class="method-heading">
|
|
261
|
-
<a href="#
|
|
262
|
-
<span class="method-name">
|
|
648
|
+
<a href="#M000081" class="method-signature">
|
|
649
|
+
<span class="method-name">get_atom_attrb</span><span class="method-args">(xml, name)</span>
|
|
650
|
+
</a>
|
|
651
|
+
</div>
|
|
652
|
+
|
|
653
|
+
<div class="method-description">
|
|
654
|
+
<p>
|
|
655
|
+
gets an attribute on <tt>xml</tt>
|
|
656
|
+
</p>
|
|
657
|
+
<p><a class="source-toggle" href="#"
|
|
658
|
+
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
|
659
|
+
<div class="method-source-code" id="M000081-source">
|
|
660
|
+
<pre>
|
|
661
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 370</span>
|
|
662
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_atom_attrb</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">name</span>
|
|
663
|
+
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>]
|
|
664
|
+
<span class="ruby-keyword kw">end</span>
|
|
665
|
+
</pre>
|
|
666
|
+
</div>
|
|
667
|
+
</div>
|
|
668
|
+
</div>
|
|
669
|
+
|
|
670
|
+
<div id="method-M000079" class="method-detail">
|
|
671
|
+
<a name="M000079"></a>
|
|
672
|
+
|
|
673
|
+
<div class="method-heading">
|
|
674
|
+
<a href="#M000079" class="method-signature">
|
|
675
|
+
<span class="method-name">get_atom_elem</span><span class="method-args">(xml, name)</span>
|
|
676
|
+
</a>
|
|
677
|
+
</div>
|
|
678
|
+
|
|
679
|
+
<div class="method-description">
|
|
680
|
+
<p>
|
|
681
|
+
gets a child element in the Atom namespace
|
|
682
|
+
</p>
|
|
683
|
+
<p><a class="source-toggle" href="#"
|
|
684
|
+
onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
|
|
685
|
+
<div class="method-source-code" id="M000079-source">
|
|
686
|
+
<pre>
|
|
687
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 360</span>
|
|
688
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_atom_elem</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">name</span>
|
|
689
|
+
<span class="ruby-identifier">get_elem</span> <span class="ruby-identifier">xml</span>, <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">NS</span>, <span class="ruby-identifier">name</span>
|
|
690
|
+
<span class="ruby-keyword kw">end</span>
|
|
691
|
+
</pre>
|
|
692
|
+
</div>
|
|
693
|
+
</div>
|
|
694
|
+
</div>
|
|
695
|
+
|
|
696
|
+
<div id="method-M000080" class="method-detail">
|
|
697
|
+
<a name="M000080"></a>
|
|
698
|
+
|
|
699
|
+
<div class="method-heading">
|
|
700
|
+
<a href="#M000080" class="method-signature">
|
|
701
|
+
<span class="method-name">get_atom_elems</span><span class="method-args">(xml, name)</span>
|
|
702
|
+
</a>
|
|
703
|
+
</div>
|
|
704
|
+
|
|
705
|
+
<div class="method-description">
|
|
706
|
+
<p>
|
|
707
|
+
gets multiple child elements in the Atom namespace
|
|
708
|
+
</p>
|
|
709
|
+
<p><a class="source-toggle" href="#"
|
|
710
|
+
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
|
711
|
+
<div class="method-source-code" id="M000080-source">
|
|
712
|
+
<pre>
|
|
713
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 365</span>
|
|
714
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_atom_elems</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">name</span>
|
|
715
|
+
<span class="ruby-identifier">get_elems</span> <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">NS</span>, <span class="ruby-identifier">name</span>
|
|
716
|
+
<span class="ruby-keyword kw">end</span>
|
|
717
|
+
</pre>
|
|
718
|
+
</div>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
|
|
722
|
+
<div id="method-M000077" class="method-detail">
|
|
723
|
+
<a name="M000077"></a>
|
|
724
|
+
|
|
725
|
+
<div class="method-heading">
|
|
726
|
+
<a href="#M000077" class="method-signature">
|
|
727
|
+
<span class="method-name">get_elem</span><span class="method-args">(xml, ns, name)</span>
|
|
728
|
+
</a>
|
|
729
|
+
</div>
|
|
730
|
+
|
|
731
|
+
<div class="method-description">
|
|
732
|
+
<p>
|
|
733
|
+
gets a single namespaced child element
|
|
734
|
+
</p>
|
|
735
|
+
<p><a class="source-toggle" href="#"
|
|
736
|
+
onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
|
|
737
|
+
<div class="method-source-code" id="M000077-source">
|
|
738
|
+
<pre>
|
|
739
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 350</span>
|
|
740
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_elem</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">ns</span>, <span class="ruby-identifier">name</span>
|
|
741
|
+
<span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span> <span class="ruby-identifier">xml</span>, <span class="ruby-node">"./ns:#{name}"</span>, { <span class="ruby-value str">'ns'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">ns</span> }
|
|
742
|
+
<span class="ruby-keyword kw">end</span>
|
|
743
|
+
</pre>
|
|
744
|
+
</div>
|
|
745
|
+
</div>
|
|
746
|
+
</div>
|
|
747
|
+
|
|
748
|
+
<div id="method-M000078" class="method-detail">
|
|
749
|
+
<a name="M000078"></a>
|
|
750
|
+
|
|
751
|
+
<div class="method-heading">
|
|
752
|
+
<a href="#M000078" class="method-signature">
|
|
753
|
+
<span class="method-name">get_elems</span><span class="method-args">(xml, ns, name)</span>
|
|
754
|
+
</a>
|
|
755
|
+
</div>
|
|
756
|
+
|
|
757
|
+
<div class="method-description">
|
|
758
|
+
<p>
|
|
759
|
+
gets multiple namespaced child elements
|
|
760
|
+
</p>
|
|
761
|
+
<p><a class="source-toggle" href="#"
|
|
762
|
+
onclick="toggleCode('M000078-source');return false;">[Source]</a></p>
|
|
763
|
+
<div class="method-source-code" id="M000078-source">
|
|
764
|
+
<pre>
|
|
765
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 355</span>
|
|
766
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_elems</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">ns</span>, <span class="ruby-identifier">name</span>
|
|
767
|
+
<span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span> <span class="ruby-identifier">xml</span>, <span class="ruby-node">"./ns:#{name}"</span>, { <span class="ruby-value str">'ns'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">ns</span> }
|
|
768
|
+
<span class="ruby-keyword kw">end</span>
|
|
769
|
+
</pre>
|
|
770
|
+
</div>
|
|
771
|
+
</div>
|
|
772
|
+
</div>
|
|
773
|
+
|
|
774
|
+
<div id="method-M000097" class="method-detail">
|
|
775
|
+
<a name="M000097"></a>
|
|
776
|
+
|
|
777
|
+
<div class="method-heading">
|
|
778
|
+
<a href="#M000097" class="method-signature">
|
|
779
|
+
<span class="method-name">set</span><span class="method-args">(name, value)</span>
|
|
780
|
+
</a>
|
|
781
|
+
</div>
|
|
782
|
+
|
|
783
|
+
<div class="method-description">
|
|
784
|
+
<p>
|
|
785
|
+
calls a setter
|
|
786
|
+
</p>
|
|
787
|
+
<p><a class="source-toggle" href="#"
|
|
788
|
+
onclick="toggleCode('M000097-source');return false;">[Source]</a></p>
|
|
789
|
+
<div class="method-source-code" id="M000097-source">
|
|
790
|
+
<pre>
|
|
791
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 572</span>
|
|
792
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>
|
|
793
|
+
<span class="ruby-identifier">send</span> <span class="ruby-node">"#{name}="</span>, <span class="ruby-identifier">value</span>
|
|
794
|
+
<span class="ruby-keyword kw">end</span>
|
|
795
|
+
</pre>
|
|
796
|
+
</div>
|
|
797
|
+
</div>
|
|
798
|
+
</div>
|
|
799
|
+
|
|
800
|
+
<div id="method-M000082" class="method-detail">
|
|
801
|
+
<a name="M000082"></a>
|
|
802
|
+
|
|
803
|
+
<div class="method-heading">
|
|
804
|
+
<a href="#M000082" class="method-signature">
|
|
805
|
+
<span class="method-name">set_atom_attrb</span><span class="method-args">(xml, name, value)</span>
|
|
263
806
|
</a>
|
|
264
807
|
</div>
|
|
265
808
|
|
|
266
809
|
<div class="method-description">
|
|
267
810
|
<p>
|
|
268
|
-
|
|
811
|
+
sets an attribute on <tt>xml</tt>
|
|
269
812
|
</p>
|
|
270
813
|
<p><a class="source-toggle" href="#"
|
|
271
|
-
onclick="toggleCode('
|
|
272
|
-
<div class="method-source-code" id="
|
|
814
|
+
onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
|
|
815
|
+
<div class="method-source-code" id="M000082-source">
|
|
273
816
|
<pre>
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
817
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 375</span>
|
|
818
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_atom_attrb</span> <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>
|
|
819
|
+
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">value</span>
|
|
820
|
+
<span class="ruby-keyword kw">end</span>
|
|
278
821
|
</pre>
|
|
279
822
|
</div>
|
|
280
823
|
</div>
|
|
281
824
|
</div>
|
|
282
825
|
|
|
283
|
-
<div id="method-
|
|
284
|
-
<a name="
|
|
826
|
+
<div id="method-M000089" class="method-detail">
|
|
827
|
+
<a name="M000089"></a>
|
|
285
828
|
|
|
286
829
|
<div class="method-heading">
|
|
287
|
-
<a href="#
|
|
830
|
+
<a href="#M000089" class="method-signature">
|
|
831
|
+
<span class="method-name">to_s</span><span class="method-args">()</span>
|
|
832
|
+
</a>
|
|
833
|
+
</div>
|
|
834
|
+
|
|
835
|
+
<div class="method-description">
|
|
836
|
+
<p><a class="source-toggle" href="#"
|
|
837
|
+
onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
|
|
838
|
+
<div class="method-source-code" id="M000089-source">
|
|
839
|
+
<pre>
|
|
840
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 487</span>
|
|
841
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
|
842
|
+
<span class="ruby-identifier">to_xml</span>.<span class="ruby-identifier">to_s</span>
|
|
843
|
+
<span class="ruby-keyword kw">end</span>
|
|
844
|
+
</pre>
|
|
845
|
+
</div>
|
|
846
|
+
</div>
|
|
847
|
+
</div>
|
|
848
|
+
|
|
849
|
+
<div id="method-M000087" class="method-detail">
|
|
850
|
+
<a name="M000087"></a>
|
|
851
|
+
|
|
852
|
+
<div class="method-heading">
|
|
853
|
+
<a href="#M000087" class="method-signature">
|
|
288
854
|
<span class="method-name">to_xml</span><span class="method-args">()</span>
|
|
289
855
|
</a>
|
|
290
856
|
</div>
|
|
291
857
|
|
|
292
858
|
<div class="method-description">
|
|
293
859
|
<p>
|
|
294
|
-
|
|
860
|
+
converts to a REXML::Element
|
|
295
861
|
</p>
|
|
296
862
|
<p><a class="source-toggle" href="#"
|
|
297
|
-
onclick="toggleCode('
|
|
298
|
-
<div class="method-source-code" id="
|
|
863
|
+
onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
|
|
864
|
+
<div class="method-source-code" id="M000087-source">
|
|
299
865
|
<pre>
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
866
|
+
<span class="ruby-comment cmt"># File lib/atom/element.rb, line 459</span>
|
|
867
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_xml</span>
|
|
868
|
+
<span class="ruby-identifier">root</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Element</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">self_name</span>
|
|
869
|
+
<span class="ruby-identifier">root</span>.<span class="ruby-identifier">add_namespace</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">self_namespace</span>
|
|
870
|
+
|
|
871
|
+
<span class="ruby-identifier">build</span> <span class="ruby-identifier">root</span>
|
|
872
|
+
|
|
873
|
+
<span class="ruby-identifier">root</span>
|
|
874
|
+
<span class="ruby-keyword kw">end</span>
|
|
308
875
|
</pre>
|
|
309
876
|
</div>
|
|
310
877
|
</div>
|