mediawiki-gateway 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -36,7 +36,7 @@ begin
36
36
  gemspec.homepage = "http://github.com/jpatokal/mediawiki-gateway"
37
37
  gemspec.authors = ["Jani Patokallio"]
38
38
  gemspec.version = MediaWiki::VERSION
39
- gemspec.add_dependency 'rest-client'
39
+ gemspec.add_dependency 'rest-client', '>= 1.3.0'
40
40
  gemspec.add_development_dependency 'activesupport'
41
41
  gemspec.add_development_dependency 'jeweler'
42
42
  gemspec.add_development_dependency 'sham_rack'
@@ -88,11 +88,12 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000001">get_path_to_subpage</a>&nbsp;&nbsp;
92
- <a href="#M000002">get_subpage</a>&nbsp;&nbsp;
93
- <a href="#M000003">uri_to_wiki</a>&nbsp;&nbsp;
94
- <a href="#M000005">version</a>&nbsp;&nbsp;
95
- <a href="#M000004">wiki_to_uri</a>&nbsp;&nbsp;
91
+ <a href="#M000001">get_base_name</a>&nbsp;&nbsp;
92
+ <a href="#M000002">get_path_to_subpage</a>&nbsp;&nbsp;
93
+ <a href="#M000003">get_subpage</a>&nbsp;&nbsp;
94
+ <a href="#M000004">uri_to_wiki</a>&nbsp;&nbsp;
95
+ <a href="#M000006">version</a>&nbsp;&nbsp;
96
+ <a href="#M000005">wiki_to_uri</a>&nbsp;&nbsp;
96
97
  </div>
97
98
  </div>
98
99
 
@@ -126,21 +127,20 @@ Class <a href="MediaWiki/Gateway.html" class="link">MediaWiki::Gateway</a><br />
126
127
 
127
128
  <div class="method-heading">
128
129
  <a href="#M000001" class="method-signature">
129
- <span class="method-name">get_path_to_subpage</span><span class="method-args">(title)</span>
130
+ <span class="method-name">get_base_name</span><span class="method-args">(title)</span>
130
131
  </a>
131
132
  </div>
132
133
 
133
134
  <div class="method-description">
134
135
  <p>
135
- Extract path leading up to subpage. If title does not contain a subpage,
136
- returns nil.
136
+ Extract base name. If there are no subpages, return page name.
137
137
  </p>
138
138
  <p>
139
139
  Examples: <a
140
- href="MediaWiki.html#M000001">get_path_to_subpage</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
141
- -&gt; &quot;Namespace:Foo/Bar&quot; <a
142
- href="MediaWiki.html#M000001">get_path_to_subpage</a>(&quot;Namespace:Foo&quot;)
143
- -&gt; nil
140
+ href="MediaWiki.html#M000001">get_base_name</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
141
+ -&gt; &quot;Namespace:Foo&quot; <a
142
+ href="MediaWiki.html#M000001">get_base_name</a>(&quot;Namespace:Foo&quot;)
143
+ -&gt; &quot;Namespace:Foo&quot;
144
144
  </p>
145
145
  <dl>
146
146
  <dt>title</dt><dd>Page name string in Wiki format
@@ -152,10 +152,9 @@ href="MediaWiki.html#M000001">get_path_to_subpage</a>(&quot;Namespace:Foo&quot;)
152
152
  <div class="method-source-code" id="M000001-source">
153
153
  <pre>
154
154
  <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 11</span>
155
- 11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_path_to_subpage</span>(<span class="ruby-identifier">title</span>)
156
- 12: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">title</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">title</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">'/'</span>
157
- 13: <span class="ruby-identifier">parts</span> = <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\/([^\/]*)$/</span>).<span class="ruby-identifier">first</span>
158
- 14: <span class="ruby-keyword kw">end</span>
155
+ 11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_base_name</span>(<span class="ruby-identifier">title</span>)
156
+ 12: <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">first</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">title</span>
157
+ 13: <span class="ruby-keyword kw">end</span>
159
158
  </pre>
160
159
  </div>
161
160
  </div>
@@ -166,20 +165,21 @@ href="MediaWiki.html#M000001">get_path_to_subpage</a>(&quot;Namespace:Foo&quot;)
166
165
 
167
166
  <div class="method-heading">
168
167
  <a href="#M000002" class="method-signature">
169
- <span class="method-name">get_subpage</span><span class="method-args">(title)</span>
168
+ <span class="method-name">get_path_to_subpage</span><span class="method-args">(title)</span>
170
169
  </a>
171
170
  </div>
172
171
 
173
172
  <div class="method-description">
174
173
  <p>
175
- Extract subpage name. If there is no hierarchy above, return page name.
174
+ Extract path leading up to subpage. If title does not contain a subpage,
175
+ returns nil.
176
176
  </p>
177
177
  <p>
178
178
  Examples: <a
179
- href="MediaWiki.html#M000002">get_subpage</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
180
- -&gt; &quot;Baz&quot; <a
181
- href="MediaWiki.html#M000002">get_subpage</a>(&quot;Namespace:Foo&quot;)
182
- -&gt; &quot;Namespace:Foo&quot;
179
+ href="MediaWiki.html#M000002">get_path_to_subpage</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
180
+ -&gt; &quot;Namespace:Foo/Bar&quot; <a
181
+ href="MediaWiki.html#M000002">get_path_to_subpage</a>(&quot;Namespace:Foo&quot;)
182
+ -&gt; nil
183
183
  </p>
184
184
  <dl>
185
185
  <dt>title</dt><dd>Page name string in Wiki format
@@ -190,9 +190,10 @@ href="MediaWiki.html#M000002">get_subpage</a>(&quot;Namespace:Foo&quot;)
190
190
  onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
191
191
  <div class="method-source-code" id="M000002-source">
192
192
  <pre>
193
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 23</span>
194
- 23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_subpage</span>(<span class="ruby-identifier">title</span>)
195
- 24: <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">title</span>
193
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 22</span>
194
+ 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_path_to_subpage</span>(<span class="ruby-identifier">title</span>)
195
+ 23: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">title</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">title</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">'/'</span>
196
+ 24: <span class="ruby-identifier">parts</span> = <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\/([^\/]*)$/</span>).<span class="ruby-identifier">first</span>
196
197
  25: <span class="ruby-keyword kw">end</span>
197
198
  </pre>
198
199
  </div>
@@ -204,6 +205,44 @@ href="MediaWiki.html#M000002">get_subpage</a>(&quot;Namespace:Foo&quot;)
204
205
 
205
206
  <div class="method-heading">
206
207
  <a href="#M000003" class="method-signature">
208
+ <span class="method-name">get_subpage</span><span class="method-args">(title)</span>
209
+ </a>
210
+ </div>
211
+
212
+ <div class="method-description">
213
+ <p>
214
+ Extract subpage name. If there is no hierarchy above, return page name.
215
+ </p>
216
+ <p>
217
+ Examples: <a
218
+ href="MediaWiki.html#M000003">get_subpage</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
219
+ -&gt; &quot;Baz&quot; <a
220
+ href="MediaWiki.html#M000003">get_subpage</a>(&quot;Namespace:Foo&quot;)
221
+ -&gt; &quot;Namespace:Foo&quot;
222
+ </p>
223
+ <dl>
224
+ <dt>title</dt><dd>Page name string in Wiki format
225
+
226
+ </dd>
227
+ </dl>
228
+ <p><a class="source-toggle" href="#"
229
+ onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
230
+ <div class="method-source-code" id="M000003-source">
231
+ <pre>
232
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 34</span>
233
+ 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_subpage</span>(<span class="ruby-identifier">title</span>)
234
+ 35: <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">title</span>
235
+ 36: <span class="ruby-keyword kw">end</span>
236
+ </pre>
237
+ </div>
238
+ </div>
239
+ </div>
240
+
241
+ <div id="method-M000004" class="method-detail">
242
+ <a name="M000004"></a>
243
+
244
+ <div class="method-heading">
245
+ <a href="#M000004" class="method-signature">
207
246
  <span class="method-name">uri_to_wiki</span><span class="method-args">(uri)</span>
208
247
  </a>
209
248
  </div>
@@ -221,50 +260,50 @@ href="http://meta.wikimedia.org/wiki/Help:Page_name#Restrictions">meta.wikimedia
221
260
  </dd>
222
261
  </dl>
223
262
  <p><a class="source-toggle" href="#"
224
- onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
225
- <div class="method-source-code" id="M000003-source">
263
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
264
+ <div class="method-source-code" id="M000004-source">
226
265
  <pre>
227
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 31</span>
228
- 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uri_to_wiki</span>(<span class="ruby-identifier">uri</span>)
229
- 32: <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>
230
- 33: <span class="ruby-keyword kw">end</span>
266
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 42</span>
267
+ 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>
269
+ 44: <span class="ruby-keyword kw">end</span>
231
270
  </pre>
232
271
  </div>
233
272
  </div>
234
273
  </div>
235
274
 
236
- <div id="method-M000005" class="method-detail">
237
- <a name="M000005"></a>
275
+ <div id="method-M000006" class="method-detail">
276
+ <a name="M000006"></a>
238
277
 
239
278
  <div class="method-heading">
240
- <a href="#M000005" class="method-signature">
279
+ <a href="#M000006" class="method-signature">
241
280
  <span class="method-name">version</span><span class="method-args">()</span>
242
281
  </a>
243
282
  </div>
244
283
 
245
284
  <div class="method-description">
246
285
  <p>
247
- Return current <a href="MediaWiki.html#M000005">version</a> of <a
286
+ Return current <a href="MediaWiki.html#M000006">version</a> of <a
248
287
  href="MediaWiki/Gateway.html">MediaWiki::Gateway</a>
249
288
  </p>
250
289
  <p><a class="source-toggle" href="#"
251
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
252
- <div class="method-source-code" id="M000005-source">
290
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
291
+ <div class="method-source-code" id="M000006-source">
253
292
  <pre>
254
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 43</span>
255
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
256
- 44: <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>
257
- 45: <span class="ruby-keyword kw">end</span>
293
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 54</span>
294
+ 54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
295
+ 55: <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>
296
+ 56: <span class="ruby-keyword kw">end</span>
258
297
  </pre>
259
298
  </div>
260
299
  </div>
261
300
  </div>
262
301
 
263
- <div id="method-M000004" class="method-detail">
264
- <a name="M000004"></a>
302
+ <div id="method-M000005" class="method-detail">
303
+ <a name="M000005"></a>
265
304
 
266
305
  <div class="method-heading">
267
- <a href="#M000004" class="method-signature">
306
+ <a href="#M000005" class="method-signature">
268
307
  <span class="method-name">wiki_to_uri</span><span class="method-args">(wiki)</span>
269
308
  </a>
270
309
  </div>
@@ -281,13 +320,13 @@ slashes or colons
281
320
  </dd>
282
321
  </dl>
283
322
  <p><a class="source-toggle" href="#"
284
- onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
285
- <div class="method-source-code" id="M000004-source">
323
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
324
+ <div class="method-source-code" id="M000005-source">
286
325
  <pre>
287
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 38</span>
288
- 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
289
- 39: <span class="ruby-identifier">wiki</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">chunk</span><span class="ruby-operator">|</span> <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>)) }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'%3A'</span>, <span class="ruby-value str">':'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wiki</span>
290
- 40: <span class="ruby-keyword kw">end</span>
326
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 49</span>
327
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
328
+ 50: <span class="ruby-identifier">wiki</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">chunk</span><span class="ruby-operator">|</span> <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>)) }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'%3A'</span>, <span class="ruby-value str">':'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wiki</span>
329
+ 51: <span class="ruby-keyword kw">end</span>
291
330
  </pre>
292
331
  </div>
293
332
  </div>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000030">abort</a>&nbsp;&nbsp;
90
- <a href="#M000029">new</a>&nbsp;&nbsp;
89
+ <a href="#M000032">abort</a>&nbsp;&nbsp;
90
+ <a href="#M000031">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-M000029" class="method-detail">
161
- <a name="M000029"></a>
160
+ <div id="method-M000031" class="method-detail">
161
+ <a name="M000031"></a>
162
162
 
163
163
  <div class="method-heading">
164
- <a href="#M000029" class="method-signature">
164
+ <a href="#M000031" 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('M000029-source');return false;">[Source]</a></p>
172
- <div class="method-source-code" id="M000029-source">
171
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
172
+ <div class="method-source-code" id="M000031-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-M000030" class="method-detail">
234
- <a name="M000030"></a>
233
+ <div id="method-M000032" class="method-detail">
234
+ <a name="M000032"></a>
235
235
 
236
236
  <div class="method-heading">
237
- <a href="#M000030" class="method-signature">
237
+ <a href="#M000032" 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('M000030-source');return false;">[Source]</a></p>
245
- <div class="method-source-code" id="M000030-source">
244
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
245
+ <div class="method-source-code" id="M000032-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,29 +86,30 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000015">backlinks</a>&nbsp;&nbsp;
90
- <a href="#M000010">create</a>&nbsp;&nbsp;
91
- <a href="#M000012">delete</a>&nbsp;&nbsp;
92
- <a href="#M000019">download</a>&nbsp;&nbsp;
93
- <a href="#M000021">export</a>&nbsp;&nbsp;
94
- <a href="#M000023">extensions</a>&nbsp;&nbsp;
95
- <a href="#M000008">get</a>&nbsp;&nbsp;
96
- <a href="#M000028">get_response</a>&nbsp;&nbsp;
97
- <a href="#M000025">get_token</a>&nbsp;&nbsp;
98
- <a href="#M000026">get_undelete_token</a>&nbsp;&nbsp;
99
- <a href="#M000018">image_info</a>&nbsp;&nbsp;
100
- <a href="#M000020">import</a>&nbsp;&nbsp;
101
- <a href="#M000014">list</a>&nbsp;&nbsp;
102
- <a href="#M000007">login</a>&nbsp;&nbsp;
103
- <a href="#M000027">make_api_request</a>&nbsp;&nbsp;
104
- <a href="#M000011">move</a>&nbsp;&nbsp;
105
- <a href="#M000022">namespaces_by_prefix</a>&nbsp;&nbsp;
106
- <a href="#M000006">new</a>&nbsp;&nbsp;
107
- <a href="#M000009">render</a>&nbsp;&nbsp;
108
- <a href="#M000016">search</a>&nbsp;&nbsp;
109
- <a href="#M000024">semantic_query</a>&nbsp;&nbsp;
110
- <a href="#M000013">undelete</a>&nbsp;&nbsp;
111
- <a href="#M000017">upload</a>&nbsp;&nbsp;
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;
112
113
  </div>
113
114
  </div>
114
115
 
@@ -148,11 +149,11 @@
148
149
  <div id="methods">
149
150
  <h3 class="section-bar">Public Class methods</h3>
150
151
 
151
- <div id="method-M000006" class="method-detail">
152
- <a name="M000006"></a>
152
+ <div id="method-M000007" class="method-detail">
153
+ <a name="M000007"></a>
153
154
 
154
155
  <div class="method-heading">
155
- <a href="#M000006" class="method-signature">
156
+ <a href="#M000007" class="method-signature">
156
157
  <span class="method-name">new</span><span class="method-args">(url, options={})</span>
157
158
  </a>
158
159
  </div>
@@ -177,7 +178,7 @@ Options:
177
178
  </p>
178
179
  <dl>
179
180
  <dt>:limit</dt><dd>Maximum number of results returned per <a
180
- href="Gateway.html#M000016">search</a> (see <a
181
+ href="Gateway.html#M000017">search</a> (see <a
181
182
  href="http://www.mediawiki.org/wiki/API:Query_-_Lists#Limits">www.mediawiki.org/wiki/API:Query_-_Lists#Limits</a>),
182
183
  defaults to the <a href="../MediaWiki.html">MediaWiki</a> default of 500.
183
184
 
@@ -202,8 +203,8 @@ returns 503 Service Unavailable, defaults to 10 seconds.
202
203
  </dd>
203
204
  </dl>
204
205
  <p><a class="source-toggle" href="#"
205
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
206
- <div class="method-source-code" id="M000006-source">
206
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
207
+ <div class="method-source-code" id="M000007-source">
207
208
  <pre>
208
209
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 23</span>
209
210
  23: <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>={})
@@ -228,18 +229,18 @@ returns 503 Service Unavailable, defaults to 10 seconds.
228
229
 
229
230
  <h3 class="section-bar">Public Instance methods</h3>
230
231
 
231
- <div id="method-M000015" class="method-detail">
232
- <a name="M000015"></a>
232
+ <div id="method-M000016" class="method-detail">
233
+ <a name="M000016"></a>
233
234
 
234
235
  <div class="method-heading">
235
- <a href="#M000015" class="method-signature">
236
+ <a href="#M000016" class="method-signature">
236
237
  <span class="method-name">backlinks</span><span class="method-args">(title, filter = &quot;all&quot;)</span>
237
238
  </a>
238
239
  </div>
239
240
 
240
241
  <div class="method-description">
241
242
  <p>
242
- Get a <a href="Gateway.html#M000014">list</a> of pages that link to a
243
+ Get a <a href="Gateway.html#M000015">list</a> of pages that link to a
243
244
  target page
244
245
  </p>
245
246
  <dl>
@@ -255,48 +256,47 @@ target page
255
256
  Returns array of page titles (empty if no matches)
256
257
  </p>
257
258
  <p><a class="source-toggle" href="#"
258
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
259
- <div class="method-source-code" id="M000015-source">
259
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
260
+ <div class="method-source-code" id="M000016-source">
260
261
  <pre>
261
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 199</span>
262
- 199: <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>)
263
- 200: <span class="ruby-identifier">titles</span> = []
264
- 201: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
265
- 202: <span class="ruby-keyword kw">begin</span>
266
- 203: <span class="ruby-identifier">form_data</span> =
267
- 204: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
268
- 205: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
269
- 206: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
270
- 207: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
271
- 208: <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>] }
272
- 209: <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>
273
- 210: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
274
- 211: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue/backlinks'</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'blcontinue'</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
275
- 212: <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>] }
276
- 213: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
277
- 214: <span class="ruby-identifier">titles</span>
278
- 215: <span class="ruby-keyword kw">end</span>
262
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 197</span>
263
+ 197: <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>)
264
+ 198: <span class="ruby-identifier">titles</span> = []
265
+ 199: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
266
+ 200: <span class="ruby-keyword kw">begin</span>
267
+ 201: <span class="ruby-identifier">form_data</span> =
268
+ 202: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
269
+ 203: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
270
+ 204: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
271
+ 205: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
272
+ 206: <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>] }
273
+ 207: <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>
274
+ 208: <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>)
275
+ 209: <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>] }
276
+ 210: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
277
+ 211: <span class="ruby-identifier">titles</span>
278
+ 212: <span class="ruby-keyword kw">end</span>
279
279
  </pre>
280
280
  </div>
281
281
  </div>
282
282
  </div>
283
283
 
284
- <div id="method-M000010" class="method-detail">
285
- <a name="M000010"></a>
284
+ <div id="method-M000011" class="method-detail">
285
+ <a name="M000011"></a>
286
286
 
287
287
  <div class="method-heading">
288
- <a href="#M000010" class="method-signature">
288
+ <a href="#M000011" class="method-signature">
289
289
  <span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
290
290
  </a>
291
291
  </div>
292
292
 
293
293
  <div class="method-description">
294
294
  <p>
295
- Create a <a href="Gateway.html#M000006">new</a> page, or overwrite an
295
+ Create a <a href="Gateway.html#M000007">new</a> page, or overwrite an
296
296
  existing one
297
297
  </p>
298
298
  <dl>
299
- <dt>title</dt><dd>Page title to <a href="Gateway.html#M000010">create</a> or overwrite,
299
+ <dt>title</dt><dd>Page title to <a href="Gateway.html#M000011">create</a> or overwrite,
300
300
  string
301
301
 
302
302
  </dd>
@@ -318,13 +318,13 @@ Options:
318
318
 
319
319
  </li>
320
320
  <li>[:token] Use this existing edit token instead requesting a <a
321
- href="Gateway.html#M000006">new</a> one (useful for bulk loads)
321
+ href="Gateway.html#M000007">new</a> one (useful for bulk loads)
322
322
 
323
323
  </li>
324
324
  </ul>
325
325
  <p><a class="source-toggle" href="#"
326
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
327
- <div class="method-source-code" id="M000010-source">
326
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
327
+ <div class="method-source-code" id="M000011-source">
328
328
  <pre>
329
329
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 117</span>
330
330
  117: <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>={})
@@ -337,11 +337,11 @@ href="Gateway.html#M000006">new</a> one (useful for bulk loads)
337
337
  </div>
338
338
  </div>
339
339
 
340
- <div id="method-M000012" class="method-detail">
341
- <a name="M000012"></a>
340
+ <div id="method-M000013" class="method-detail">
341
+ <a name="M000013"></a>
342
342
 
343
343
  <div class="method-heading">
344
- <a href="#M000012" class="method-signature">
344
+ <a href="#M000013" class="method-signature">
345
345
  <span class="method-name">delete</span><span class="method-args">(title)</span>
346
346
  </a>
347
347
  </div>
@@ -352,13 +352,13 @@ Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
352
352
  support deleting multiple pages at a time.)
353
353
  </p>
354
354
  <dl>
355
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000012">delete</a>
355
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000013">delete</a>
356
356
 
357
357
  </dd>
358
358
  </dl>
359
359
  <p><a class="source-toggle" href="#"
360
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
361
- <div class="method-source-code" id="M000012-source">
360
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
361
+ <div class="method-source-code" id="M000013-source">
362
362
  <pre>
363
363
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 147</span>
364
364
  147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
@@ -370,11 +370,11 @@ support deleting multiple pages at a time.)
370
370
  </div>
371
371
  </div>
372
372
 
373
- <div id="method-M000019" class="method-detail">
374
- <a name="M000019"></a>
373
+ <div id="method-M000021" class="method-detail">
374
+ <a name="M000021"></a>
375
375
 
376
376
  <div class="method-heading">
377
- <a href="#M000019" class="method-signature">
377
+ <a href="#M000021" class="method-signature">
378
378
  <span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
379
379
  </a>
380
380
  </div>
@@ -382,36 +382,36 @@ support deleting multiple pages at a time.)
382
382
  <div class="method-description">
383
383
  <p>
384
384
  Download <em>file_name</em>. Returns file contents. All options are passed
385
- to <a href="Gateway.html#M000018">image_info</a> however
385
+ to <a href="Gateway.html#M000020">image_info</a> however
386
386
  options[&#8216;iiprop&#8217;] is forced to url. You can still set other
387
387
  options to control what file you want to <a
388
- href="Gateway.html#M000019">download</a>.
388
+ href="Gateway.html#M000021">download</a>.
389
389
  </p>
390
390
  <p><a class="source-toggle" href="#"
391
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
392
- <div class="method-source-code" id="M000019-source">
391
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
392
+ <div class="method-source-code" id="M000021-source">
393
393
  <pre>
394
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 363</span>
395
- 363: <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>={})
396
- 364: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
397
- 365:
398
- 366: <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>)
399
- 367: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
400
- 368: <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>]
401
- 369: <span class="ruby-keyword kw">else</span>
402
- 370: <span class="ruby-keyword kw">nil</span>
403
- 371: <span class="ruby-keyword kw">end</span>
404
- 372: <span class="ruby-keyword kw">end</span>
394
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 380</span>
395
+ 380: <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>={})
396
+ 381: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
397
+ 382:
398
+ 383: <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>)
399
+ 384: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
400
+ 385: <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>]
401
+ 386: <span class="ruby-keyword kw">else</span>
402
+ 387: <span class="ruby-keyword kw">nil</span>
403
+ 388: <span class="ruby-keyword kw">end</span>
404
+ 389: <span class="ruby-keyword kw">end</span>
405
405
  </pre>
406
406
  </div>
407
407
  </div>
408
408
  </div>
409
409
 
410
- <div id="method-M000021" class="method-detail">
411
- <a name="M000021"></a>
410
+ <div id="method-M000023" class="method-detail">
411
+ <a name="M000023"></a>
412
412
 
413
413
  <div class="method-heading">
414
- <a href="#M000021" class="method-signature">
414
+ <a href="#M000023" class="method-signature">
415
415
  <span class="method-name">export</span><span class="method-args">(page_titles)</span>
416
416
  </a>
417
417
  </div>
@@ -429,61 +429,61 @@ Exports a page or set of pages
429
429
  Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
430
430
  </p>
431
431
  <p><a class="source-toggle" href="#"
432
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
433
- <div class="method-source-code" id="M000021-source">
432
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
433
+ <div class="method-source-code" id="M000023-source">
434
434
  <pre>
435
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 394</span>
436
- 394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
437
- 395: <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>}
438
- 396: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
439
- 397: <span class="ruby-keyword kw">end</span>
435
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 411</span>
436
+ 411: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
437
+ 412: <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>}
438
+ 413: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
439
+ 414: <span class="ruby-keyword kw">end</span>
440
440
  </pre>
441
441
  </div>
442
442
  </div>
443
443
  </div>
444
444
 
445
- <div id="method-M000023" class="method-detail">
446
- <a name="M000023"></a>
445
+ <div id="method-M000025" class="method-detail">
446
+ <a name="M000025"></a>
447
447
 
448
448
  <div class="method-heading">
449
- <a href="#M000023" class="method-signature">
449
+ <a href="#M000025" class="method-signature">
450
450
  <span class="method-name">extensions</span><span class="method-args">()</span>
451
451
  </a>
452
452
  </div>
453
453
 
454
454
  <div class="method-description">
455
455
  <p>
456
- Get a <a href="Gateway.html#M000014">list</a> of all installed (and
457
- registered) <a href="Gateway.html#M000023">extensions</a>
456
+ Get a <a href="Gateway.html#M000015">list</a> of all installed (and
457
+ registered) <a href="Gateway.html#M000025">extensions</a>
458
458
  </p>
459
459
  <p>
460
- Returns array of <a href="Gateway.html#M000023">extensions</a> (name =&gt;
460
+ Returns array of <a href="Gateway.html#M000025">extensions</a> (name =&gt;
461
461
  version)
462
462
  </p>
463
463
  <p><a class="source-toggle" href="#"
464
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
465
- <div class="method-source-code" id="M000023-source">
464
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
465
+ <div class="method-source-code" id="M000025-source">
466
466
  <pre>
467
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 415</span>
468
- 415: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
469
- 416: <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> }
470
- 417: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
471
- 418: <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>
472
- 419: <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>
473
- 420: <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>]
474
- 421: <span class="ruby-identifier">extensions</span>
475
- 422: <span class="ruby-keyword kw">end</span>
476
- 423: <span class="ruby-keyword kw">end</span>
467
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 432</span>
468
+ 432: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
469
+ 433: <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> }
470
+ 434: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
471
+ 435: <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>
472
+ 436: <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>
473
+ 437: <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>]
474
+ 438: <span class="ruby-identifier">extensions</span>
475
+ 439: <span class="ruby-keyword kw">end</span>
476
+ 440: <span class="ruby-keyword kw">end</span>
477
477
  </pre>
478
478
  </div>
479
479
  </div>
480
480
  </div>
481
481
 
482
- <div id="method-M000008" class="method-detail">
483
- <a name="M000008"></a>
482
+ <div id="method-M000009" class="method-detail">
483
+ <a name="M000009"></a>
484
484
 
485
485
  <div class="method-heading">
486
- <a href="#M000008" class="method-signature">
486
+ <a href="#M000009" class="method-signature">
487
487
  <span class="method-name">get</span><span class="method-args">(page_title)</span>
488
488
  </a>
489
489
  </div>
@@ -491,7 +491,7 @@ version)
491
491
  <div class="method-description">
492
492
  <p>
493
493
  Fetch <a href="../MediaWiki.html">MediaWiki</a> page in <a
494
- href="../MediaWiki.html">MediaWiki</a> format
494
+ href="../MediaWiki.html">MediaWiki</a> format. Does not follow redirects.
495
495
  </p>
496
496
  <dl>
497
497
  <dt>page_title</dt><dd>Page title to fetch
@@ -499,16 +499,16 @@ href="../MediaWiki.html">MediaWiki</a> format
499
499
  </dd>
500
500
  </dl>
501
501
  <p>
502
- Returns content of page as string, nil if the page does not exist
502
+ Returns content of page as string, nil if the page does not exist.
503
503
  </p>
504
504
  <p><a class="source-toggle" href="#"
505
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
506
- <div class="method-source-code" id="M000008-source">
505
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
506
+ <div class="method-source-code" id="M000009-source">
507
507
  <pre>
508
508
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 60</span>
509
509
  60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
510
510
  61: <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">'revisions'</span>, <span class="ruby-value str">'rvprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'content'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
511
- 62: <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">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
511
+ 62: <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>]
512
512
  63: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">page</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
513
513
  64: <span class="ruby-keyword kw">nil</span>
514
514
  65: <span class="ruby-keyword kw">else</span>
@@ -520,11 +520,11 @@ Returns content of page as string, nil if the page does not exist
520
520
  </div>
521
521
  </div>
522
522
 
523
- <div id="method-M000018" class="method-detail">
524
- <a name="M000018"></a>
523
+ <div id="method-M000020" class="method-detail">
524
+ <a name="M000020"></a>
525
525
 
526
526
  <div class="method-heading">
527
- <a href="#M000018" class="method-signature">
527
+ <a href="#M000020" class="method-signature">
528
528
  <span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
529
529
  </a>
530
530
  </div>
@@ -576,47 +576,47 @@ Output:
576
576
  &quot;user&quot; =&gt; &quot;Valdas&quot;
577
577
  </pre>
578
578
  <p><a class="source-toggle" href="#"
579
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
580
- <div class="method-source-code" id="M000018-source">
579
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
580
+ <div class="method-source-code" id="M000020-source">
581
581
  <pre>
582
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 332</span>
583
- 332: <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>={})
584
- 333: <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>) \
585
- 334: <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>)
586
- 335: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
587
- 336: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
588
- 337: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
589
- 338: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
590
- 339: )
591
- 340:
592
- 341: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
593
- 342: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
594
- 343: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
595
- 344: <span class="ruby-keyword kw">else</span>
596
- 345: <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>
597
- 346: <span class="ruby-keyword kw">end</span>
598
- 347:
599
- 348: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
600
- 349: <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>]
601
- 350: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">page</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
602
- 351: <span class="ruby-keyword kw">nil</span>
603
- 352: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/redirects/r&quot;</span>]
604
- 353: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
605
- 354: <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>)
606
- 355: <span class="ruby-keyword kw">else</span>
607
- 356: <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>
608
- 357: <span class="ruby-keyword kw">end</span>
609
- 358: <span class="ruby-keyword kw">end</span>
582
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 349</span>
583
+ 349: <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>={})
584
+ 350: <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>) \
585
+ 351: <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>)
586
+ 352: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
587
+ 353: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
588
+ 354: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
589
+ 355: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
590
+ 356: )
591
+ 357:
592
+ 358: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
593
+ 359: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
594
+ 360: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
595
+ 361: <span class="ruby-keyword kw">else</span>
596
+ 362: <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>
597
+ 363: <span class="ruby-keyword kw">end</span>
598
+ 364:
599
+ 365: <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>)
600
+ 366: <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>]
601
+ 367: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">page</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
602
+ 368: <span class="ruby-keyword kw">nil</span>
603
+ 369: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/redirects/r&quot;</span>]
604
+ 370: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
605
+ 371: <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>)
606
+ 372: <span class="ruby-keyword kw">else</span>
607
+ 373: <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>
608
+ 374: <span class="ruby-keyword kw">end</span>
609
+ 375: <span class="ruby-keyword kw">end</span>
610
610
  </pre>
611
611
  </div>
612
612
  </div>
613
613
  </div>
614
614
 
615
- <div id="method-M000020" class="method-detail">
616
- <a name="M000020"></a>
615
+ <div id="method-M000022" class="method-detail">
616
+ <a name="M000022"></a>
617
617
 
618
618
  <div class="method-heading">
619
- <a href="#M000020" class="method-signature">
619
+ <a href="#M000022" class="method-signature">
620
620
  <span class="method-name">import</span><span class="method-args">(xmlfile)</span>
621
621
  </a>
622
622
  </div>
@@ -632,39 +632,39 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
632
632
  </dl>
633
633
  <p>
634
634
  Returns XML array &lt;api&gt;&lt;<a
635
- href="Gateway.html#M000020">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
635
+ href="Gateway.html#M000022">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
636
636
  &lt;page revisions=&quot;1&quot;&gt; (or more) means successfully imported
637
637
  &lt;page revisions=&quot;0&quot;&gt; means duplicate, not imported
638
638
  </p>
639
639
  <p><a class="source-toggle" href="#"
640
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
641
- <div class="method-source-code" id="M000020-source">
640
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
641
+ <div class="method-source-code" id="M000022-source">
642
642
  <pre>
643
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 381</span>
644
- 381: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
645
- 382: <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>,
646
- 383: <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>),
647
- 384: <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>
648
- 385: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
649
- 386: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
650
- 387: <span class="ruby-keyword kw">end</span>
643
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 398</span>
644
+ 398: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
645
+ 399: <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>,
646
+ 400: <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>),
647
+ 401: <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>
648
+ 402: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
649
+ 403: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
650
+ 404: <span class="ruby-keyword kw">end</span>
651
651
  </pre>
652
652
  </div>
653
653
  </div>
654
654
  </div>
655
655
 
656
- <div id="method-M000014" class="method-detail">
657
- <a name="M000014"></a>
656
+ <div id="method-M000015" class="method-detail">
657
+ <a name="M000015"></a>
658
658
 
659
659
  <div class="method-heading">
660
- <a href="#M000014" class="method-signature">
660
+ <a href="#M000015" class="method-signature">
661
661
  <span class="method-name">list</span><span class="method-args">(key)</span>
662
662
  </a>
663
663
  </div>
664
664
 
665
665
  <div class="method-description">
666
666
  <p>
667
- Get a <a href="Gateway.html#M000014">list</a> of matching page titles in a
667
+ Get a <a href="Gateway.html#M000015">list</a> of matching page titles in a
668
668
  namespace
669
669
  </p>
670
670
  <dl>
@@ -677,39 +677,38 @@ defaults to main (namespace 0) if none given.
677
677
  Returns array of page titles (empty if no matches)
678
678
  </p>
679
679
  <p><a class="source-toggle" href="#"
680
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
681
- <div class="method-source-code" id="M000014-source">
680
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
681
+ <div class="method-source-code" id="M000015-source">
682
682
  <pre>
683
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 173</span>
684
- 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
685
- 174: <span class="ruby-identifier">titles</span> = []
686
- 175: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
687
- 176: <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>
688
- 177: <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>
689
- 178: <span class="ruby-keyword kw">begin</span>
690
- 179: <span class="ruby-identifier">form_data</span> =
691
- 180: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
692
- 181: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
693
- 182: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
694
- 183: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
695
- 184: <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>],
696
- 185: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
697
- 186: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
698
- 187: <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue/allpages'</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'apfrom'</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
699
- 188: <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>] }
700
- 189: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
701
- 190: <span class="ruby-identifier">titles</span>
702
- 191: <span class="ruby-keyword kw">end</span>
683
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 172</span>
684
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
685
+ 173: <span class="ruby-identifier">titles</span> = []
686
+ 174: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
687
+ 175: <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>
688
+ 176: <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>
689
+ 177: <span class="ruby-keyword kw">begin</span>
690
+ 178: <span class="ruby-identifier">form_data</span> =
691
+ 179: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
692
+ 180: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
693
+ 181: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
694
+ 182: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
695
+ 183: <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>],
696
+ 184: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
697
+ 185: <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>)
698
+ 186: <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>] }
699
+ 187: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
700
+ 188: <span class="ruby-identifier">titles</span>
701
+ 189: <span class="ruby-keyword kw">end</span>
703
702
  </pre>
704
703
  </div>
705
704
  </div>
706
705
  </div>
707
706
 
708
- <div id="method-M000007" class="method-detail">
709
- <a name="M000007"></a>
707
+ <div id="method-M000008" class="method-detail">
708
+ <a name="M000008"></a>
710
709
 
711
710
  <div class="method-heading">
712
- <a href="#M000007" class="method-signature">
711
+ <a href="#M000008" class="method-signature">
713
712
  <span class="method-name">login</span><span class="method-args">(username, password, domain = 'local')</span>
714
713
  </a>
715
714
  </div>
@@ -731,11 +730,11 @@ defaults to &#8216;local&#8217; if not given
731
730
  </dd>
732
731
  </dl>
733
732
  <p>
734
- Throws error if <a href="Gateway.html#M000007">login</a> fails
733
+ Throws error if <a href="Gateway.html#M000008">login</a> fails
735
734
  </p>
736
735
  <p><a class="source-toggle" href="#"
737
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
738
- <div class="method-source-code" id="M000007-source">
736
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
737
+ <div class="method-source-code" id="M000008-source">
739
738
  <pre>
740
739
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 48</span>
741
740
  48: <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>)
@@ -749,18 +748,18 @@ Throws error if <a href="Gateway.html#M000007">login</a> fails
749
748
  </div>
750
749
  </div>
751
750
 
752
- <div id="method-M000011" class="method-detail">
753
- <a name="M000011"></a>
751
+ <div id="method-M000012" class="method-detail">
752
+ <a name="M000012"></a>
754
753
 
755
754
  <div class="method-heading">
756
- <a href="#M000011" class="method-signature">
755
+ <a href="#M000012" class="method-signature">
757
756
  <span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
758
757
  </a>
759
758
  </div>
760
759
 
761
760
  <div class="method-description">
762
761
  <p>
763
- Move a page to a <a href="Gateway.html#M000006">new</a> title
762
+ Move a page to a <a href="Gateway.html#M000007">new</a> title
764
763
  </p>
765
764
  <dl>
766
765
  <dt>from</dt><dd>Old page name
@@ -783,13 +782,13 @@ Options:
783
782
  <li>[:movetalk] Move associated talkpages
784
783
 
785
784
  </li>
786
- <li>[:noredirect] Do not <a href="Gateway.html#M000010">create</a> a redirect
785
+ <li>[:noredirect] Do not <a href="Gateway.html#M000011">create</a> a redirect
787
786
  page from old name. Requires the &#8216;suppressredirect&#8217; user right,
788
787
  otherwise MW will silently ignore the option and <a
789
- href="Gateway.html#M000010">create</a> the redirect anyway.
788
+ href="Gateway.html#M000011">create</a> the redirect anyway.
790
789
 
791
790
  </li>
792
- <li>[:reason] Reason for <a href="Gateway.html#M000011">move</a>
791
+ <li>[:reason] Reason for <a href="Gateway.html#M000012">move</a>
793
792
 
794
793
  </li>
795
794
  <li>[:watch] Add page and any redirect to watchlist
@@ -800,8 +799,8 @@ href="Gateway.html#M000010">create</a> the redirect anyway.
800
799
  </li>
801
800
  </ul>
802
801
  <p><a class="source-toggle" href="#"
803
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
804
- <div class="method-source-code" id="M000011-source">
802
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
803
+ <div class="method-source-code" id="M000012-source">
805
804
  <pre>
806
805
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 136</span>
807
806
  136: <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>={})
@@ -816,46 +815,83 @@ href="Gateway.html#M000010">create</a> the redirect anyway.
816
815
  </div>
817
816
  </div>
818
817
 
819
- <div id="method-M000022" class="method-detail">
820
- <a name="M000022"></a>
818
+ <div id="method-M000024" class="method-detail">
819
+ <a name="M000024"></a>
821
820
 
822
821
  <div class="method-heading">
823
- <a href="#M000022" class="method-signature">
822
+ <a href="#M000024" class="method-signature">
824
823
  <span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
825
824
  </a>
826
825
  </div>
827
826
 
828
827
  <div class="method-description">
829
828
  <p>
830
- Get a <a href="Gateway.html#M000014">list</a> of all known namespaces
829
+ Get a <a href="Gateway.html#M000015">list</a> of all known namespaces
831
830
  </p>
832
831
  <p>
833
832
  Returns array of namespaces (name =&gt; id)
834
833
  </p>
835
834
  <p><a class="source-toggle" href="#"
836
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
837
- <div class="method-source-code" id="M000022-source">
835
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
836
+ <div class="method-source-code" id="M000024-source">
838
837
  <pre>
839
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 402</span>
840
- 402: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
841
- 403: <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> }
842
- 404: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
843
- 405: <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>
844
- 406: <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>
845
- 407: <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>
846
- 408: <span class="ruby-identifier">namespaces</span>
847
- 409: <span class="ruby-keyword kw">end</span>
848
- 410: <span class="ruby-keyword kw">end</span>
838
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 419</span>
839
+ 419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
840
+ 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">'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> }
841
+ 421: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
842
+ 422: <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>
843
+ 423: <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>
844
+ 424: <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>
845
+ 425: <span class="ruby-identifier">namespaces</span>
846
+ 426: <span class="ruby-keyword kw">end</span>
847
+ 427: <span class="ruby-keyword kw">end</span>
849
848
  </pre>
850
849
  </div>
851
850
  </div>
852
851
  </div>
853
852
 
854
- <div id="method-M000009" class="method-detail">
855
- <a name="M000009"></a>
853
+ <div id="method-M000019" class="method-detail">
854
+ <a name="M000019"></a>
856
855
 
857
856
  <div class="method-heading">
858
- <a href="#M000009" class="method-signature">
857
+ <a href="#M000019" class="method-signature">
858
+ <span class="method-name">redirect?</span><span class="method-args">(page_title)</span>
859
+ </a>
860
+ </div>
861
+
862
+ <div class="method-description">
863
+ <p>
864
+ Checks if page is a redirect.
865
+ </p>
866
+ <dl>
867
+ <dt>page_title</dt><dd>Page title to fetch
868
+
869
+ </dd>
870
+ </dl>
871
+ <p>
872
+ Returns true if the page is a redirect, false if it is not or the page does
873
+ not exist.
874
+ </p>
875
+ <p><a class="source-toggle" href="#"
876
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
877
+ <div class="method-source-code" id="M000019-source">
878
+ <pre>
879
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 317</span>
880
+ 317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect?</span>(<span class="ruby-identifier">page_title</span>)
881
+ 318: <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>}
882
+ 319: <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>]
883
+ 320: <span class="ruby-operator">!</span><span class="ruby-operator">!</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>])
884
+ 321: <span class="ruby-keyword kw">end</span>
885
+ </pre>
886
+ </div>
887
+ </div>
888
+ </div>
889
+
890
+ <div id="method-M000010" class="method-detail">
891
+ <a name="M000010"></a>
892
+
893
+ <div class="method-heading">
894
+ <a href="#M000010" class="method-signature">
859
895
  <span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
860
896
  </a>
861
897
  </div>
@@ -892,8 +928,8 @@ Options:
892
928
  Returns rendered page as string, or nil if the page does not exist
893
929
  </p>
894
930
  <p><a class="source-toggle" href="#"
895
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
896
- <div class="method-source-code" id="M000009-source">
931
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
932
+ <div class="method-source-code" id="M000010-source">
897
933
  <pre>
898
934
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 81</span>
899
935
  81: <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> = {})
@@ -904,7 +940,7 @@ Returns rendered page as string, or nil if the page does not exist
904
940
  86: <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>)}
905
941
  87:
906
942
  88: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
907
- 89: <span class="ruby-identifier">parsed</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;parse&quot;</span>]
943
+ 89: <span class="ruby-identifier">parsed</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;parse&quot;</span>]
908
944
  90: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;revid&quot;</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0'</span>
909
945
  91: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;text&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;!--(.|\s)*?--&gt;/</span>, <span class="ruby-value str">''</span>)
910
946
  92: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
@@ -926,29 +962,30 @@ Returns rendered page as string, or nil if the page does not exist
926
962
  </div>
927
963
  </div>
928
964
 
929
- <div id="method-M000016" class="method-detail">
930
- <a name="M000016"></a>
965
+ <div id="method-M000017" class="method-detail">
966
+ <a name="M000017"></a>
931
967
 
932
968
  <div class="method-heading">
933
- <a href="#M000016" class="method-signature">
934
- <span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=10)</span>
969
+ <a href="#M000017" class="method-signature">
970
+ <span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=@options[:limit])</span>
935
971
  </a>
936
972
  </div>
937
973
 
938
974
  <div class="method-description">
939
975
  <p>
940
- Get a <a href="Gateway.html#M000014">list</a> of pages with matching
976
+ Get a <a href="Gateway.html#M000015">list</a> of pages with matching
941
977
  content in given namespaces
942
978
  </p>
943
979
  <dl>
944
980
  <dt>key</dt><dd>Search key
945
981
 
946
982
  </dd>
947
- <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000016">search</a>
948
- (defaults to NS_MAIN only)
983
+ <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000017">search</a>
984
+ (defaults to main only)
949
985
 
950
986
  </dd>
951
- <dt>limit</dt><dd>Max number of hits to return
987
+ <dt>limit</dt><dd>Maximum number of hits to ask for (defaults to 500; note that Wikimedia
988
+ Foundation wikis allow only 50 for normal users)
952
989
 
953
990
  </dd>
954
991
  </dl>
@@ -956,33 +993,42 @@ content in given namespaces
956
993
  Returns array of page titles (empty if no matches)
957
994
  </p>
958
995
  <p><a class="source-toggle" href="#"
959
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
960
- <div class="method-source-code" id="M000016-source">
996
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
997
+ <div class="method-source-code" id="M000017-source">
961
998
  <pre>
962
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 224</span>
963
- 224: <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-value">10</span>)
964
- 225: <span class="ruby-identifier">titles</span> = []
999
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 221</span>
1000
+ 221: <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>])
1001
+ 222: <span class="ruby-identifier">titles</span> = []
1002
+ 223: <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">nil</span>
1003
+ 224: <span class="ruby-identifier">in_progress</span> = <span class="ruby-keyword kw">true</span>
1004
+ 225:
965
1005
  226: <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>,
966
1006
  227: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
967
1007
  228: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
968
1008
  229: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
969
- 230: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>}
970
- 231: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
971
- 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>
972
- 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>)
973
- 234: <span class="ruby-keyword kw">end</span>
974
- 235: <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">make_api_request</span>(<span class="ruby-identifier">form_data</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>] }
975
- 236: <span class="ruby-keyword kw">end</span>
1009
+ 230: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>
1010
+ 231: }
1011
+ 232: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
1012
+ 233: <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>
1013
+ 234: <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>)
1014
+ 235: <span class="ruby-keyword kw">end</span>
1015
+ 236: <span class="ruby-keyword kw">begin</span>
1016
+ 237: <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>
1017
+ 238: <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>)
1018
+ 239: <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>] }
1019
+ 240: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">offset</span>
1020
+ 241: <span class="ruby-identifier">titles</span>
1021
+ 242: <span class="ruby-keyword kw">end</span>
976
1022
  </pre>
977
1023
  </div>
978
1024
  </div>
979
1025
  </div>
980
1026
 
981
- <div id="method-M000024" class="method-detail">
982
- <a name="M000024"></a>
1027
+ <div id="method-M000026" class="method-detail">
1028
+ <a name="M000026"></a>
983
1029
 
984
1030
  <div class="method-heading">
985
- <a href="#M000024" class="method-signature">
1031
+ <a href="#M000026" class="method-signature">
986
1032
  <span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
987
1033
  </a>
988
1034
  </div>
@@ -1004,26 +1050,26 @@ Execute Semantic Mediawiki query
1004
1050
  Returns result as an HTML string
1005
1051
  </p>
1006
1052
  <p><a class="source-toggle" href="#"
1007
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
1008
- <div class="method-source-code" id="M000024-source">
1053
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
1054
+ <div class="method-source-code" id="M000026-source">
1009
1055
  <pre>
1010
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 431</span>
1011
- 431: <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> = [])
1012
- 432: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
1013
- 433: <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> }
1014
- 434: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1015
- 435: <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>
1016
- 436: <span class="ruby-keyword kw">end</span>
1056
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 448</span>
1057
+ 448: <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> = [])
1058
+ 449: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
1059
+ 450: <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> }
1060
+ 451: <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>)
1061
+ 452: <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>
1062
+ 453: <span class="ruby-keyword kw">end</span>
1017
1063
  </pre>
1018
1064
  </div>
1019
1065
  </div>
1020
1066
  </div>
1021
1067
 
1022
- <div id="method-M000013" class="method-detail">
1023
- <a name="M000013"></a>
1068
+ <div id="method-M000014" class="method-detail">
1069
+ <a name="M000014"></a>
1024
1070
 
1025
1071
  <div class="method-heading">
1026
- <a href="#M000013" class="method-signature">
1072
+ <a href="#M000014" class="method-signature">
1027
1073
  <span class="method-name">undelete</span><span class="method-args">(title)</span>
1028
1074
  </a>
1029
1075
  </div>
@@ -1033,46 +1079,45 @@ Returns result as an HTML string
1033
1079
  Undelete all revisions of one page.
1034
1080
  </p>
1035
1081
  <dl>
1036
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000013">undelete</a>
1082
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000014">undelete</a>
1037
1083
 
1038
1084
  </dd>
1039
1085
  </dl>
1040
1086
  <p>
1041
1087
  Returns number of revisions undeleted, or zero if nothing to <a
1042
- href="Gateway.html#M000013">undelete</a>
1088
+ href="Gateway.html#M000014">undelete</a>
1043
1089
  </p>
1044
1090
  <p><a class="source-toggle" href="#"
1045
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
1046
- <div class="method-source-code" id="M000013-source">
1091
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
1092
+ <div class="method-source-code" id="M000014-source">
1047
1093
  <pre>
1048
1094
  <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 157</span>
1049
1095
  157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
1050
1096
  158: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
1051
1097
  159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
1052
1098
  160: <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> }
1053
- 161: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1054
- 162: <span class="ruby-identifier">xml</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>
1055
- 163: <span class="ruby-keyword kw">else</span>
1056
- 164: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1057
- 165: <span class="ruby-keyword kw">end</span>
1058
- 166: <span class="ruby-keyword kw">end</span>
1099
+ 161: <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>
1100
+ 162: <span class="ruby-keyword kw">else</span>
1101
+ 163: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1102
+ 164: <span class="ruby-keyword kw">end</span>
1103
+ 165: <span class="ruby-keyword kw">end</span>
1059
1104
  </pre>
1060
1105
  </div>
1061
1106
  </div>
1062
1107
  </div>
1063
1108
 
1064
- <div id="method-M000017" class="method-detail">
1065
- <a name="M000017"></a>
1109
+ <div id="method-M000018" class="method-detail">
1110
+ <a name="M000018"></a>
1066
1111
 
1067
1112
  <div class="method-heading">
1068
- <a href="#M000017" class="method-signature">
1113
+ <a href="#M000018" class="method-signature">
1069
1114
  <span class="method-name">upload</span><span class="method-args">(path, options={})</span>
1070
1115
  </a>
1071
1116
  </div>
1072
1117
 
1073
1118
  <div class="method-description">
1074
1119
  <p>
1075
- Upload a file, or <a href="Gateway.html#M000008">get</a> the status of
1120
+ Upload a file, or <a href="Gateway.html#M000009">get</a> the status of
1076
1121
  pending uploads. Several methods are available:
1077
1122
  </p>
1078
1123
  <ul>
@@ -1091,7 +1136,7 @@ Requires Mediawiki 1.16+
1091
1136
  Arguments:
1092
1137
  </p>
1093
1138
  <ul>
1094
- <li>[path] Path to file to <a href="Gateway.html#M000017">upload</a>. Set to
1139
+ <li>[path] Path to file to <a href="Gateway.html#M000018">upload</a>. Set to
1095
1140
  nil if uploading from URL.
1096
1141
 
1097
1142
  </li>
@@ -1101,7 +1146,7 @@ nil if uploading from URL.
1101
1146
  </ul>
1102
1147
  <p>
1103
1148
  Note that queries using session keys must be done in the same <a
1104
- href="Gateway.html#M000007">login</a> session as the query that originally
1149
+ href="Gateway.html#M000008">login</a> session as the query that originally
1105
1150
  returned the key (i.e. do not log out and then log back in).
1106
1151
  </p>
1107
1152
  <p>
@@ -1113,12 +1158,12 @@ given), options[:target] is alias for this.
1113
1158
 
1114
1159
  </li>
1115
1160
  <li>&#8216;comment&#8217; - Upload comment. Also used as the initial page text
1116
- for <a href="Gateway.html#M000006">new</a> files if &quot;text&quot; is not
1161
+ for <a href="Gateway.html#M000007">new</a> files if &quot;text&quot; is not
1117
1162
  specified.
1118
1163
 
1119
1164
  </li>
1120
1165
  <li>&#8216;text&#8217; - Initial page text for <a
1121
- href="Gateway.html#M000006">new</a> files
1166
+ href="Gateway.html#M000007">new</a> files
1122
1167
 
1123
1168
  </li>
1124
1169
  <li>&#8216;watch&#8217; - Watch the page
@@ -1155,43 +1200,43 @@ Examples:
1155
1200
  mw.upload(nil, 'filename' =&gt; &quot;RemoteFile2.jpg&quot;, 'url' =&gt; 'http://remote.com/server/file.jpg')
1156
1201
  </pre>
1157
1202
  <p><a class="source-toggle" href="#"
1158
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1159
- <div class="method-source-code" id="M000017-source">
1203
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
1204
+ <div class="method-source-code" id="M000018-source">
1160
1205
  <pre>
1161
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 272</span>
1162
- 272: <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>={})
1163
- 273: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1164
- 274: <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>]
1165
- 275: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1166
- 276: <span class="ruby-keyword kw">end</span>
1167
- 277:
1168
- 278: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1169
- 279: <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>]
1170
- 280: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1171
- 281: <span class="ruby-keyword kw">end</span>
1172
- 282:
1173
- 283: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1174
- 284: <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>]
1175
- 285: <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>]
1176
- 286: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1206
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 278</span>
1207
+ 278: <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>={})
1208
+ 279: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1209
+ 280: <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>]
1210
+ 281: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1211
+ 282: <span class="ruby-keyword kw">end</span>
1212
+ 283:
1213
+ 284: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1214
+ 285: <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>]
1215
+ 286: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1177
1216
  287: <span class="ruby-keyword kw">end</span>
1178
1217
  288:
1179
- 289: <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>
1180
- 290: <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>
1181
- 291: <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>]
1182
- 292: <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>
1183
- 293:
1184
- 294: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1185
- 295: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1186
- 296: ) <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>]
1187
- 297:
1188
- 298: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1189
- 299: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1190
- 300: <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>])
1191
- 301: )
1192
- 302:
1193
- 303: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1194
- 304: <span class="ruby-keyword kw">end</span>
1218
+ 289: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1219
+ 290: <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>]
1220
+ 291: <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>]
1221
+ 292: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1222
+ 293: <span class="ruby-keyword kw">end</span>
1223
+ 294:
1224
+ 295: <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>
1225
+ 296: <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>
1226
+ 297: <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>]
1227
+ 298: <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>
1228
+ 299:
1229
+ 300: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1230
+ 301: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1231
+ 302: ) <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>]
1232
+ 303:
1233
+ 304: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1234
+ 305: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1235
+ 306: <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>])
1236
+ 307: )
1237
+ 308:
1238
+ 309: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1239
+ 310: <span class="ruby-keyword kw">end</span>
1195
1240
  </pre>
1196
1241
  </div>
1197
1242
  </div>
@@ -1199,115 +1244,118 @@ Examples:
1199
1244
 
1200
1245
  <h3 class="section-bar">Private Instance methods</h3>
1201
1246
 
1202
- <div id="method-M000028" class="method-detail">
1203
- <a name="M000028"></a>
1247
+ <div id="method-M000030" class="method-detail">
1248
+ <a name="M000030"></a>
1204
1249
 
1205
1250
  <div class="method-heading">
1206
- <a href="#M000028" class="method-signature">
1251
+ <a href="#M000030" class="method-signature">
1207
1252
  <span class="method-name">get_response</span><span class="method-args">(res)</span>
1208
1253
  </a>
1209
1254
  </div>
1210
1255
 
1211
1256
  <div class="method-description">
1212
1257
  <p>
1213
- Get API XML response If there are errors, raise exception Otherwise return
1214
- XML root
1258
+ Get API XML response If there are errors or warnings, raise exception
1259
+ Otherwise return XML root
1215
1260
  </p>
1216
1261
  <p><a class="source-toggle" href="#"
1217
- onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1218
- <div class="method-source-code" id="M000028-source">
1262
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1263
+ <div class="method-source-code" id="M000030-source">
1219
1264
  <pre>
1220
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 498</span>
1221
- 498: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1222
- 499: <span class="ruby-keyword kw">begin</span>
1223
- 500: <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>
1224
- 501: <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>
1225
- 502: <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>
1226
- 503: <span class="ruby-keyword kw">end</span>
1227
- 504: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1228
- 505: <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>
1229
- 506: <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>]
1230
- 507: <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>]
1231
- 508: <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>]
1232
- 509: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1233
- 510: <span class="ruby-keyword kw">end</span>
1234
- 511: <span class="ruby-identifier">doc</span>
1235
- 512: <span class="ruby-keyword kw">end</span>
1265
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 517</span>
1266
+ 517: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1267
+ 518: <span class="ruby-keyword kw">begin</span>
1268
+ 519: <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>
1269
+ 520: <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>
1270
+ 521: <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>
1271
+ 522: <span class="ruby-keyword kw">end</span>
1272
+ 523: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1273
+ 524: <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>
1274
+ 525: <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>]
1275
+ 526: <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>]
1276
+ 527: <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>]
1277
+ 528: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1278
+ 529: <span class="ruby-keyword kw">end</span>
1279
+ 530: <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>] <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ignorewarnings</span>]
1280
+ 531: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API warning: #{doc.elements[&quot;warnings&quot;].children.map {|e| e.text}.join(&quot;, &quot;)}&quot;</span>
1281
+ 532: <span class="ruby-keyword kw">end</span>
1282
+ 533: <span class="ruby-identifier">doc</span>
1283
+ 534: <span class="ruby-keyword kw">end</span>
1236
1284
  </pre>
1237
1285
  </div>
1238
1286
  </div>
1239
1287
  </div>
1240
1288
 
1241
- <div id="method-M000025" class="method-detail">
1242
- <a name="M000025"></a>
1289
+ <div id="method-M000027" class="method-detail">
1290
+ <a name="M000027"></a>
1243
1291
 
1244
1292
  <div class="method-heading">
1245
- <a href="#M000025" class="method-signature">
1293
+ <a href="#M000027" class="method-signature">
1246
1294
  <span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
1247
1295
  </a>
1248
1296
  </div>
1249
1297
 
1250
1298
  <div class="method-description">
1251
1299
  <p>
1252
- Fetch token (type &#8216;<a href="Gateway.html#M000012">delete</a>&#8217;,
1300
+ Fetch token (type &#8216;<a href="Gateway.html#M000013">delete</a>&#8217;,
1253
1301
  &#8216;edit&#8217;, &#8216;<a
1254
- href="Gateway.html#M000020">import</a>&#8217;, &#8216;<a
1255
- href="Gateway.html#M000011">move</a>&#8217;)
1302
+ href="Gateway.html#M000022">import</a>&#8217;, &#8216;<a
1303
+ href="Gateway.html#M000012">move</a>&#8217;)
1256
1304
  </p>
1257
1305
  <p><a class="source-toggle" href="#"
1258
- onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
1259
- <div class="method-source-code" id="M000025-source">
1306
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1307
+ <div class="method-source-code" id="M000027-source">
1260
1308
  <pre>
1261
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 441</span>
1262
- 441: <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>)
1263
- 442: <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>}
1264
- 443: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1265
- 444: <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>]
1266
- 445: <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>
1267
- 446: <span class="ruby-identifier">token</span>
1268
- 447: <span class="ruby-keyword kw">end</span>
1309
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 458</span>
1310
+ 458: <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>)
1311
+ 459: <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>}
1312
+ 460: <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>)
1313
+ 461: <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>]
1314
+ 462: <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>
1315
+ 463: <span class="ruby-identifier">token</span>
1316
+ 464: <span class="ruby-keyword kw">end</span>
1269
1317
  </pre>
1270
1318
  </div>
1271
1319
  </div>
1272
1320
  </div>
1273
1321
 
1274
- <div id="method-M000026" class="method-detail">
1275
- <a name="M000026"></a>
1322
+ <div id="method-M000028" class="method-detail">
1323
+ <a name="M000028"></a>
1276
1324
 
1277
1325
  <div class="method-heading">
1278
- <a href="#M000026" class="method-signature">
1326
+ <a href="#M000028" class="method-signature">
1279
1327
  <span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
1280
1328
  </a>
1281
1329
  </div>
1282
1330
 
1283
1331
  <div class="method-description">
1284
1332
  <p><a class="source-toggle" href="#"
1285
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
1286
- <div class="method-source-code" id="M000026-source">
1333
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1334
+ <div class="method-source-code" id="M000028-source">
1287
1335
  <pre>
1288
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 449</span>
1289
- 449: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1290
- 450: <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>}
1291
- 451: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1292
- 452: <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>]
1293
- 453: <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>]
1294
- 454: <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>
1295
- 455: <span class="ruby-identifier">token</span>
1296
- 456: <span class="ruby-keyword kw">else</span>
1297
- 457: <span class="ruby-keyword kw">nil</span>
1298
- 458: <span class="ruby-keyword kw">end</span>
1299
- 459: <span class="ruby-keyword kw">end</span>
1336
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 466</span>
1337
+ 466: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1338
+ 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">'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>}
1339
+ 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>)
1340
+ 469: <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>]
1341
+ 470: <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>]
1342
+ 471: <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>
1343
+ 472: <span class="ruby-identifier">token</span>
1344
+ 473: <span class="ruby-keyword kw">else</span>
1345
+ 474: <span class="ruby-keyword kw">nil</span>
1346
+ 475: <span class="ruby-keyword kw">end</span>
1347
+ 476: <span class="ruby-keyword kw">end</span>
1300
1348
  </pre>
1301
1349
  </div>
1302
1350
  </div>
1303
1351
  </div>
1304
1352
 
1305
- <div id="method-M000027" class="method-detail">
1306
- <a name="M000027"></a>
1353
+ <div id="method-M000029" class="method-detail">
1354
+ <a name="M000029"></a>
1307
1355
 
1308
1356
  <div class="method-heading">
1309
- <a href="#M000027" class="method-signature">
1310
- <span class="method-name">make_api_request</span><span class="method-args">(form_data, retry_count=1)</span>
1357
+ <a href="#M000029" class="method-signature">
1358
+ <span class="method-name">make_api_request</span><span class="method-args">(form_data, continue_xpath=nil, retry_count=1)</span>
1311
1359
  </a>
1312
1360
  </div>
1313
1361
 
@@ -1318,44 +1366,50 @@ Make generic request to API
1318
1366
  <dl>
1319
1367
  <dt>form_data</dt><dd>hash or string of attributes to post
1320
1368
 
1369
+ </dd>
1370
+ <dt>continue_xpath</dt><dd>XPath selector for query continue parameter
1371
+
1372
+ </dd>
1373
+ <dt>retry_count</dt><dd>Counter for retries
1374
+
1321
1375
  </dd>
1322
1376
  </dl>
1323
1377
  <p>
1324
1378
  Returns XML document
1325
1379
  </p>
1326
1380
  <p><a class="source-toggle" href="#"
1327
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1328
- <div class="method-source-code" id="M000027-source">
1381
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
1382
+ <div class="method-source-code" id="M000029-source">
1329
1383
  <pre>
1330
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 466</span>
1331
- 466: <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">retry_count</span>=<span class="ruby-value">1</span>)
1332
- 467: <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>
1333
- 468: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
1334
- 469: <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>]
1335
- 470: <span class="ruby-keyword kw">end</span>
1336
- 471: <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>)
1337
- 472: <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>
1338
- 473: <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>]
1339
- 474: <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>)
1340
- 475: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
1341
- 476: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1342
- 477: <span class="ruby-keyword kw">end</span>
1343
- 478: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1344
- 479: <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>
1345
- 480: <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>)
1346
- 481: <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>)
1347
- 482: <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>]
1348
- 483: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1349
- 484: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1350
- 485: <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>
1351
- 486: <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>]))
1352
- 487: <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>
1353
- 488: <span class="ruby-keyword kw">end</span>
1354
- 489: <span class="ruby-keyword kw">end</span>
1355
- 490: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
1356
- 491: <span class="ruby-keyword kw">end</span>
1357
- 492:
1358
- 493: <span class="ruby-keyword kw">end</span>
1384
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 485</span>
1385
+ 485: <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>)
1386
+ 486: <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>
1387
+ 487: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
1388
+ 488: <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>]
1389
+ 489: <span class="ruby-keyword kw">end</span>
1390
+ 490: <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>)
1391
+ 491: <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>
1392
+ 492: <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>]
1393
+ 493: <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>)
1394
+ 494: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
1395
+ 495: <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>)
1396
+ 496: <span class="ruby-keyword kw">end</span>
1397
+ 497: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1398
+ 498: <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>
1399
+ 499: <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>)
1400
+ 500: <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>)
1401
+ 501: <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>]
1402
+ 502: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1403
+ 503: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1404
+ 504: <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>
1405
+ 505: <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>]))
1406
+ 506: <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>
1407
+ 507: <span class="ruby-keyword kw">end</span>
1408
+ 508: <span class="ruby-keyword kw">end</span>
1409
+ 509: <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>
1410
+ 510: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue</span>]
1411
+ 511: <span class="ruby-keyword kw">end</span>
1412
+ 512: <span class="ruby-keyword kw">end</span>
1359
1413
  </pre>
1360
1414
  </div>
1361
1415
  </div>