mediawiki-gateway 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -26,5 +26,7 @@ Simple page creation script:
26
26
 
27
27
  Maintained by Jani Patokallio.
28
28
 
29
- Thanks to John Carney, Mike Williams, Daniel Heath and the rest of the Lonely Planet Atlas team.
29
+ Thanks to:
30
+ * John Carney, Mike Williams, Daniel Heath and the rest of the Lonely Planet Atlas team.
31
+ * Github users arturaz, carpodaster, muffinista and singlebrook for code contributions
30
32
 
@@ -91,6 +91,7 @@
91
91
  <a href="#M000001">get_base_name</a>&nbsp;&nbsp;
92
92
  <a href="#M000002">get_path_to_subpage</a>&nbsp;&nbsp;
93
93
  <a href="#M000003">get_subpage</a>&nbsp;&nbsp;
94
+ <a href="#M000007">upcase_first_char</a>&nbsp;&nbsp;
94
95
  <a href="#M000004">uri_to_wiki</a>&nbsp;&nbsp;
95
96
  <a href="#M000006">version</a>&nbsp;&nbsp;
96
97
  <a href="#M000005">wiki_to_uri</a>&nbsp;&nbsp;
@@ -250,8 +251,9 @@ href="MediaWiki.html#M000003">get_subpage</a>(&quot;Namespace:Foo&quot;)
250
251
  <div class="method-description">
251
252
  <p>
252
253
  Convert URL-ized page name (&quot;getting_there_%26_away&quot;) into Wiki
253
- display format page name (&quot;getting there &amp; away&quot;). Also
254
- strips out any illegal characters (#&lt;&gt;[]|{}, cf. <a
254
+ display format page name (&quot;Getting there &amp; away&quot;). Also
255
+ capitalizes first letter, replaces underscores with spaces and strips out
256
+ any illegal characters (#&lt;&gt;[]|{}, cf. <a
255
257
  href="http://meta.wikimedia.org/wiki/Help:Page_name#Restrictions">meta.wikimedia.org/wiki/Help:Page_name#Restrictions</a>).
256
258
  </p>
257
259
  <dl>
@@ -265,7 +267,7 @@ href="http://meta.wikimedia.org/wiki/Help:Page_name#Restrictions">meta.wikimedia
265
267
  <pre>
266
268
  <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 42</span>
267
269
  42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uri_to_wiki</span>(<span class="ruby-identifier">uri</span>)
268
- 43: <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'_'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'#&lt;&gt;[]|{}'</span>, <span class="ruby-value str">''</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>
270
+ 43: <span class="ruby-identifier">upcase_first_char</span>(<span class="ruby-constant">CGI</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'_'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'#&lt;&gt;[]|{}'</span>, <span class="ruby-value str">''</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>
269
271
  44: <span class="ruby-keyword kw">end</span>
270
272
  </pre>
271
273
  </div>
@@ -310,8 +312,8 @@ href="MediaWiki/Gateway.html">MediaWiki::Gateway</a>
310
312
 
311
313
  <div class="method-description">
312
314
  <p>
313
- Convert a Wiki page name (&quot;getting there &amp; away&quot;) to URI-safe
314
- format (&quot;getting_there_%26_away&quot;), taking care not to mangle
315
+ Convert a Wiki page name (&quot;Getting there &amp; away&quot;) to URI-safe
316
+ format (&quot;Getting_there_%26_away&quot;), taking care not to mangle
315
317
  slashes or colons
316
318
  </p>
317
319
  <dl>
@@ -332,6 +334,31 @@ slashes or colons
332
334
  </div>
333
335
  </div>
334
336
 
337
+ <h3 class="section-bar">Private Class methods</h3>
338
+
339
+ <div id="method-M000007" class="method-detail">
340
+ <a name="M000007"></a>
341
+
342
+ <div class="method-heading">
343
+ <a href="#M000007" class="method-signature">
344
+ <span class="method-name">upcase_first_char</span><span class="method-args">(str)</span>
345
+ </a>
346
+ </div>
347
+
348
+ <div class="method-description">
349
+ <p><a class="source-toggle" href="#"
350
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
351
+ <div class="method-source-code" id="M000007-source">
352
+ <pre>
353
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 60</span>
354
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upcase_first_char</span>(<span class="ruby-identifier">str</span>)
355
+ 61: [ <span class="ruby-constant">ActiveSupport</span><span class="ruby-operator">::</span><span class="ruby-constant">Multibyte</span><span class="ruby-operator">::</span><span class="ruby-constant">Chars</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">str</span>.<span class="ruby-identifier">mb_chars</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span>,<span class="ruby-value">1</span>)).<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">mb_chars</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>) ].<span class="ruby-identifier">join</span>
356
+ 62: <span class="ruby-keyword kw">end</span>
357
+ </pre>
358
+ </div>
359
+ </div>
360
+ </div>
361
+
335
362
 
336
363
  </div>
337
364
 
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000034">abort</a>&nbsp;&nbsp;
90
- <a href="#M000033">new</a>&nbsp;&nbsp;
89
+ <a href="#M000036">abort</a>&nbsp;&nbsp;
90
+ <a href="#M000035">new</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -157,19 +157,19 @@
157
157
  <div id="methods">
158
158
  <h3 class="section-bar">Public Class methods</h3>
159
159
 
160
- <div id="method-M000033" class="method-detail">
161
- <a name="M000033"></a>
160
+ <div id="method-M000035" class="method-detail">
161
+ <a name="M000035"></a>
162
162
 
163
163
  <div class="method-heading">
164
- <a href="#M000033" class="method-signature">
164
+ <a href="#M000035" class="method-signature">
165
165
  <span class="method-name">new</span><span class="method-args">(args, type = &quot;read&quot;)</span>
166
166
  </a>
167
167
  </div>
168
168
 
169
169
  <div class="method-description">
170
170
  <p><a class="source-toggle" href="#"
171
- onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
172
- <div class="method-source-code" id="M000033-source">
171
+ onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
172
+ <div class="method-source-code" id="M000035-source">
173
173
  <pre>
174
174
  <span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 10</span>
175
175
  10: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">type</span> = <span class="ruby-value str">&quot;read&quot;</span>)
@@ -230,19 +230,19 @@
230
230
 
231
231
  <h3 class="section-bar">Public Instance methods</h3>
232
232
 
233
- <div id="method-M000034" class="method-detail">
234
- <a name="M000034"></a>
233
+ <div id="method-M000036" class="method-detail">
234
+ <a name="M000036"></a>
235
235
 
236
236
  <div class="method-heading">
237
- <a href="#M000034" class="method-signature">
237
+ <a href="#M000036" class="method-signature">
238
238
  <span class="method-name">abort</span><span class="method-args">(error)</span>
239
239
  </a>
240
240
  </div>
241
241
 
242
242
  <div class="method-description">
243
243
  <p><a class="source-toggle" href="#"
244
- onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
245
- <div class="method-source-code" id="M000034-source">
244
+ onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
245
+ <div class="method-source-code" id="M000036-source">
246
246
  <pre>
247
247
  <span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 62</span>
248
248
  62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort</span>(<span class="ruby-identifier">error</span>)
@@ -86,32 +86,33 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000016">backlinks</a>&nbsp;&nbsp;
90
- <a href="#M000011">create</a>&nbsp;&nbsp;
91
- <a href="#M000013">delete</a>&nbsp;&nbsp;
92
- <a href="#M000021">download</a>&nbsp;&nbsp;
93
- <a href="#M000023">export</a>&nbsp;&nbsp;
94
- <a href="#M000025">extensions</a>&nbsp;&nbsp;
95
- <a href="#M000009">get</a>&nbsp;&nbsp;
96
- <a href="#M000030">get_response</a>&nbsp;&nbsp;
97
- <a href="#M000027">get_token</a>&nbsp;&nbsp;
98
- <a href="#M000028">get_undelete_token</a>&nbsp;&nbsp;
99
- <a href="#M000020">image_info</a>&nbsp;&nbsp;
100
- <a href="#M000022">import</a>&nbsp;&nbsp;
101
- <a href="#M000015">list</a>&nbsp;&nbsp;
102
- <a href="#M000008">login</a>&nbsp;&nbsp;
103
- <a href="#M000029">make_api_request</a>&nbsp;&nbsp;
104
- <a href="#M000012">move</a>&nbsp;&nbsp;
105
- <a href="#M000024">namespaces_by_prefix</a>&nbsp;&nbsp;
106
- <a href="#M000007">new</a>&nbsp;&nbsp;
107
- <a href="#M000019">redirect?</a>&nbsp;&nbsp;
108
- <a href="#M000010">render</a>&nbsp;&nbsp;
109
- <a href="#M000017">search</a>&nbsp;&nbsp;
110
- <a href="#M000026">semantic_query</a>&nbsp;&nbsp;
111
- <a href="#M000014">undelete</a>&nbsp;&nbsp;
112
- <a href="#M000018">upload</a>&nbsp;&nbsp;
113
- <a href="#M000031">valid_page?</a>&nbsp;&nbsp;
114
- <a href="#M000032">warning</a>&nbsp;&nbsp;
89
+ <a href="#M000018">backlinks</a>&nbsp;&nbsp;
90
+ <a href="#M000012">create</a>&nbsp;&nbsp;
91
+ <a href="#M000015">delete</a>&nbsp;&nbsp;
92
+ <a href="#M000023">download</a>&nbsp;&nbsp;
93
+ <a href="#M000013">edit</a>&nbsp;&nbsp;
94
+ <a href="#M000025">export</a>&nbsp;&nbsp;
95
+ <a href="#M000027">extensions</a>&nbsp;&nbsp;
96
+ <a href="#M000010">get</a>&nbsp;&nbsp;
97
+ <a href="#M000032">get_response</a>&nbsp;&nbsp;
98
+ <a href="#M000029">get_token</a>&nbsp;&nbsp;
99
+ <a href="#M000030">get_undelete_token</a>&nbsp;&nbsp;
100
+ <a href="#M000022">image_info</a>&nbsp;&nbsp;
101
+ <a href="#M000024">import</a>&nbsp;&nbsp;
102
+ <a href="#M000017">list</a>&nbsp;&nbsp;
103
+ <a href="#M000009">login</a>&nbsp;&nbsp;
104
+ <a href="#M000031">make_api_request</a>&nbsp;&nbsp;
105
+ <a href="#M000014">move</a>&nbsp;&nbsp;
106
+ <a href="#M000026">namespaces_by_prefix</a>&nbsp;&nbsp;
107
+ <a href="#M000008">new</a>&nbsp;&nbsp;
108
+ <a href="#M000021">redirect?</a>&nbsp;&nbsp;
109
+ <a href="#M000011">render</a>&nbsp;&nbsp;
110
+ <a href="#M000019">search</a>&nbsp;&nbsp;
111
+ <a href="#M000028">semantic_query</a>&nbsp;&nbsp;
112
+ <a href="#M000016">undelete</a>&nbsp;&nbsp;
113
+ <a href="#M000020">upload</a>&nbsp;&nbsp;
114
+ <a href="#M000033">valid_page?</a>&nbsp;&nbsp;
115
+ <a href="#M000034">warning</a>&nbsp;&nbsp;
115
116
  </div>
116
117
  </div>
117
118
 
@@ -151,11 +152,11 @@
151
152
  <div id="methods">
152
153
  <h3 class="section-bar">Public Class methods</h3>
153
154
 
154
- <div id="method-M000007" class="method-detail">
155
- <a name="M000007"></a>
155
+ <div id="method-M000008" class="method-detail">
156
+ <a name="M000008"></a>
156
157
 
157
158
  <div class="method-heading">
158
- <a href="#M000007" class="method-signature">
159
+ <a href="#M000008" class="method-signature">
159
160
  <span class="method-name">new</span><span class="method-args">(url, options={})</span>
160
161
  </a>
161
162
  </div>
@@ -184,7 +185,7 @@ error.
184
185
 
185
186
  </dd>
186
187
  <dt>:limit</dt><dd>Maximum number of results returned per <a
187
- href="Gateway.html#M000017">search</a> (see <a
188
+ href="Gateway.html#M000019">search</a> (see <a
188
189
  href="http://www.mediawiki.org/wiki/API:Query_-_Lists#Limits">www.mediawiki.org/wiki/API:Query_-_Lists#Limits</a>),
189
190
  defaults to the <a href="../MediaWiki.html">MediaWiki</a> default of 500.
190
191
 
@@ -209,8 +210,8 @@ returns 503 Service Unavailable, defaults to 10 seconds.
209
210
  </dd>
210
211
  </dl>
211
212
  <p><a class="source-toggle" href="#"
212
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
213
- <div class="method-source-code" id="M000007-source">
213
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
214
+ <div class="method-source-code" id="M000008-source">
214
215
  <pre>
215
216
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 24</span>
216
217
  24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span>={})
@@ -235,18 +236,18 @@ returns 503 Service Unavailable, defaults to 10 seconds.
235
236
 
236
237
  <h3 class="section-bar">Public Instance methods</h3>
237
238
 
238
- <div id="method-M000016" class="method-detail">
239
- <a name="M000016"></a>
239
+ <div id="method-M000018" class="method-detail">
240
+ <a name="M000018"></a>
240
241
 
241
242
  <div class="method-heading">
242
- <a href="#M000016" class="method-signature">
243
+ <a href="#M000018" class="method-signature">
243
244
  <span class="method-name">backlinks</span><span class="method-args">(title, filter = &quot;all&quot;)</span>
244
245
  </a>
245
246
  </div>
246
247
 
247
248
  <div class="method-description">
248
249
  <p>
249
- Get a <a href="Gateway.html#M000015">list</a> of pages that link to a
250
+ Get a <a href="Gateway.html#M000017">list</a> of pages that link to a
250
251
  target page
251
252
  </p>
252
253
  <dl>
@@ -262,47 +263,47 @@ target page
262
263
  Returns array of page titles (empty if no matches)
263
264
  </p>
264
265
  <p><a class="source-toggle" href="#"
265
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
266
- <div class="method-source-code" id="M000016-source">
266
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
267
+ <div class="method-source-code" id="M000018-source">
267
268
  <pre>
268
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 196</span>
269
- 196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backlinks</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">filter</span> = <span class="ruby-value str">&quot;all&quot;</span>)
270
- 197: <span class="ruby-identifier">titles</span> = []
271
- 198: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
272
- 199: <span class="ruby-keyword kw">begin</span>
273
- 200: <span class="ruby-identifier">form_data</span> =
274
- 201: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
275
- 202: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
276
- 203: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
277
- 204: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
278
- 205: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>] }
279
- 206: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'blcontinue'</span>] = <span class="ruby-identifier">blcontinue</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">blcontinue</span>
280
- 207: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">blcontinue</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/backlinks/@blcontinue'</span>)
281
- 208: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <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">res</span>, <span class="ruby-value str">&quot;//bl&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
282
- 209: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
283
- 210: <span class="ruby-identifier">titles</span>
284
- 211: <span class="ruby-keyword kw">end</span>
269
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 203</span>
270
+ 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backlinks</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">filter</span> = <span class="ruby-value str">&quot;all&quot;</span>)
271
+ 204: <span class="ruby-identifier">titles</span> = []
272
+ 205: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
273
+ 206: <span class="ruby-keyword kw">begin</span>
274
+ 207: <span class="ruby-identifier">form_data</span> =
275
+ 208: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
276
+ 209: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
277
+ 210: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
278
+ 211: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
279
+ 212: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>] }
280
+ 213: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'blcontinue'</span>] = <span class="ruby-identifier">blcontinue</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">blcontinue</span>
281
+ 214: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">blcontinue</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/backlinks/@blcontinue'</span>)
282
+ 215: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <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">res</span>, <span class="ruby-value str">&quot;//bl&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
283
+ 216: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
284
+ 217: <span class="ruby-identifier">titles</span>
285
+ 218: <span class="ruby-keyword kw">end</span>
285
286
  </pre>
286
287
  </div>
287
288
  </div>
288
289
  </div>
289
290
 
290
- <div id="method-M000011" class="method-detail">
291
- <a name="M000011"></a>
291
+ <div id="method-M000012" class="method-detail">
292
+ <a name="M000012"></a>
292
293
 
293
294
  <div class="method-heading">
294
- <a href="#M000011" class="method-signature">
295
+ <a href="#M000012" class="method-signature">
295
296
  <span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
296
297
  </a>
297
298
  </div>
298
299
 
299
300
  <div class="method-description">
300
301
  <p>
301
- Create a <a href="Gateway.html#M000007">new</a> page, or overwrite an
302
+ Create a <a href="Gateway.html#M000008">new</a> page, or overwrite an
302
303
  existing one
303
304
  </p>
304
305
  <dl>
305
- <dt>title</dt><dd>Page title to <a href="Gateway.html#M000011">create</a> or overwrite,
306
+ <dt>title</dt><dd>Page title to <a href="Gateway.html#M000012">create</a> or overwrite,
306
307
  string
307
308
 
308
309
  </dd>
@@ -323,14 +324,15 @@ Options:
323
324
  <li>[:summary] Edit summary for history, string
324
325
 
325
326
  </li>
326
- <li>[:token] Use this existing edit token instead requesting a <a
327
- href="Gateway.html#M000007">new</a> one (useful for bulk loads)
327
+ <li>[:token] Use this existing <a href="Gateway.html#M000013">edit</a> token
328
+ instead requesting a <a href="Gateway.html#M000008">new</a> one (useful for
329
+ bulk loads)
328
330
 
329
331
  </li>
330
332
  </ul>
331
333
  <p><a class="source-toggle" href="#"
332
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
333
- <div class="method-source-code" id="M000011-source">
334
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
335
+ <div class="method-source-code" id="M000012-source">
334
336
  <pre>
335
337
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 116</span>
336
338
  116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
@@ -343,11 +345,11 @@ href="Gateway.html#M000007">new</a> one (useful for bulk loads)
343
345
  </div>
344
346
  </div>
345
347
 
346
- <div id="method-M000013" class="method-detail">
347
- <a name="M000013"></a>
348
+ <div id="method-M000015" class="method-detail">
349
+ <a name="M000015"></a>
348
350
 
349
351
  <div class="method-heading">
350
- <a href="#M000013" class="method-signature">
352
+ <a href="#M000015" class="method-signature">
351
353
  <span class="method-name">delete</span><span class="method-args">(title)</span>
352
354
  </a>
353
355
  </div>
@@ -358,29 +360,29 @@ Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
358
360
  support deleting multiple pages at a time.)
359
361
  </p>
360
362
  <dl>
361
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000013">delete</a>
363
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000015">delete</a>
362
364
 
363
365
  </dd>
364
366
  </dl>
365
367
  <p><a class="source-toggle" href="#"
366
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
367
- <div class="method-source-code" id="M000013-source">
368
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
369
+ <div class="method-source-code" id="M000015-source">
368
370
  <pre>
369
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 146</span>
370
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
371
- 147: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'delete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'delete'</span>, <span class="ruby-identifier">title</span>)}
372
- 148: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
373
- 149: <span class="ruby-keyword kw">end</span>
371
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 153</span>
372
+ 153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
373
+ 154: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'delete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'delete'</span>, <span class="ruby-identifier">title</span>)}
374
+ 155: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
375
+ 156: <span class="ruby-keyword kw">end</span>
374
376
  </pre>
375
377
  </div>
376
378
  </div>
377
379
  </div>
378
380
 
379
- <div id="method-M000021" class="method-detail">
380
- <a name="M000021"></a>
381
+ <div id="method-M000023" class="method-detail">
382
+ <a name="M000023"></a>
381
383
 
382
384
  <div class="method-heading">
383
- <a href="#M000021" class="method-signature">
385
+ <a href="#M000023" class="method-signature">
384
386
  <span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
385
387
  </a>
386
388
  </div>
@@ -388,36 +390,67 @@ support deleting multiple pages at a time.)
388
390
  <div class="method-description">
389
391
  <p>
390
392
  Download <em>file_name</em>. Returns file contents. All options are passed
391
- to <a href="Gateway.html#M000020">image_info</a> however
393
+ to <a href="Gateway.html#M000022">image_info</a> however
392
394
  options[&#8216;iiprop&#8217;] is forced to url. You can still set other
393
395
  options to control what file you want to <a
394
- href="Gateway.html#M000021">download</a>.
396
+ href="Gateway.html#M000023">download</a>.
395
397
  </p>
396
398
  <p><a class="source-toggle" href="#"
397
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
398
- <div class="method-source-code" id="M000021-source">
399
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
400
+ <div class="method-source-code" id="M000023-source">
399
401
  <pre>
400
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 381</span>
401
- 381: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">download</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>={})
402
- 382: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
403
- 383:
404
- 384: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>)
405
- 385: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
406
- 386: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'url'</span>]
407
- 387: <span class="ruby-keyword kw">else</span>
408
- 388: <span class="ruby-keyword kw">nil</span>
409
- 389: <span class="ruby-keyword kw">end</span>
410
- 390: <span class="ruby-keyword kw">end</span>
402
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 388</span>
403
+ 388: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">download</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>={})
404
+ 389: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
405
+ 390:
406
+ 391: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>)
407
+ 392: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
408
+ 393: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'url'</span>]
409
+ 394: <span class="ruby-keyword kw">else</span>
410
+ 395: <span class="ruby-keyword kw">nil</span>
411
+ 396: <span class="ruby-keyword kw">end</span>
412
+ 397: <span class="ruby-keyword kw">end</span>
411
413
  </pre>
412
414
  </div>
413
415
  </div>
414
416
  </div>
415
417
 
416
- <div id="method-M000023" class="method-detail">
417
- <a name="M000023"></a>
418
+ <div id="method-M000013" class="method-detail">
419
+ <a name="M000013"></a>
418
420
 
419
421
  <div class="method-heading">
420
- <a href="#M000023" class="method-signature">
422
+ <a href="#M000013" class="method-signature">
423
+ <span class="method-name">edit</span><span class="method-args">(title, content, options={})</span>
424
+ </a>
425
+ </div>
426
+
427
+ <div class="method-description">
428
+ <p>
429
+ Edit page
430
+ </p>
431
+ <p>
432
+ Same options as <a href="Gateway.html#M000012">create</a>, but always
433
+ overwrites existing pages (and creates them if they don&#8216;t exist
434
+ already).
435
+ </p>
436
+ <p><a class="source-toggle" href="#"
437
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
438
+ <div class="method-source-code" id="M000013-source">
439
+ <pre>
440
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 125</span>
441
+ 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
442
+ 126: <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, {<span class="ruby-identifier">:overwrite</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>))
443
+ 127: <span class="ruby-keyword kw">end</span>
444
+ </pre>
445
+ </div>
446
+ </div>
447
+ </div>
448
+
449
+ <div id="method-M000025" class="method-detail">
450
+ <a name="M000025"></a>
451
+
452
+ <div class="method-heading">
453
+ <a href="#M000025" class="method-signature">
421
454
  <span class="method-name">export</span><span class="method-args">(page_titles)</span>
422
455
  </a>
423
456
  </div>
@@ -435,61 +468,61 @@ Exports a page or set of pages
435
468
  Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
436
469
  </p>
437
470
  <p><a class="source-toggle" href="#"
438
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
439
- <div class="method-source-code" id="M000023-source">
471
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
472
+ <div class="method-source-code" id="M000025-source">
440
473
  <pre>
441
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 412</span>
442
- 412: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
443
- 413: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-identifier">page_titles</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>), <span class="ruby-value str">'export'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'exportnowrap'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>}
444
- 414: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
445
- 415: <span class="ruby-keyword kw">end</span>
474
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 419</span>
475
+ 419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
476
+ 420: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-identifier">page_titles</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>), <span class="ruby-value str">'export'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'exportnowrap'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>}
477
+ 421: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
478
+ 422: <span class="ruby-keyword kw">end</span>
446
479
  </pre>
447
480
  </div>
448
481
  </div>
449
482
  </div>
450
483
 
451
- <div id="method-M000025" class="method-detail">
452
- <a name="M000025"></a>
484
+ <div id="method-M000027" class="method-detail">
485
+ <a name="M000027"></a>
453
486
 
454
487
  <div class="method-heading">
455
- <a href="#M000025" class="method-signature">
488
+ <a href="#M000027" class="method-signature">
456
489
  <span class="method-name">extensions</span><span class="method-args">()</span>
457
490
  </a>
458
491
  </div>
459
492
 
460
493
  <div class="method-description">
461
494
  <p>
462
- Get a <a href="Gateway.html#M000015">list</a> of all installed (and
463
- registered) <a href="Gateway.html#M000025">extensions</a>
495
+ Get a <a href="Gateway.html#M000017">list</a> of all installed (and
496
+ registered) <a href="Gateway.html#M000027">extensions</a>
464
497
  </p>
465
498
  <p>
466
- Returns array of <a href="Gateway.html#M000025">extensions</a> (name =&gt;
499
+ Returns array of <a href="Gateway.html#M000027">extensions</a> (name =&gt;
467
500
  version)
468
501
  </p>
469
502
  <p><a class="source-toggle" href="#"
470
- onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
471
- <div class="method-source-code" id="M000025-source">
503
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
504
+ <div class="method-source-code" id="M000027-source">
472
505
  <pre>
473
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 433</span>
474
- 433: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
475
- 434: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'extensions'</span> }
476
- 435: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
477
- 436: <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">res</span>, <span class="ruby-value str">&quot;//ext&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">extensions</span>, <span class="ruby-identifier">extension</span><span class="ruby-operator">|</span>
478
- 437: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;name&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
479
- 438: <span class="ruby-identifier">extensions</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;version&quot;</span>]
480
- 439: <span class="ruby-identifier">extensions</span>
481
- 440: <span class="ruby-keyword kw">end</span>
482
- 441: <span class="ruby-keyword kw">end</span>
506
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 440</span>
507
+ 440: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
508
+ 441: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'extensions'</span> }
509
+ 442: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
510
+ 443: <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">res</span>, <span class="ruby-value str">&quot;//ext&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">extensions</span>, <span class="ruby-identifier">extension</span><span class="ruby-operator">|</span>
511
+ 444: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;name&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
512
+ 445: <span class="ruby-identifier">extensions</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;version&quot;</span>]
513
+ 446: <span class="ruby-identifier">extensions</span>
514
+ 447: <span class="ruby-keyword kw">end</span>
515
+ 448: <span class="ruby-keyword kw">end</span>
483
516
  </pre>
484
517
  </div>
485
518
  </div>
486
519
  </div>
487
520
 
488
- <div id="method-M000009" class="method-detail">
489
- <a name="M000009"></a>
521
+ <div id="method-M000010" class="method-detail">
522
+ <a name="M000010"></a>
490
523
 
491
524
  <div class="method-heading">
492
- <a href="#M000009" class="method-signature">
525
+ <a href="#M000010" class="method-signature">
493
526
  <span class="method-name">get</span><span class="method-args">(page_title)</span>
494
527
  </a>
495
528
  </div>
@@ -508,8 +541,8 @@ href="../MediaWiki.html">MediaWiki</a> format. Does not follow redirects.
508
541
  Returns content of page as string, nil if the page does not exist.
509
542
  </p>
510
543
  <p><a class="source-toggle" href="#"
511
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
512
- <div class="method-source-code" id="M000009-source">
544
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
545
+ <div class="method-source-code" id="M000010-source">
513
546
  <pre>
514
547
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 61</span>
515
548
  61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
@@ -524,11 +557,11 @@ Returns content of page as string, nil if the page does not exist.
524
557
  </div>
525
558
  </div>
526
559
 
527
- <div id="method-M000020" class="method-detail">
528
- <a name="M000020"></a>
560
+ <div id="method-M000022" class="method-detail">
561
+ <a name="M000022"></a>
529
562
 
530
563
  <div class="method-heading">
531
- <a href="#M000020" class="method-signature">
564
+ <a href="#M000022" class="method-signature">
532
565
  <span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
533
566
  </a>
534
567
  </div>
@@ -580,49 +613,49 @@ Output:
580
613
  &quot;user&quot; =&gt; &quot;Valdas&quot;
581
614
  </pre>
582
615
  <p><a class="source-toggle" href="#"
583
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
584
- <div class="method-source-code" id="M000020-source">
616
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
617
+ <div class="method-source-code" id="M000022-source">
585
618
  <pre>
586
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 348</span>
587
- 348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name_or_page_id</span>, <span class="ruby-identifier">options</span>={})
588
- 349: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>) \
589
- 350: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:join</span>)
590
- 351: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
591
- 352: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
592
- 353: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
593
- 354: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
594
- 355: )
595
- 356:
596
- 357: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
597
- 358: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
598
- 359: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
599
- 360: <span class="ruby-keyword kw">else</span>
600
- 361: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'titles'</span>] = <span class="ruby-node">&quot;File:#{file_name_or_page_id}&quot;</span>
601
- 362: <span class="ruby-keyword kw">end</span>
619
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 355</span>
620
+ 355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name_or_page_id</span>, <span class="ruby-identifier">options</span>={})
621
+ 356: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>) \
622
+ 357: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:join</span>)
623
+ 358: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
624
+ 359: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
625
+ 360: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
626
+ 361: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
627
+ 362: )
602
628
  363:
603
- 364: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
604
- 365: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
605
- 366: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
606
- 367: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/redirects/r&quot;</span>]
607
- 368: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
608
- 369: <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;pageid&quot;</span>].<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">options</span>)
609
- 370: <span class="ruby-keyword kw">else</span>
610
- 371: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;imageinfo/ii&quot;</span>].<span class="ruby-identifier">attributes</span>
611
- 372: <span class="ruby-keyword kw">end</span>
612
- 373: <span class="ruby-keyword kw">else</span>
613
- 374: <span class="ruby-keyword kw">nil</span>
614
- 375: <span class="ruby-keyword kw">end</span>
615
- 376: <span class="ruby-keyword kw">end</span>
629
+ 364: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
630
+ 365: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
631
+ 366: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
632
+ 367: <span class="ruby-keyword kw">else</span>
633
+ 368: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'titles'</span>] = <span class="ruby-node">&quot;File:#{file_name_or_page_id}&quot;</span>
634
+ 369: <span class="ruby-keyword kw">end</span>
635
+ 370:
636
+ 371: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
637
+ 372: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
638
+ 373: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
639
+ 374: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/redirects/r&quot;</span>]
640
+ 375: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
641
+ 376: <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;pageid&quot;</span>].<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">options</span>)
642
+ 377: <span class="ruby-keyword kw">else</span>
643
+ 378: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;imageinfo/ii&quot;</span>].<span class="ruby-identifier">attributes</span>
644
+ 379: <span class="ruby-keyword kw">end</span>
645
+ 380: <span class="ruby-keyword kw">else</span>
646
+ 381: <span class="ruby-keyword kw">nil</span>
647
+ 382: <span class="ruby-keyword kw">end</span>
648
+ 383: <span class="ruby-keyword kw">end</span>
616
649
  </pre>
617
650
  </div>
618
651
  </div>
619
652
  </div>
620
653
 
621
- <div id="method-M000022" class="method-detail">
622
- <a name="M000022"></a>
654
+ <div id="method-M000024" class="method-detail">
655
+ <a name="M000024"></a>
623
656
 
624
657
  <div class="method-heading">
625
- <a href="#M000022" class="method-signature">
658
+ <a href="#M000024" class="method-signature">
626
659
  <span class="method-name">import</span><span class="method-args">(xmlfile)</span>
627
660
  </a>
628
661
  </div>
@@ -638,39 +671,39 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
638
671
  </dl>
639
672
  <p>
640
673
  Returns XML array &lt;api&gt;&lt;<a
641
- href="Gateway.html#M000022">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
674
+ href="Gateway.html#M000024">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
642
675
  &lt;page revisions=&quot;1&quot;&gt; (or more) means successfully imported
643
676
  &lt;page revisions=&quot;0&quot;&gt; means duplicate, not imported
644
677
  </p>
645
678
  <p><a class="source-toggle" href="#"
646
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
647
- <div class="method-source-code" id="M000022-source">
679
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
680
+ <div class="method-source-code" id="M000024-source">
648
681
  <pre>
649
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 399</span>
650
- 399: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
651
- 400: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">&quot;action&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;import&quot;</span>,
652
- 401: <span class="ruby-value str">&quot;xml&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xmlfile</span>),
653
- 402: <span class="ruby-value str">&quot;token&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'import'</span>, <span class="ruby-value str">'Main Page'</span>), <span class="ruby-comment cmt"># NB: dummy page name</span>
654
- 403: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
655
- 404: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
656
- 405: <span class="ruby-keyword kw">end</span>
682
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 406</span>
683
+ 406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
684
+ 407: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">&quot;action&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;import&quot;</span>,
685
+ 408: <span class="ruby-value str">&quot;xml&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xmlfile</span>),
686
+ 409: <span class="ruby-value str">&quot;token&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'import'</span>, <span class="ruby-value str">'Main Page'</span>), <span class="ruby-comment cmt"># NB: dummy page name</span>
687
+ 410: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
688
+ 411: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
689
+ 412: <span class="ruby-keyword kw">end</span>
657
690
  </pre>
658
691
  </div>
659
692
  </div>
660
693
  </div>
661
694
 
662
- <div id="method-M000015" class="method-detail">
663
- <a name="M000015"></a>
695
+ <div id="method-M000017" class="method-detail">
696
+ <a name="M000017"></a>
664
697
 
665
698
  <div class="method-heading">
666
- <a href="#M000015" class="method-signature">
699
+ <a href="#M000017" class="method-signature">
667
700
  <span class="method-name">list</span><span class="method-args">(key)</span>
668
701
  </a>
669
702
  </div>
670
703
 
671
704
  <div class="method-description">
672
705
  <p>
673
- Get a <a href="Gateway.html#M000015">list</a> of matching page titles in a
706
+ Get a <a href="Gateway.html#M000017">list</a> of matching page titles in a
674
707
  namespace
675
708
  </p>
676
709
  <dl>
@@ -683,38 +716,38 @@ defaults to main (namespace 0) if none given.
683
716
  Returns array of page titles (empty if no matches)
684
717
  </p>
685
718
  <p><a class="source-toggle" href="#"
686
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
687
- <div class="method-source-code" id="M000015-source">
719
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
720
+ <div class="method-source-code" id="M000017-source">
688
721
  <pre>
689
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 171</span>
690
- 171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
691
- 172: <span class="ruby-identifier">titles</span> = []
692
- 173: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
693
- 174: <span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;:&quot;</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">reverse</span>
694
- 175: <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">namespace</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
695
- 176: <span class="ruby-keyword kw">begin</span>
696
- 177: <span class="ruby-identifier">form_data</span> =
697
- 178: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
698
- 179: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
699
- 180: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
700
- 181: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
701
- 182: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>],
702
- 183: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
703
- 184: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/allpages/@apfrom'</span>)
704
- 185: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <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">res</span>, <span class="ruby-value str">&quot;//p&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
705
- 186: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
706
- 187: <span class="ruby-identifier">titles</span>
707
- 188: <span class="ruby-keyword kw">end</span>
722
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 178</span>
723
+ 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
724
+ 179: <span class="ruby-identifier">titles</span> = []
725
+ 180: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
726
+ 181: <span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;:&quot;</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">reverse</span>
727
+ 182: <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">namespace</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
728
+ 183: <span class="ruby-keyword kw">begin</span>
729
+ 184: <span class="ruby-identifier">form_data</span> =
730
+ 185: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
731
+ 186: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
732
+ 187: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
733
+ 188: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
734
+ 189: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>],
735
+ 190: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
736
+ 191: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/allpages/@apfrom'</span>)
737
+ 192: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <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">res</span>, <span class="ruby-value str">&quot;//p&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
738
+ 193: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
739
+ 194: <span class="ruby-identifier">titles</span>
740
+ 195: <span class="ruby-keyword kw">end</span>
708
741
  </pre>
709
742
  </div>
710
743
  </div>
711
744
  </div>
712
745
 
713
- <div id="method-M000008" class="method-detail">
714
- <a name="M000008"></a>
746
+ <div id="method-M000009" class="method-detail">
747
+ <a name="M000009"></a>
715
748
 
716
749
  <div class="method-heading">
717
- <a href="#M000008" class="method-signature">
750
+ <a href="#M000009" class="method-signature">
718
751
  <span class="method-name">login</span><span class="method-args">(username, password, domain = 'local')</span>
719
752
  </a>
720
753
  </div>
@@ -736,11 +769,11 @@ defaults to &#8216;local&#8217; if not given
736
769
  </dd>
737
770
  </dl>
738
771
  <p>
739
- Throws error if <a href="Gateway.html#M000008">login</a> fails
772
+ Throws error if <a href="Gateway.html#M000009">login</a> fails
740
773
  </p>
741
774
  <p><a class="source-toggle" href="#"
742
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
743
- <div class="method-source-code" id="M000008-source">
775
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
776
+ <div class="method-source-code" id="M000009-source">
744
777
  <pre>
745
778
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 49</span>
746
779
  49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">login</span>(<span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">domain</span> = <span class="ruby-value str">'local'</span>)
@@ -754,18 +787,18 @@ Throws error if <a href="Gateway.html#M000008">login</a> fails
754
787
  </div>
755
788
  </div>
756
789
 
757
- <div id="method-M000012" class="method-detail">
758
- <a name="M000012"></a>
790
+ <div id="method-M000014" class="method-detail">
791
+ <a name="M000014"></a>
759
792
 
760
793
  <div class="method-heading">
761
- <a href="#M000012" class="method-signature">
794
+ <a href="#M000014" class="method-signature">
762
795
  <span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
763
796
  </a>
764
797
  </div>
765
798
 
766
799
  <div class="method-description">
767
800
  <p>
768
- Move a page to a <a href="Gateway.html#M000007">new</a> title
801
+ Move a page to a <a href="Gateway.html#M000008">new</a> title
769
802
  </p>
770
803
  <dl>
771
804
  <dt>from</dt><dd>Old page name
@@ -788,13 +821,13 @@ Options:
788
821
  <li>[:movetalk] Move associated talkpages
789
822
 
790
823
  </li>
791
- <li>[:noredirect] Do not <a href="Gateway.html#M000011">create</a> a redirect
824
+ <li>[:noredirect] Do not <a href="Gateway.html#M000012">create</a> a redirect
792
825
  page from old name. Requires the &#8216;suppressredirect&#8217; user right,
793
826
  otherwise MW will silently ignore the option and <a
794
- href="Gateway.html#M000011">create</a> the redirect anyway.
827
+ href="Gateway.html#M000012">create</a> the redirect anyway.
795
828
 
796
829
  </li>
797
- <li>[:reason] Reason for <a href="Gateway.html#M000012">move</a>
830
+ <li>[:reason] Reason for <a href="Gateway.html#M000014">move</a>
798
831
 
799
832
  </li>
800
833
  <li>[:watch] Add page and any redirect to watchlist
@@ -805,62 +838,62 @@ href="Gateway.html#M000011">create</a> the redirect anyway.
805
838
  </li>
806
839
  </ul>
807
840
  <p><a class="source-toggle" href="#"
808
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
809
- <div class="method-source-code" id="M000012-source">
841
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
842
+ <div class="method-source-code" id="M000014-source">
810
843
  <pre>
811
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 135</span>
812
- 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move</span>(<span class="ruby-identifier">from</span>, <span class="ruby-identifier">to</span>, <span class="ruby-identifier">options</span>={})
813
- 136: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk noredirect reason watch unwatch)</span>
814
- 137: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unknown option '#{opt}'&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
815
- 138:
816
- 139: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'move'</span>, <span class="ruby-value str">'from'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">from</span>, <span class="ruby-value str">'to'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'move'</span>, <span class="ruby-identifier">from</span>)})
817
- 140: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
818
- 141: <span class="ruby-keyword kw">end</span>
844
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 142</span>
845
+ 142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move</span>(<span class="ruby-identifier">from</span>, <span class="ruby-identifier">to</span>, <span class="ruby-identifier">options</span>={})
846
+ 143: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk noredirect reason watch unwatch)</span>
847
+ 144: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unknown option '#{opt}'&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
848
+ 145:
849
+ 146: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'move'</span>, <span class="ruby-value str">'from'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">from</span>, <span class="ruby-value str">'to'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'move'</span>, <span class="ruby-identifier">from</span>)})
850
+ 147: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
851
+ 148: <span class="ruby-keyword kw">end</span>
819
852
  </pre>
820
853
  </div>
821
854
  </div>
822
855
  </div>
823
856
 
824
- <div id="method-M000024" class="method-detail">
825
- <a name="M000024"></a>
857
+ <div id="method-M000026" class="method-detail">
858
+ <a name="M000026"></a>
826
859
 
827
860
  <div class="method-heading">
828
- <a href="#M000024" class="method-signature">
861
+ <a href="#M000026" class="method-signature">
829
862
  <span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
830
863
  </a>
831
864
  </div>
832
865
 
833
866
  <div class="method-description">
834
867
  <p>
835
- Get a <a href="Gateway.html#M000015">list</a> of all known namespaces
868
+ Get a <a href="Gateway.html#M000017">list</a> of all known namespaces
836
869
  </p>
837
870
  <p>
838
871
  Returns array of namespaces (name =&gt; id)
839
872
  </p>
840
873
  <p><a class="source-toggle" href="#"
841
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
842
- <div class="method-source-code" id="M000024-source">
874
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
875
+ <div class="method-source-code" id="M000026-source">
843
876
  <pre>
844
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 420</span>
845
- 420: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
846
- 421: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'namespaces'</span> }
847
- 422: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
848
- 423: <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">res</span>, <span class="ruby-value str">&quot;//ns&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespaces</span>, <span class="ruby-identifier">namespace</span><span class="ruby-operator">|</span>
849
- 424: <span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;canonical&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
850
- 425: <span class="ruby-identifier">namespaces</span>[<span class="ruby-identifier">prefix</span>] = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;id&quot;</span>].<span class="ruby-identifier">to_i</span>
851
- 426: <span class="ruby-identifier">namespaces</span>
852
- 427: <span class="ruby-keyword kw">end</span>
853
- 428: <span class="ruby-keyword kw">end</span>
877
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 427</span>
878
+ 427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
879
+ 428: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'namespaces'</span> }
880
+ 429: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
881
+ 430: <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">res</span>, <span class="ruby-value str">&quot;//ns&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespaces</span>, <span class="ruby-identifier">namespace</span><span class="ruby-operator">|</span>
882
+ 431: <span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;canonical&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
883
+ 432: <span class="ruby-identifier">namespaces</span>[<span class="ruby-identifier">prefix</span>] = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;id&quot;</span>].<span class="ruby-identifier">to_i</span>
884
+ 433: <span class="ruby-identifier">namespaces</span>
885
+ 434: <span class="ruby-keyword kw">end</span>
886
+ 435: <span class="ruby-keyword kw">end</span>
854
887
  </pre>
855
888
  </div>
856
889
  </div>
857
890
  </div>
858
891
 
859
- <div id="method-M000019" class="method-detail">
860
- <a name="M000019"></a>
892
+ <div id="method-M000021" class="method-detail">
893
+ <a name="M000021"></a>
861
894
 
862
895
  <div class="method-heading">
863
- <a href="#M000019" class="method-signature">
896
+ <a href="#M000021" class="method-signature">
864
897
  <span class="method-name">redirect?</span><span class="method-args">(page_title)</span>
865
898
  </a>
866
899
  </div>
@@ -879,25 +912,25 @@ Returns true if the page is a redirect, false if it is not or the page does
879
912
  not exist.
880
913
  </p>
881
914
  <p><a class="source-toggle" href="#"
882
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
883
- <div class="method-source-code" id="M000019-source">
915
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
916
+ <div class="method-source-code" id="M000021-source">
884
917
  <pre>
885
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 316</span>
886
- 316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect?</span>(<span class="ruby-identifier">page_title</span>)
887
- 317: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
888
- 318: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
889
- 319: <span class="ruby-operator">!</span><span class="ruby-operator">!</span>(<span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;redirect&quot;</span>])
890
- 320: <span class="ruby-keyword kw">end</span>
918
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 323</span>
919
+ 323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect?</span>(<span class="ruby-identifier">page_title</span>)
920
+ 324: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
921
+ 325: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
922
+ 326: <span class="ruby-operator">!</span><span class="ruby-operator">!</span>(<span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;redirect&quot;</span>])
923
+ 327: <span class="ruby-keyword kw">end</span>
891
924
  </pre>
892
925
  </div>
893
926
  </div>
894
927
  </div>
895
928
 
896
- <div id="method-M000010" class="method-detail">
897
- <a name="M000010"></a>
929
+ <div id="method-M000011" class="method-detail">
930
+ <a name="M000011"></a>
898
931
 
899
932
  <div class="method-heading">
900
- <a href="#M000010" class="method-signature">
933
+ <a href="#M000011" class="method-signature">
901
934
  <span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
902
935
  </a>
903
936
  </div>
@@ -922,7 +955,8 @@ Options:
922
955
  &#8217;/wiki/&#8217; is assumed to be the base of a relative link
923
956
 
924
957
  </li>
925
- <li>[:noeditsections] strips all edit-links if set to <tt>true</tt>
958
+ <li>[:noeditsections] strips all <a href="Gateway.html#M000013">edit</a>-links
959
+ if set to <tt>true</tt>
926
960
 
927
961
  </li>
928
962
  <li>[:noimages] strips all <tt>img</tt> tags from the rendered text if set to
@@ -934,8 +968,8 @@ Options:
934
968
  Returns rendered page as string, or nil if the page does not exist
935
969
  </p>
936
970
  <p><a class="source-toggle" href="#"
937
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
938
- <div class="method-source-code" id="M000010-source">
971
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
972
+ <div class="method-source-code" id="M000011-source">
939
973
  <pre>
940
974
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 80</span>
941
975
  80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">page_title</span>, <span class="ruby-identifier">options</span> = {})
@@ -968,25 +1002,25 @@ Returns rendered page as string, or nil if the page does not exist
968
1002
  </div>
969
1003
  </div>
970
1004
 
971
- <div id="method-M000017" class="method-detail">
972
- <a name="M000017"></a>
1005
+ <div id="method-M000019" class="method-detail">
1006
+ <a name="M000019"></a>
973
1007
 
974
1008
  <div class="method-heading">
975
- <a href="#M000017" class="method-signature">
1009
+ <a href="#M000019" class="method-signature">
976
1010
  <span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=@options[:limit])</span>
977
1011
  </a>
978
1012
  </div>
979
1013
 
980
1014
  <div class="method-description">
981
1015
  <p>
982
- Get a <a href="Gateway.html#M000015">list</a> of pages with matching
1016
+ Get a <a href="Gateway.html#M000017">list</a> of pages with matching
983
1017
  content in given namespaces
984
1018
  </p>
985
1019
  <dl>
986
1020
  <dt>key</dt><dd>Search key
987
1021
 
988
1022
  </dd>
989
- <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000017">search</a>
1023
+ <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000019">search</a>
990
1024
  (defaults to main only)
991
1025
 
992
1026
  </dd>
@@ -999,42 +1033,42 @@ Foundation wikis allow only 50 for normal users)
999
1033
  Returns array of page titles (empty if no matches)
1000
1034
  </p>
1001
1035
  <p><a class="source-toggle" href="#"
1002
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1003
- <div class="method-source-code" id="M000017-source">
1036
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
1037
+ <div class="method-source-code" id="M000019-source">
1004
1038
  <pre>
1005
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 220</span>
1006
- 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespaces</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">limit</span>=<span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>])
1007
- 221: <span class="ruby-identifier">titles</span> = []
1008
- 222: <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">nil</span>
1009
- 223: <span class="ruby-identifier">in_progress</span> = <span class="ruby-keyword kw">true</span>
1010
- 224:
1011
- 225: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
1012
- 226: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
1013
- 227: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
1014
- 228: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
1015
- 229: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>
1016
- 230: }
1017
- 231: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
1018
- 232: <span class="ruby-identifier">namespaces</span> = [ <span class="ruby-identifier">namespaces</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>
1019
- 233: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'srnamespace'</span>] = <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ns</span><span class="ruby-operator">|</span> <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">ns</span>] <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
1020
- 234: <span class="ruby-keyword kw">end</span>
1021
- 235: <span class="ruby-keyword kw">begin</span>
1022
- 236: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'sroffset'</span>] = <span class="ruby-identifier">offset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">offset</span>
1023
- 237: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/search/@sroffset'</span>)
1024
- 238: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <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">res</span>, <span class="ruby-value str">&quot;//p&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
1025
- 239: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">offset</span>
1026
- 240: <span class="ruby-identifier">titles</span>
1027
- 241: <span class="ruby-keyword kw">end</span>
1039
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 227</span>
1040
+ 227: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespaces</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">limit</span>=<span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>])
1041
+ 228: <span class="ruby-identifier">titles</span> = []
1042
+ 229: <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">nil</span>
1043
+ 230: <span class="ruby-identifier">in_progress</span> = <span class="ruby-keyword kw">true</span>
1044
+ 231:
1045
+ 232: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
1046
+ 233: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
1047
+ 234: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
1048
+ 235: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
1049
+ 236: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>
1050
+ 237: }
1051
+ 238: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
1052
+ 239: <span class="ruby-identifier">namespaces</span> = [ <span class="ruby-identifier">namespaces</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>
1053
+ 240: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'srnamespace'</span>] = <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ns</span><span class="ruby-operator">|</span> <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">ns</span>] <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
1054
+ 241: <span class="ruby-keyword kw">end</span>
1055
+ 242: <span class="ruby-keyword kw">begin</span>
1056
+ 243: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'sroffset'</span>] = <span class="ruby-identifier">offset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">offset</span>
1057
+ 244: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/search/@sroffset'</span>)
1058
+ 245: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <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">res</span>, <span class="ruby-value str">&quot;//p&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
1059
+ 246: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">offset</span>
1060
+ 247: <span class="ruby-identifier">titles</span>
1061
+ 248: <span class="ruby-keyword kw">end</span>
1028
1062
  </pre>
1029
1063
  </div>
1030
1064
  </div>
1031
1065
  </div>
1032
1066
 
1033
- <div id="method-M000026" class="method-detail">
1034
- <a name="M000026"></a>
1067
+ <div id="method-M000028" class="method-detail">
1068
+ <a name="M000028"></a>
1035
1069
 
1036
1070
  <div class="method-heading">
1037
- <a href="#M000026" class="method-signature">
1071
+ <a href="#M000028" class="method-signature">
1038
1072
  <span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
1039
1073
  </a>
1040
1074
  </div>
@@ -1056,26 +1090,26 @@ Execute Semantic Mediawiki query
1056
1090
  Returns result as an HTML string
1057
1091
  </p>
1058
1092
  <p><a class="source-toggle" href="#"
1059
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
1060
- <div class="method-source-code" id="M000026-source">
1093
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1094
+ <div class="method-source-code" id="M000028-source">
1061
1095
  <pre>
1062
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 449</span>
1063
- 449: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">semantic_query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span> = [])
1064
- 450: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
1065
- 451: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'parse'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>, <span class="ruby-value str">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;{{#ask:#{query}|#{params.join('|')}}}&quot;</span> }
1066
- 452: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1067
- 453: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;parse/text&quot;</span>].<span class="ruby-identifier">text</span>
1068
- 454: <span class="ruby-keyword kw">end</span>
1096
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 456</span>
1097
+ 456: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">semantic_query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span> = [])
1098
+ 457: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
1099
+ 458: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'parse'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>, <span class="ruby-value str">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;{{#ask:#{query}|#{params.join('|')}}}&quot;</span> }
1100
+ 459: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1101
+ 460: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;parse/text&quot;</span>].<span class="ruby-identifier">text</span>
1102
+ 461: <span class="ruby-keyword kw">end</span>
1069
1103
  </pre>
1070
1104
  </div>
1071
1105
  </div>
1072
1106
  </div>
1073
1107
 
1074
- <div id="method-M000014" class="method-detail">
1075
- <a name="M000014"></a>
1108
+ <div id="method-M000016" class="method-detail">
1109
+ <a name="M000016"></a>
1076
1110
 
1077
1111
  <div class="method-heading">
1078
- <a href="#M000014" class="method-signature">
1112
+ <a href="#M000016" class="method-signature">
1079
1113
  <span class="method-name">undelete</span><span class="method-args">(title)</span>
1080
1114
  </a>
1081
1115
  </div>
@@ -1085,45 +1119,45 @@ Returns result as an HTML string
1085
1119
  Undelete all revisions of one page.
1086
1120
  </p>
1087
1121
  <dl>
1088
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000014">undelete</a>
1122
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000016">undelete</a>
1089
1123
 
1090
1124
  </dd>
1091
1125
  </dl>
1092
1126
  <p>
1093
1127
  Returns number of revisions undeleted, or zero if nothing to <a
1094
- href="Gateway.html#M000014">undelete</a>
1128
+ href="Gateway.html#M000016">undelete</a>
1095
1129
  </p>
1096
1130
  <p><a class="source-toggle" href="#"
1097
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
1098
- <div class="method-source-code" id="M000014-source">
1131
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
1132
+ <div class="method-source-code" id="M000016-source">
1099
1133
  <pre>
1100
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 156</span>
1101
- 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
1102
- 157: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
1103
- 158: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
1104
- 159: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'undelete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">token</span> }
1105
- 160: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;undelete&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;revisions&quot;</span>].<span class="ruby-identifier">to_i</span>
1106
- 161: <span class="ruby-keyword kw">else</span>
1107
- 162: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1108
- 163: <span class="ruby-keyword kw">end</span>
1109
- 164: <span class="ruby-keyword kw">end</span>
1134
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 163</span>
1135
+ 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
1136
+ 164: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
1137
+ 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
1138
+ 166: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'undelete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">token</span> }
1139
+ 167: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;undelete&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;revisions&quot;</span>].<span class="ruby-identifier">to_i</span>
1140
+ 168: <span class="ruby-keyword kw">else</span>
1141
+ 169: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1142
+ 170: <span class="ruby-keyword kw">end</span>
1143
+ 171: <span class="ruby-keyword kw">end</span>
1110
1144
  </pre>
1111
1145
  </div>
1112
1146
  </div>
1113
1147
  </div>
1114
1148
 
1115
- <div id="method-M000018" class="method-detail">
1116
- <a name="M000018"></a>
1149
+ <div id="method-M000020" class="method-detail">
1150
+ <a name="M000020"></a>
1117
1151
 
1118
1152
  <div class="method-heading">
1119
- <a href="#M000018" class="method-signature">
1153
+ <a href="#M000020" class="method-signature">
1120
1154
  <span class="method-name">upload</span><span class="method-args">(path, options={})</span>
1121
1155
  </a>
1122
1156
  </div>
1123
1157
 
1124
1158
  <div class="method-description">
1125
1159
  <p>
1126
- Upload a file, or <a href="Gateway.html#M000009">get</a> the status of
1160
+ Upload a file, or <a href="Gateway.html#M000010">get</a> the status of
1127
1161
  pending uploads. Several methods are available:
1128
1162
  </p>
1129
1163
  <ul>
@@ -1142,7 +1176,7 @@ Requires Mediawiki 1.16+
1142
1176
  Arguments:
1143
1177
  </p>
1144
1178
  <ul>
1145
- <li>[path] Path to file to <a href="Gateway.html#M000018">upload</a>. Set to
1179
+ <li>[path] Path to file to <a href="Gateway.html#M000020">upload</a>. Set to
1146
1180
  nil if uploading from URL.
1147
1181
 
1148
1182
  </li>
@@ -1152,7 +1186,7 @@ nil if uploading from URL.
1152
1186
  </ul>
1153
1187
  <p>
1154
1188
  Note that queries using session keys must be done in the same <a
1155
- href="Gateway.html#M000008">login</a> session as the query that originally
1189
+ href="Gateway.html#M000009">login</a> session as the query that originally
1156
1190
  returned the key (i.e. do not log out and then log back in).
1157
1191
  </p>
1158
1192
  <p>
@@ -1164,12 +1198,12 @@ given), options[:target] is alias for this.
1164
1198
 
1165
1199
  </li>
1166
1200
  <li>&#8216;comment&#8217; - Upload comment. Also used as the initial page text
1167
- for <a href="Gateway.html#M000007">new</a> files if &quot;text&quot; is not
1201
+ for <a href="Gateway.html#M000008">new</a> files if &quot;text&quot; is not
1168
1202
  specified.
1169
1203
 
1170
1204
  </li>
1171
1205
  <li>&#8216;text&#8217; - Initial page text for <a
1172
- href="Gateway.html#M000007">new</a> files
1206
+ href="Gateway.html#M000008">new</a> files
1173
1207
 
1174
1208
  </li>
1175
1209
  <li>&#8216;watch&#8217; - Watch the page
@@ -1206,43 +1240,43 @@ Examples:
1206
1240
  mw.upload(nil, 'filename' =&gt; &quot;RemoteFile2.jpg&quot;, 'url' =&gt; 'http://remote.com/server/file.jpg')
1207
1241
  </pre>
1208
1242
  <p><a class="source-toggle" href="#"
1209
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
1210
- <div class="method-source-code" id="M000018-source">
1243
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1244
+ <div class="method-source-code" id="M000020-source">
1211
1245
  <pre>
1212
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 277</span>
1213
- 277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upload</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">options</span>={})
1214
- 278: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1215
- 279: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1216
- 280: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1217
- 281: <span class="ruby-keyword kw">end</span>
1218
- 282:
1219
- 283: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1220
- 284: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1221
- 285: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1222
- 286: <span class="ruby-keyword kw">end</span>
1223
- 287:
1224
- 288: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1225
- 289: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1226
- 290: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1227
- 291: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1228
- 292: <span class="ruby-keyword kw">end</span>
1229
- 293:
1230
- 294: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;Uploaded by MediaWiki::Gateway&quot;</span>
1231
- 295: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>
1232
- 296: <span class="ruby-identifier">full_name</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>]
1233
- 297: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">full_name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full_name</span>
1234
- 298:
1235
- 299: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1236
- 300: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1237
- 301: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'sessionkey'</span>]
1238
- 302:
1239
- 303: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1240
- 304: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1241
- 305: <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>])
1242
- 306: )
1243
- 307:
1244
- 308: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1245
- 309: <span class="ruby-keyword kw">end</span>
1246
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 284</span>
1247
+ 284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upload</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">options</span>={})
1248
+ 285: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1249
+ 286: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1250
+ 287: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1251
+ 288: <span class="ruby-keyword kw">end</span>
1252
+ 289:
1253
+ 290: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1254
+ 291: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1255
+ 292: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1256
+ 293: <span class="ruby-keyword kw">end</span>
1257
+ 294:
1258
+ 295: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1259
+ 296: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1260
+ 297: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1261
+ 298: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1262
+ 299: <span class="ruby-keyword kw">end</span>
1263
+ 300:
1264
+ 301: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;Uploaded by MediaWiki::Gateway&quot;</span>
1265
+ 302: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>
1266
+ 303: <span class="ruby-identifier">full_name</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>]
1267
+ 304: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">full_name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full_name</span>
1268
+ 305:
1269
+ 306: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1270
+ 307: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1271
+ 308: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'sessionkey'</span>]
1272
+ 309:
1273
+ 310: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1274
+ 311: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1275
+ 312: <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>])
1276
+ 313: )
1277
+ 314:
1278
+ 315: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1279
+ 316: <span class="ruby-keyword kw">end</span>
1246
1280
  </pre>
1247
1281
  </div>
1248
1282
  </div>
@@ -1250,11 +1284,11 @@ Examples:
1250
1284
 
1251
1285
  <h3 class="section-bar">Private Instance methods</h3>
1252
1286
 
1253
- <div id="method-M000030" class="method-detail">
1254
- <a name="M000030"></a>
1287
+ <div id="method-M000032" class="method-detail">
1288
+ <a name="M000032"></a>
1255
1289
 
1256
1290
  <div class="method-heading">
1257
- <a href="#M000030" class="method-signature">
1291
+ <a href="#M000032" class="method-signature">
1258
1292
  <span class="method-name">get_response</span><span class="method-args">(res)</span>
1259
1293
  </a>
1260
1294
  </div>
@@ -1265,102 +1299,102 @@ Get API XML response If there are errors or warnings, raise exception
1265
1299
  Otherwise return XML root
1266
1300
  </p>
1267
1301
  <p><a class="source-toggle" href="#"
1268
- onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1269
- <div class="method-source-code" id="M000030-source">
1302
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
1303
+ <div class="method-source-code" id="M000032-source">
1270
1304
  <pre>
1271
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 518</span>
1272
- 518: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1273
- 519: <span class="ruby-keyword kw">begin</span>
1274
- 520: <span class="ruby-identifier">doc</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">res</span>).<span class="ruby-identifier">root</span>
1275
- 521: <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">&gt;</span> <span class="ruby-identifier">e</span>
1276
- 522: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Response is not XML. Are you sure you are pointing to api.php?&quot;</span>
1277
- 523: <span class="ruby-keyword kw">end</span>
1278
- 524: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1279
- 525: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Response does not contain Mediawiki API XML: #{res}&quot;</span> <span class="ruby-keyword kw">unless</span> [ <span class="ruby-value str">&quot;api&quot;</span>, <span class="ruby-value str">&quot;mediawiki&quot;</span> ].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">name</span>
1280
- 526: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>]
1281
- 527: <span class="ruby-identifier">code</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;code&quot;</span>]
1282
- 528: <span class="ruby-identifier">info</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;info&quot;</span>]
1283
- 529: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1305
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 525</span>
1306
+ 525: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1307
+ 526: <span class="ruby-keyword kw">begin</span>
1308
+ 527: <span class="ruby-identifier">doc</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">res</span>).<span class="ruby-identifier">root</span>
1309
+ 528: <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">&gt;</span> <span class="ruby-identifier">e</span>
1310
+ 529: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Response is not XML. Are you sure you are pointing to api.php?&quot;</span>
1284
1311
  530: <span class="ruby-keyword kw">end</span>
1285
- 531: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;warnings&quot;</span>]
1286
- 532: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;API warning: #{doc.elements[&quot;warnings&quot;].children.map {|e| e.text}.join(&quot;, &quot;)}&quot;</span>)
1287
- 533: <span class="ruby-keyword kw">end</span>
1288
- 534: <span class="ruby-identifier">doc</span>
1289
- 535: <span class="ruby-keyword kw">end</span>
1312
+ 531: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1313
+ 532: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Response does not contain Mediawiki API XML: #{res}&quot;</span> <span class="ruby-keyword kw">unless</span> [ <span class="ruby-value str">&quot;api&quot;</span>, <span class="ruby-value str">&quot;mediawiki&quot;</span> ].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">name</span>
1314
+ 533: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>]
1315
+ 534: <span class="ruby-identifier">code</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;code&quot;</span>]
1316
+ 535: <span class="ruby-identifier">info</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;info&quot;</span>]
1317
+ 536: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1318
+ 537: <span class="ruby-keyword kw">end</span>
1319
+ 538: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;warnings&quot;</span>]
1320
+ 539: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;API warning: #{doc.elements[&quot;warnings&quot;].children.map {|e| e.text}.join(&quot;, &quot;)}&quot;</span>)
1321
+ 540: <span class="ruby-keyword kw">end</span>
1322
+ 541: <span class="ruby-identifier">doc</span>
1323
+ 542: <span class="ruby-keyword kw">end</span>
1290
1324
  </pre>
1291
1325
  </div>
1292
1326
  </div>
1293
1327
  </div>
1294
1328
 
1295
- <div id="method-M000027" class="method-detail">
1296
- <a name="M000027"></a>
1329
+ <div id="method-M000029" class="method-detail">
1330
+ <a name="M000029"></a>
1297
1331
 
1298
1332
  <div class="method-heading">
1299
- <a href="#M000027" class="method-signature">
1333
+ <a href="#M000029" class="method-signature">
1300
1334
  <span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
1301
1335
  </a>
1302
1336
  </div>
1303
1337
 
1304
1338
  <div class="method-description">
1305
1339
  <p>
1306
- Fetch token (type &#8216;<a href="Gateway.html#M000013">delete</a>&#8217;,
1307
- &#8216;edit&#8217;, &#8216;<a
1308
- href="Gateway.html#M000022">import</a>&#8217;, &#8216;<a
1309
- href="Gateway.html#M000012">move</a>&#8217;)
1340
+ Fetch token (type &#8216;<a href="Gateway.html#M000015">delete</a>&#8217;,
1341
+ &#8216;<a href="Gateway.html#M000013">edit</a>&#8217;, &#8216;<a
1342
+ href="Gateway.html#M000024">import</a>&#8217;, &#8216;<a
1343
+ href="Gateway.html#M000014">move</a>&#8217;)
1310
1344
  </p>
1311
1345
  <p><a class="source-toggle" href="#"
1312
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1313
- <div class="method-source-code" id="M000027-source">
1346
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
1347
+ <div class="method-source-code" id="M000029-source">
1314
1348
  <pre>
1315
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 459</span>
1316
- 459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">page_titles</span>)
1317
- 460: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'intoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">type</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_titles</span>}
1318
- 461: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1319
- 462: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">type</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;token&quot;</span>]
1320
- 463: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;User is not permitted to perform this operation: #{type}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1321
- 464: <span class="ruby-identifier">token</span>
1322
- 465: <span class="ruby-keyword kw">end</span>
1349
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 466</span>
1350
+ 466: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">page_titles</span>)
1351
+ 467: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'intoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">type</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_titles</span>}
1352
+ 468: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1353
+ 469: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">type</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;token&quot;</span>]
1354
+ 470: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;User is not permitted to perform this operation: #{type}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1355
+ 471: <span class="ruby-identifier">token</span>
1356
+ 472: <span class="ruby-keyword kw">end</span>
1323
1357
  </pre>
1324
1358
  </div>
1325
1359
  </div>
1326
1360
  </div>
1327
1361
 
1328
- <div id="method-M000028" class="method-detail">
1329
- <a name="M000028"></a>
1362
+ <div id="method-M000030" class="method-detail">
1363
+ <a name="M000030"></a>
1330
1364
 
1331
1365
  <div class="method-heading">
1332
- <a href="#M000028" class="method-signature">
1366
+ <a href="#M000030" class="method-signature">
1333
1367
  <span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
1334
1368
  </a>
1335
1369
  </div>
1336
1370
 
1337
1371
  <div class="method-description">
1338
1372
  <p><a class="source-toggle" href="#"
1339
- onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1340
- <div class="method-source-code" id="M000028-source">
1373
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1374
+ <div class="method-source-code" id="M000030-source">
1341
1375
  <pre>
1342
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 467</span>
1343
- 467: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1344
- 468: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'deletedrevs'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'drprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'token'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_titles</span>}
1345
- 469: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1346
- 470: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/deletedrevs/page&quot;</span>]
1347
- 471: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/deletedrevs/page&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;token&quot;</span>]
1348
- 472: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;User is not permitted to perform this operation: #{type}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1349
- 473: <span class="ruby-identifier">token</span>
1350
- 474: <span class="ruby-keyword kw">else</span>
1351
- 475: <span class="ruby-keyword kw">nil</span>
1352
- 476: <span class="ruby-keyword kw">end</span>
1353
- 477: <span class="ruby-keyword kw">end</span>
1376
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 474</span>
1377
+ 474: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1378
+ 475: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'deletedrevs'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'drprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'token'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_titles</span>}
1379
+ 476: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1380
+ 477: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/deletedrevs/page&quot;</span>]
1381
+ 478: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/deletedrevs/page&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;token&quot;</span>]
1382
+ 479: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;User is not permitted to perform this operation: #{type}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1383
+ 480: <span class="ruby-identifier">token</span>
1384
+ 481: <span class="ruby-keyword kw">else</span>
1385
+ 482: <span class="ruby-keyword kw">nil</span>
1386
+ 483: <span class="ruby-keyword kw">end</span>
1387
+ 484: <span class="ruby-keyword kw">end</span>
1354
1388
  </pre>
1355
1389
  </div>
1356
1390
  </div>
1357
1391
  </div>
1358
1392
 
1359
- <div id="method-M000029" class="method-detail">
1360
- <a name="M000029"></a>
1393
+ <div id="method-M000031" class="method-detail">
1394
+ <a name="M000031"></a>
1361
1395
 
1362
1396
  <div class="method-heading">
1363
- <a href="#M000029" class="method-signature">
1397
+ <a href="#M000031" class="method-signature">
1364
1398
  <span class="method-name">make_api_request</span><span class="method-args">(form_data, continue_xpath=nil, retry_count=1)</span>
1365
1399
  </a>
1366
1400
  </div>
@@ -1384,95 +1418,95 @@ Make generic request to API
1384
1418
  Returns XML document
1385
1419
  </p>
1386
1420
  <p><a class="source-toggle" href="#"
1387
- onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
1388
- <div class="method-source-code" id="M000029-source">
1421
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1422
+ <div class="method-source-code" id="M000031-source">
1389
1423
  <pre>
1390
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 486</span>
1391
- 486: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">retry_count</span>=<span class="ruby-value">1</span>)
1392
- 487: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Hash</span>
1393
- 488: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
1394
- 489: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'maxlag'</span>] = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:maxlag</span>]
1395
- 490: <span class="ruby-keyword kw">end</span>
1396
- 491: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;REQ: #{form_data.inspect}, #{@cookies.inspect}&quot;</span>)
1397
- 492: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-ivar">@wiki_url</span>, <span class="ruby-identifier">form_data</span>, <span class="ruby-ivar">@headers</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-identifier">:cookies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>})) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
1398
- 493: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">503</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_count</span>]
1399
- 494: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;503 Service Unavailable: #{response.body}. Retry in #{@options[:retry_delay]} seconds.&quot;</span>)
1400
- 495: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
1401
- 496: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>, <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1402
- 497: <span class="ruby-keyword kw">end</span>
1403
- 498: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1404
- 499: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error, bad response: #{response}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">200</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">300</span>
1405
- 500: <span class="ruby-identifier">doc</span> = <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">dup</span>)
1406
- 501: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'action'</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'login'</span>)
1407
- 502: <span class="ruby-identifier">login_result</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;login&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'result'</span>]
1408
- 503: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1409
- 504: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1410
- 505: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;Success&quot;</span> <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt"># do nothing</span>
1411
- 506: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;NeedToken&quot;</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-value str">'lgtoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;login&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;token&quot;</span>]))
1412
- 507: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Login failed: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">login_result</span>
1413
- 508: <span class="ruby-keyword kw">end</span>
1414
- 509: <span class="ruby-keyword kw">end</span>
1415
- 510: <span class="ruby-identifier">continue</span> = (<span class="ruby-identifier">continue_xpath</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>]) <span class="ruby-operator">?</span> <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">doc</span>, <span class="ruby-identifier">continue_xpath</span>).<span class="ruby-identifier">value</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1416
- 511: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue</span>]
1417
- 512: <span class="ruby-keyword kw">end</span>
1418
- 513: <span class="ruby-keyword kw">end</span>
1424
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 493</span>
1425
+ 493: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">retry_count</span>=<span class="ruby-value">1</span>)
1426
+ 494: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Hash</span>
1427
+ 495: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
1428
+ 496: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'maxlag'</span>] = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:maxlag</span>]
1429
+ 497: <span class="ruby-keyword kw">end</span>
1430
+ 498: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;REQ: #{form_data.inspect}, #{@cookies.inspect}&quot;</span>)
1431
+ 499: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-ivar">@wiki_url</span>, <span class="ruby-identifier">form_data</span>, <span class="ruby-ivar">@headers</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-identifier">:cookies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>})) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
1432
+ 500: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">503</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_count</span>]
1433
+ 501: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;503 Service Unavailable: #{response.body}. Retry in #{@options[:retry_delay]} seconds.&quot;</span>)
1434
+ 502: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
1435
+ 503: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>, <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1436
+ 504: <span class="ruby-keyword kw">end</span>
1437
+ 505: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1438
+ 506: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error, bad response: #{response}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">200</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">300</span>
1439
+ 507: <span class="ruby-identifier">doc</span> = <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">dup</span>)
1440
+ 508: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'action'</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'login'</span>)
1441
+ 509: <span class="ruby-identifier">login_result</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;login&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'result'</span>]
1442
+ 510: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1443
+ 511: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1444
+ 512: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;Success&quot;</span> <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt"># do nothing</span>
1445
+ 513: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;NeedToken&quot;</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-value str">'lgtoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;login&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;token&quot;</span>]))
1446
+ 514: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Login failed: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">login_result</span>
1447
+ 515: <span class="ruby-keyword kw">end</span>
1448
+ 516: <span class="ruby-keyword kw">end</span>
1449
+ 517: <span class="ruby-identifier">continue</span> = (<span class="ruby-identifier">continue_xpath</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>]) <span class="ruby-operator">?</span> <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">doc</span>, <span class="ruby-identifier">continue_xpath</span>).<span class="ruby-identifier">value</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1450
+ 518: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue</span>]
1451
+ 519: <span class="ruby-keyword kw">end</span>
1452
+ 520: <span class="ruby-keyword kw">end</span>
1419
1453
  </pre>
1420
1454
  </div>
1421
1455
  </div>
1422
1456
  </div>
1423
1457
 
1424
- <div id="method-M000031" class="method-detail">
1425
- <a name="M000031"></a>
1458
+ <div id="method-M000033" class="method-detail">
1459
+ <a name="M000033"></a>
1426
1460
 
1427
1461
  <div class="method-heading">
1428
- <a href="#M000031" class="method-signature">
1462
+ <a href="#M000033" class="method-signature">
1429
1463
  <span class="method-name">valid_page?</span><span class="method-args">(page)</span>
1430
1464
  </a>
1431
1465
  </div>
1432
1466
 
1433
1467
  <div class="method-description">
1434
1468
  <p><a class="source-toggle" href="#"
1435
- onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1436
- <div class="method-source-code" id="M000031-source">
1469
+ onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
1470
+ <div class="method-source-code" id="M000033-source">
1437
1471
  <pre>
1438
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 537</span>
1439
- 537: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>)
1440
- 538: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">page</span>
1441
- 539: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
1442
- 540: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;invalid&quot;</span>]
1443
- 541: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;Invalid title '#{page.attributes[&quot;title&quot;]}'&quot;</span>)
1444
- 542: <span class="ruby-keyword kw">else</span>
1445
- 543: <span class="ruby-keyword kw">true</span>
1446
- 544: <span class="ruby-keyword kw">end</span>
1447
- 545: <span class="ruby-keyword kw">end</span>
1472
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 544</span>
1473
+ 544: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>)
1474
+ 545: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">page</span>
1475
+ 546: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
1476
+ 547: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;invalid&quot;</span>]
1477
+ 548: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;Invalid title '#{page.attributes[&quot;title&quot;]}'&quot;</span>)
1478
+ 549: <span class="ruby-keyword kw">else</span>
1479
+ 550: <span class="ruby-keyword kw">true</span>
1480
+ 551: <span class="ruby-keyword kw">end</span>
1481
+ 552: <span class="ruby-keyword kw">end</span>
1448
1482
  </pre>
1449
1483
  </div>
1450
1484
  </div>
1451
1485
  </div>
1452
1486
 
1453
- <div id="method-M000032" class="method-detail">
1454
- <a name="M000032"></a>
1487
+ <div id="method-M000034" class="method-detail">
1488
+ <a name="M000034"></a>
1455
1489
 
1456
1490
  <div class="method-heading">
1457
- <a href="#M000032" class="method-signature">
1491
+ <a href="#M000034" class="method-signature">
1458
1492
  <span class="method-name">warning</span><span class="method-args">(msg)</span>
1459
1493
  </a>
1460
1494
  </div>
1461
1495
 
1462
1496
  <div class="method-description">
1463
1497
  <p><a class="source-toggle" href="#"
1464
- onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
1465
- <div class="method-source-code" id="M000032-source">
1498
+ onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
1499
+ <div class="method-source-code" id="M000034-source">
1466
1500
  <pre>
1467
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 547</span>
1468
- 547: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">msg</span>)
1469
- 548: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ignorewarnings</span>]
1470
- 549: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-identifier">msg</span>)
1471
- 550: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1472
- 551: <span class="ruby-keyword kw">else</span>
1473
- 552: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">msg</span>
1474
- 553: <span class="ruby-keyword kw">end</span>
1475
- 554: <span class="ruby-keyword kw">end</span>
1501
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 554</span>
1502
+ 554: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">msg</span>)
1503
+ 555: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ignorewarnings</span>]
1504
+ 556: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-identifier">msg</span>)
1505
+ 557: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1506
+ 558: <span class="ruby-keyword kw">else</span>
1507
+ 559: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">msg</span>
1508
+ 560: <span class="ruby-keyword kw">end</span>
1509
+ 561: <span class="ruby-keyword kw">end</span>
1476
1510
  </pre>
1477
1511
  </div>
1478
1512
  </div>