mediawiki-gateway 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ require 'rake'
2
2
  require 'rake/gempackagetask'
3
3
  require 'rake/rdoctask'
4
4
  require 'spec/rake/spectask'
5
+ require 'lib/media_wiki'
5
6
 
6
7
  task :default => ['spec']
7
8
 
@@ -34,6 +35,7 @@ begin
34
35
  gemspec.email = "jpatokal@iki.fi"
35
36
  gemspec.homepage = "http://github.com/jpatokal/mediawiki-gateway"
36
37
  gemspec.authors = ["Jani Patokallio"]
38
+ gemspec.version = MediaWiki::VERSION
37
39
  gemspec.add_dependency 'rest-client'
38
40
  gemspec.add_development_dependency 'sham_rack'
39
41
  gemspec.add_development_dependency 'jeweler'
@@ -88,9 +88,11 @@
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;
91
93
  <a href="#M000003">uri_to_wiki</a>&nbsp;&nbsp;
92
- <a href="#M000001">version</a>&nbsp;&nbsp;
93
- <a href="#M000002">wiki_to_uri</a>&nbsp;&nbsp;
94
+ <a href="#M000005">version</a>&nbsp;&nbsp;
95
+ <a href="#M000004">wiki_to_uri</a>&nbsp;&nbsp;
94
96
  </div>
95
97
  </div>
96
98
 
@@ -119,6 +121,84 @@ Class <a href="MediaWiki/Gateway.html" class="link">MediaWiki::Gateway</a><br />
119
121
  <div id="methods">
120
122
  <h3 class="section-bar">Public Class methods</h3>
121
123
 
124
+ <div id="method-M000001" class="method-detail">
125
+ <a name="M000001"></a>
126
+
127
+ <div class="method-heading">
128
+ <a href="#M000001" class="method-signature">
129
+ <span class="method-name">get_path_to_subpage</span><span class="method-args">(title)</span>
130
+ </a>
131
+ </div>
132
+
133
+ <div class="method-description">
134
+ <p>
135
+ Extract path leading up to subpage. If title does not contain a subpage,
136
+ returns nil.
137
+ </p>
138
+ <p>
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
144
+ </p>
145
+ <dl>
146
+ <dt>title</dt><dd>Page name string in Wiki format
147
+
148
+ </dd>
149
+ </dl>
150
+ <p><a class="source-toggle" href="#"
151
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
152
+ <div class="method-source-code" id="M000001-source">
153
+ <pre>
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>
159
+ </pre>
160
+ </div>
161
+ </div>
162
+ </div>
163
+
164
+ <div id="method-M000002" class="method-detail">
165
+ <a name="M000002"></a>
166
+
167
+ <div class="method-heading">
168
+ <a href="#M000002" class="method-signature">
169
+ <span class="method-name">get_subpage</span><span class="method-args">(title)</span>
170
+ </a>
171
+ </div>
172
+
173
+ <div class="method-description">
174
+ <p>
175
+ Extract subpage name. If there is no hierarchy above, return page name.
176
+ </p>
177
+ <p>
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;
183
+ </p>
184
+ <dl>
185
+ <dt>title</dt><dd>Page name string in Wiki format
186
+
187
+ </dd>
188
+ </dl>
189
+ <p><a class="source-toggle" href="#"
190
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
191
+ <div class="method-source-code" id="M000002-source">
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>
196
+ 25: <span class="ruby-keyword kw">end</span>
197
+ </pre>
198
+ </div>
199
+ </div>
200
+ </div>
201
+
122
202
  <div id="method-M000003" class="method-detail">
123
203
  <a name="M000003"></a>
124
204
 
@@ -142,47 +222,47 @@ display format page name (&quot;getting there &amp; away&quot;)
142
222
  onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
143
223
  <div class="method-source-code" id="M000003-source">
144
224
  <pre>
145
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 19</span>
146
- 19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uri_to_wiki</span>(<span class="ruby-identifier">uri</span>)
147
- 20: <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-keyword kw">if</span> <span class="ruby-identifier">uri</span>
148
- 21: <span class="ruby-keyword kw">end</span>
225
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 29</span>
226
+ 29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uri_to_wiki</span>(<span class="ruby-identifier">uri</span>)
227
+ 30: <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-keyword kw">if</span> <span class="ruby-identifier">uri</span>
228
+ 31: <span class="ruby-keyword kw">end</span>
149
229
  </pre>
150
230
  </div>
151
231
  </div>
152
232
  </div>
153
233
 
154
- <div id="method-M000001" class="method-detail">
155
- <a name="M000001"></a>
234
+ <div id="method-M000005" class="method-detail">
235
+ <a name="M000005"></a>
156
236
 
157
237
  <div class="method-heading">
158
- <a href="#M000001" class="method-signature">
238
+ <a href="#M000005" class="method-signature">
159
239
  <span class="method-name">version</span><span class="method-args">()</span>
160
240
  </a>
161
241
  </div>
162
242
 
163
243
  <div class="method-description">
164
244
  <p>
165
- TODO sync this automatically with Gem <a
166
- href="MediaWiki.html#M000001">version</a>
245
+ Return current <a href="MediaWiki.html#M000005">version</a> of <a
246
+ href="MediaWiki/Gateway.html">MediaWiki::Gateway</a>
167
247
  </p>
168
248
  <p><a class="source-toggle" href="#"
169
- onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
170
- <div class="method-source-code" id="M000001-source">
249
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
250
+ <div class="method-source-code" id="M000005-source">
171
251
  <pre>
172
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 6</span>
173
- 6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
174
- 7: <span class="ruby-value str">&quot;0.1.5&quot;</span>
175
- 8: <span class="ruby-keyword kw">end</span>
252
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 41</span>
253
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
254
+ 42: <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>
255
+ 43: <span class="ruby-keyword kw">end</span>
176
256
  </pre>
177
257
  </div>
178
258
  </div>
179
259
  </div>
180
260
 
181
- <div id="method-M000002" class="method-detail">
182
- <a name="M000002"></a>
261
+ <div id="method-M000004" class="method-detail">
262
+ <a name="M000004"></a>
183
263
 
184
264
  <div class="method-heading">
185
- <a href="#M000002" class="method-signature">
265
+ <a href="#M000004" class="method-signature">
186
266
  <span class="method-name">wiki_to_uri</span><span class="method-args">(wiki)</span>
187
267
  </a>
188
268
  </div>
@@ -199,13 +279,13 @@ slashes
199
279
  </dd>
200
280
  </dl>
201
281
  <p><a class="source-toggle" href="#"
202
- onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
203
- <div class="method-source-code" id="M000002-source">
282
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
283
+ <div class="method-source-code" id="M000004-source">
204
284
  <pre>
205
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 13</span>
206
- 13: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
207
- 14: <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-keyword kw">if</span> <span class="ruby-identifier">wiki</span>
208
- 15: <span class="ruby-keyword kw">end</span>
285
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 36</span>
286
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
287
+ 37: <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-keyword kw">if</span> <span class="ruby-identifier">wiki</span>
288
+ 38: <span class="ruby-keyword kw">end</span>
209
289
  </pre>
210
290
  </div>
211
291
  </div>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000026">abort</a>&nbsp;&nbsp;
90
- <a href="#M000025">new</a>&nbsp;&nbsp;
89
+ <a href="#M000030">abort</a>&nbsp;&nbsp;
90
+ <a href="#M000029">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-M000025" class="method-detail">
161
- <a name="M000025"></a>
160
+ <div id="method-M000029" class="method-detail">
161
+ <a name="M000029"></a>
162
162
 
163
163
  <div class="method-heading">
164
- <a href="#M000025" class="method-signature">
164
+ <a href="#M000029" 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('M000025-source');return false;">[Source]</a></p>
172
- <div class="method-source-code" id="M000025-source">
171
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
172
+ <div class="method-source-code" id="M000029-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-M000026" class="method-detail">
234
- <a name="M000026"></a>
233
+ <div id="method-M000030" class="method-detail">
234
+ <a name="M000030"></a>
235
235
 
236
236
  <div class="method-heading">
237
- <a href="#M000026" class="method-signature">
237
+ <a href="#M000030" 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('M000026-source');return false;">[Source]</a></p>
245
- <div class="method-source-code" id="M000026-source">
244
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
245
+ <div class="method-source-code" id="M000030-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,27 +86,29 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000008">create</a>&nbsp;&nbsp;
90
- <a href="#M000009">delete</a>&nbsp;&nbsp;
91
- <a href="#M000015">download</a>&nbsp;&nbsp;
92
- <a href="#M000017">export</a>&nbsp;&nbsp;
93
- <a href="#M000019">extensions</a>&nbsp;&nbsp;
94
- <a href="#M000006">get</a>&nbsp;&nbsp;
95
- <a href="#M000024">get_response</a>&nbsp;&nbsp;
96
- <a href="#M000021">get_token</a>&nbsp;&nbsp;
97
- <a href="#M000022">get_undelete_token</a>&nbsp;&nbsp;
98
- <a href="#M000014">image_info</a>&nbsp;&nbsp;
99
- <a href="#M000016">import</a>&nbsp;&nbsp;
100
- <a href="#M000011">list</a>&nbsp;&nbsp;
101
- <a href="#M000005">login</a>&nbsp;&nbsp;
102
- <a href="#M000023">make_api_request</a>&nbsp;&nbsp;
103
- <a href="#M000018">namespaces_by_prefix</a>&nbsp;&nbsp;
104
- <a href="#M000004">new</a>&nbsp;&nbsp;
105
- <a href="#M000007">render</a>&nbsp;&nbsp;
106
- <a href="#M000012">search</a>&nbsp;&nbsp;
107
- <a href="#M000020">semantic_query</a>&nbsp;&nbsp;
108
- <a href="#M000010">undelete</a>&nbsp;&nbsp;
109
- <a href="#M000013">upload</a>&nbsp;&nbsp;
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;
110
112
  </div>
111
113
  </div>
112
114
 
@@ -118,6 +120,19 @@
118
120
  <div id="section">
119
121
 
120
122
 
123
+ <div id="constants-list">
124
+ <h3 class="section-bar">Constants</h3>
125
+
126
+ <div class="name-list">
127
+ <table summary="Constants">
128
+ <tr class="top-aligned-row context-row">
129
+ <td class="context-item-name">API_MAX_LIMIT</td>
130
+ <td>=</td>
131
+ <td class="context-item-value">500</td>
132
+ </tr>
133
+ </table>
134
+ </div>
135
+ </div>
121
136
 
122
137
 
123
138
 
@@ -141,11 +156,11 @@
141
156
  <div id="methods">
142
157
  <h3 class="section-bar">Public Class methods</h3>
143
158
 
144
- <div id="method-M000004" class="method-detail">
145
- <a name="M000004"></a>
159
+ <div id="method-M000006" class="method-detail">
160
+ <a name="M000006"></a>
146
161
 
147
162
  <div class="method-heading">
148
- <a href="#M000004" class="method-signature">
163
+ <a href="#M000006" class="method-signature">
149
164
  <span class="method-name">new</span><span class="method-args">(url, loglevel = Logger::WARN)</span>
150
165
  </a>
151
166
  </div>
@@ -166,17 +181,17 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>&quot;)
166
181
  </dd>
167
182
  </dl>
168
183
  <p><a class="source-toggle" href="#"
169
- onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
170
- <div class="method-source-code" id="M000004-source">
184
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
185
+ <div class="method-source-code" id="M000006-source">
171
186
  <pre>
172
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 15</span>
173
- 15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">loglevel</span> = <span class="ruby-constant">Logger</span><span class="ruby-operator">::</span><span class="ruby-constant">WARN</span>)
174
- 16: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDERR</span>)
175
- 17: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-identifier">loglevel</span>
176
- 18: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
177
- 19: <span class="ruby-ivar">@headers</span> = { <span class="ruby-value str">&quot;User-Agent&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;MediaWiki::Gateway/#{MediaWiki.version}&quot;</span> }
178
- 20: <span class="ruby-ivar">@cookies</span> = {}
179
- 21: <span class="ruby-keyword kw">end</span>
187
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 16</span>
188
+ 16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">loglevel</span> = <span class="ruby-constant">Logger</span><span class="ruby-operator">::</span><span class="ruby-constant">WARN</span>)
189
+ 17: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDERR</span>)
190
+ 18: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-identifier">loglevel</span>
191
+ 19: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
192
+ 20: <span class="ruby-ivar">@headers</span> = { <span class="ruby-value str">&quot;User-Agent&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;MediaWiki::Gateway/#{MediaWiki.version}&quot;</span> }
193
+ 21: <span class="ruby-ivar">@cookies</span> = {}
194
+ 22: <span class="ruby-keyword kw">end</span>
180
195
  </pre>
181
196
  </div>
182
197
  </div>
@@ -184,22 +199,75 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>&quot;)
184
199
 
185
200
  <h3 class="section-bar">Public Instance methods</h3>
186
201
 
187
- <div id="method-M000008" class="method-detail">
188
- <a name="M000008"></a>
202
+ <div id="method-M000015" class="method-detail">
203
+ <a name="M000015"></a>
189
204
 
190
205
  <div class="method-heading">
191
- <a href="#M000008" class="method-signature">
206
+ <a href="#M000015" class="method-signature">
207
+ <span class="method-name">backlinks</span><span class="method-args">(title, filter = &quot;all&quot;)</span>
208
+ </a>
209
+ </div>
210
+
211
+ <div class="method-description">
212
+ <p>
213
+ Get a <a href="Gateway.html#M000014">list</a> of pages that link to a
214
+ target page
215
+ </p>
216
+ <dl>
217
+ <dt>title</dt><dd>Link target page
218
+
219
+ </dd>
220
+ <dt>filter</dt><dd>&quot;all&quot; links (default), &quot;redirects&quot; only, or
221
+ &quot;nonredirects&quot; (plain links only)
222
+
223
+ </dd>
224
+ </dl>
225
+ <p>
226
+ Returns array of page titles (empty if no matches)
227
+ </p>
228
+ <p><a class="source-toggle" href="#"
229
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
230
+ <div class="method-source-code" id="M000015-source">
231
+ <pre>
232
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 180</span>
233
+ 180: <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>)
234
+ 181: <span class="ruby-identifier">titles</span> = []
235
+ 182: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
236
+ 183: <span class="ruby-keyword kw">begin</span>
237
+ 184: <span class="ruby-identifier">form_data</span> =
238
+ 185: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
239
+ 186: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
240
+ 187: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
241
+ 188: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
242
+ 189: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">API_MAX_LIMIT</span> }
243
+ 190: <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>
244
+ 191: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
245
+ 192: <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>
246
+ 193: <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>] }
247
+ 194: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
248
+ 195: <span class="ruby-identifier">titles</span>
249
+ 196: <span class="ruby-keyword kw">end</span>
250
+ </pre>
251
+ </div>
252
+ </div>
253
+ </div>
254
+
255
+ <div id="method-M000010" class="method-detail">
256
+ <a name="M000010"></a>
257
+
258
+ <div class="method-heading">
259
+ <a href="#M000010" class="method-signature">
192
260
  <span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
193
261
  </a>
194
262
  </div>
195
263
 
196
264
  <div class="method-description">
197
265
  <p>
198
- Create a <a href="Gateway.html#M000004">new</a> page, or overwrite an
266
+ Create a <a href="Gateway.html#M000006">new</a> page, or overwrite an
199
267
  existing one
200
268
  </p>
201
269
  <dl>
202
- <dt>title</dt><dd>Page title to <a href="Gateway.html#M000008">create</a> or overwrite,
270
+ <dt>title</dt><dd>Page title to <a href="Gateway.html#M000010">create</a> or overwrite,
203
271
  string
204
272
 
205
273
  </dd>
@@ -221,30 +289,30 @@ Options:
221
289
 
222
290
  </li>
223
291
  <li>[token] Use this existing edit token instead requesting a <a
224
- href="Gateway.html#M000004">new</a> one (useful for bulk loads)
292
+ href="Gateway.html#M000006">new</a> one (useful for bulk loads)
225
293
 
226
294
  </li>
227
295
  </ul>
228
296
  <p><a class="source-toggle" href="#"
229
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
230
- <div class="method-source-code" id="M000008-source">
297
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
298
+ <div class="method-source-code" id="M000010-source">
231
299
  <pre>
232
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 101</span>
233
- 101: <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>={})
234
- 102: <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">'edit'</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">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span>, <span class="ruby-value str">'summary'</span> =<span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>), <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">title</span>)}
235
- 103: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'createonly'</span>] = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:overwrite</span>]
236
- 104: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
237
- 105: <span class="ruby-keyword kw">end</span>
300
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 102</span>
301
+ 102: <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>={})
302
+ 103: <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">'edit'</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">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span>, <span class="ruby-value str">'summary'</span> =<span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>), <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">title</span>)}
303
+ 104: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'createonly'</span>] = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:overwrite</span>]
304
+ 105: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
305
+ 106: <span class="ruby-keyword kw">end</span>
238
306
  </pre>
239
307
  </div>
240
308
  </div>
241
309
  </div>
242
310
 
243
- <div id="method-M000009" class="method-detail">
244
- <a name="M000009"></a>
311
+ <div id="method-M000012" class="method-detail">
312
+ <a name="M000012"></a>
245
313
 
246
314
  <div class="method-heading">
247
- <a href="#M000009" class="method-signature">
315
+ <a href="#M000012" class="method-signature">
248
316
  <span class="method-name">delete</span><span class="method-args">(title)</span>
249
317
  </a>
250
318
  </div>
@@ -255,29 +323,29 @@ Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
255
323
  support deleting multiple pages at a time.)
256
324
  </p>
257
325
  <dl>
258
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000009">delete</a>
326
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000012">delete</a>
259
327
 
260
328
  </dd>
261
329
  </dl>
262
330
  <p><a class="source-toggle" href="#"
263
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
264
- <div class="method-source-code" id="M000009-source">
331
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
332
+ <div class="method-source-code" id="M000012-source">
265
333
  <pre>
266
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 110</span>
267
- 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
268
- 111: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'delete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'delete'</span>, <span class="ruby-identifier">title</span>)}
269
- 112: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
270
- 113: <span class="ruby-keyword kw">end</span>
334
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 128</span>
335
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
336
+ 129: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'delete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'delete'</span>, <span class="ruby-identifier">title</span>)}
337
+ 130: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
338
+ 131: <span class="ruby-keyword kw">end</span>
271
339
  </pre>
272
340
  </div>
273
341
  </div>
274
342
  </div>
275
343
 
276
- <div id="method-M000015" class="method-detail">
277
- <a name="M000015"></a>
344
+ <div id="method-M000019" class="method-detail">
345
+ <a name="M000019"></a>
278
346
 
279
347
  <div class="method-heading">
280
- <a href="#M000015" class="method-signature">
348
+ <a href="#M000019" class="method-signature">
281
349
  <span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
282
350
  </a>
283
351
  </div>
@@ -285,36 +353,36 @@ support deleting multiple pages at a time.)
285
353
  <div class="method-description">
286
354
  <p>
287
355
  Download <em>file_name</em>. Returns file contents. All options are passed
288
- to <a href="Gateway.html#M000014">image_info</a> however
356
+ to <a href="Gateway.html#M000018">image_info</a> however
289
357
  options[&#8216;iiprop&#8217;] is forced to url. You can still set other
290
358
  options to control what file you want to <a
291
- href="Gateway.html#M000015">download</a>.
359
+ href="Gateway.html#M000019">download</a>.
292
360
  </p>
293
361
  <p><a class="source-toggle" href="#"
294
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
295
- <div class="method-source-code" id="M000015-source">
362
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
363
+ <div class="method-source-code" id="M000019-source">
296
364
  <pre>
297
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 302</span>
298
- 302: <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>={})
299
- 303: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
300
- 304:
301
- 305: <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>)
302
- 306: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
303
- 307: <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>]
304
- 308: <span class="ruby-keyword kw">else</span>
305
- 309: <span class="ruby-keyword kw">nil</span>
306
- 310: <span class="ruby-keyword kw">end</span>
307
- 311: <span class="ruby-keyword kw">end</span>
365
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 344</span>
366
+ 344: <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>={})
367
+ 345: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
368
+ 346:
369
+ 347: <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>)
370
+ 348: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
371
+ 349: <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>]
372
+ 350: <span class="ruby-keyword kw">else</span>
373
+ 351: <span class="ruby-keyword kw">nil</span>
374
+ 352: <span class="ruby-keyword kw">end</span>
375
+ 353: <span class="ruby-keyword kw">end</span>
308
376
  </pre>
309
377
  </div>
310
378
  </div>
311
379
  </div>
312
380
 
313
- <div id="method-M000017" class="method-detail">
314
- <a name="M000017"></a>
381
+ <div id="method-M000021" class="method-detail">
382
+ <a name="M000021"></a>
315
383
 
316
384
  <div class="method-heading">
317
- <a href="#M000017" class="method-signature">
385
+ <a href="#M000021" class="method-signature">
318
386
  <span class="method-name">export</span><span class="method-args">(page_titles)</span>
319
387
  </a>
320
388
  </div>
@@ -332,61 +400,61 @@ Exports a page or set of pages
332
400
  Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
333
401
  </p>
334
402
  <p><a class="source-toggle" href="#"
335
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
336
- <div class="method-source-code" id="M000017-source">
403
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
404
+ <div class="method-source-code" id="M000021-source">
337
405
  <pre>
338
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 333</span>
339
- 333: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
340
- 334: <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>}
341
- 335: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
342
- 336: <span class="ruby-keyword kw">end</span>
406
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 375</span>
407
+ 375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
408
+ 376: <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>}
409
+ 377: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
410
+ 378: <span class="ruby-keyword kw">end</span>
343
411
  </pre>
344
412
  </div>
345
413
  </div>
346
414
  </div>
347
415
 
348
- <div id="method-M000019" class="method-detail">
349
- <a name="M000019"></a>
416
+ <div id="method-M000023" class="method-detail">
417
+ <a name="M000023"></a>
350
418
 
351
419
  <div class="method-heading">
352
- <a href="#M000019" class="method-signature">
420
+ <a href="#M000023" class="method-signature">
353
421
  <span class="method-name">extensions</span><span class="method-args">()</span>
354
422
  </a>
355
423
  </div>
356
424
 
357
425
  <div class="method-description">
358
426
  <p>
359
- Get a <a href="Gateway.html#M000011">list</a> of all installed (and
360
- registered) <a href="Gateway.html#M000019">extensions</a>
427
+ Get a <a href="Gateway.html#M000014">list</a> of all installed (and
428
+ registered) <a href="Gateway.html#M000023">extensions</a>
361
429
  </p>
362
430
  <p>
363
- Returns array of <a href="Gateway.html#M000019">extensions</a> (name =&gt;
431
+ Returns array of <a href="Gateway.html#M000023">extensions</a> (name =&gt;
364
432
  version)
365
433
  </p>
366
434
  <p><a class="source-toggle" href="#"
367
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
368
- <div class="method-source-code" id="M000019-source">
435
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
436
+ <div class="method-source-code" id="M000023-source">
369
437
  <pre>
370
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 354</span>
371
- 354: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
372
- 355: <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> }
373
- 356: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
374
- 357: <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>
375
- 358: <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>
376
- 359: <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>]
377
- 360: <span class="ruby-identifier">extensions</span>
378
- 361: <span class="ruby-keyword kw">end</span>
379
- 362: <span class="ruby-keyword kw">end</span>
438
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 396</span>
439
+ 396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
440
+ 397: <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> }
441
+ 398: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
442
+ 399: <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>
443
+ 400: <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>
444
+ 401: <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>]
445
+ 402: <span class="ruby-identifier">extensions</span>
446
+ 403: <span class="ruby-keyword kw">end</span>
447
+ 404: <span class="ruby-keyword kw">end</span>
380
448
  </pre>
381
449
  </div>
382
450
  </div>
383
451
  </div>
384
452
 
385
- <div id="method-M000006" class="method-detail">
386
- <a name="M000006"></a>
453
+ <div id="method-M000008" class="method-detail">
454
+ <a name="M000008"></a>
387
455
 
388
456
  <div class="method-heading">
389
- <a href="#M000006" class="method-signature">
457
+ <a href="#M000008" class="method-signature">
390
458
  <span class="method-name">get</span><span class="method-args">(page_title)</span>
391
459
  </a>
392
460
  </div>
@@ -402,32 +470,32 @@ href="../MediaWiki.html">MediaWiki</a> format
402
470
  </dd>
403
471
  </dl>
404
472
  <p>
405
- Returns nil if the page does not exist
473
+ Returns content of page as string, nil if the page does not exist
406
474
  </p>
407
475
  <p><a class="source-toggle" href="#"
408
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
409
- <div class="method-source-code" id="M000006-source">
476
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
477
+ <div class="method-source-code" id="M000008-source">
410
478
  <pre>
411
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 44</span>
412
- 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
413
- 45: <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>}
414
- 46: <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>]
415
- 47: <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>]
416
- 48: <span class="ruby-keyword kw">nil</span>
417
- 49: <span class="ruby-keyword kw">else</span>
418
- 50: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;revisions/rev&quot;</span>].<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
419
- 51: <span class="ruby-keyword kw">end</span>
420
- 52: <span class="ruby-keyword kw">end</span>
479
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 45</span>
480
+ 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
481
+ 46: <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>}
482
+ 47: <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>]
483
+ 48: <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>]
484
+ 49: <span class="ruby-keyword kw">nil</span>
485
+ 50: <span class="ruby-keyword kw">else</span>
486
+ 51: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;revisions/rev&quot;</span>].<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
487
+ 52: <span class="ruby-keyword kw">end</span>
488
+ 53: <span class="ruby-keyword kw">end</span>
421
489
  </pre>
422
490
  </div>
423
491
  </div>
424
492
  </div>
425
493
 
426
- <div id="method-M000014" class="method-detail">
427
- <a name="M000014"></a>
494
+ <div id="method-M000018" class="method-detail">
495
+ <a name="M000018"></a>
428
496
 
429
497
  <div class="method-heading">
430
- <a href="#M000014" class="method-signature">
498
+ <a href="#M000018" class="method-signature">
431
499
  <span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
432
500
  </a>
433
501
  </div>
@@ -479,47 +547,47 @@ Output:
479
547
  &quot;user&quot; =&gt; &quot;Valdas&quot;
480
548
  </pre>
481
549
  <p><a class="source-toggle" href="#"
482
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
483
- <div class="method-source-code" id="M000014-source">
550
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
551
+ <div class="method-source-code" id="M000018-source">
484
552
  <pre>
485
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 271</span>
486
- 271: <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>={})
487
- 272: <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>) \
488
- 273: <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>)
489
- 274: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
490
- 275: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
491
- 276: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
492
- 277: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
493
- 278: )
494
- 279:
495
- 280: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
496
- 281: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
497
- 282: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
498
- 283: <span class="ruby-keyword kw">else</span>
499
- 284: <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>
500
- 285: <span class="ruby-keyword kw">end</span>
501
- 286:
502
- 287: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
503
- 288: <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>]
504
- 289: <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>]
505
- 290: <span class="ruby-keyword kw">nil</span>
506
- 291: <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>]
507
- 292: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
508
- 293: <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>)
509
- 294: <span class="ruby-keyword kw">else</span>
510
- 295: <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>
511
- 296: <span class="ruby-keyword kw">end</span>
512
- 297: <span class="ruby-keyword kw">end</span>
553
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 313</span>
554
+ 313: <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>={})
555
+ 314: <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>) \
556
+ 315: <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>)
557
+ 316: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
558
+ 317: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
559
+ 318: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
560
+ 319: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
561
+ 320: )
562
+ 321:
563
+ 322: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
564
+ 323: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
565
+ 324: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
566
+ 325: <span class="ruby-keyword kw">else</span>
567
+ 326: <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>
568
+ 327: <span class="ruby-keyword kw">end</span>
569
+ 328:
570
+ 329: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
571
+ 330: <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>]
572
+ 331: <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>]
573
+ 332: <span class="ruby-keyword kw">nil</span>
574
+ 333: <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>]
575
+ 334: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
576
+ 335: <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>)
577
+ 336: <span class="ruby-keyword kw">else</span>
578
+ 337: <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>
579
+ 338: <span class="ruby-keyword kw">end</span>
580
+ 339: <span class="ruby-keyword kw">end</span>
513
581
  </pre>
514
582
  </div>
515
583
  </div>
516
584
  </div>
517
585
 
518
- <div id="method-M000016" class="method-detail">
519
- <a name="M000016"></a>
586
+ <div id="method-M000020" class="method-detail">
587
+ <a name="M000020"></a>
520
588
 
521
589
  <div class="method-heading">
522
- <a href="#M000016" class="method-signature">
590
+ <a href="#M000020" class="method-signature">
523
591
  <span class="method-name">import</span><span class="method-args">(xmlfile)</span>
524
592
  </a>
525
593
  </div>
@@ -535,42 +603,44 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
535
603
  </dl>
536
604
  <p>
537
605
  Returns XML array &lt;api&gt;&lt;<a
538
- href="Gateway.html#M000016">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
606
+ href="Gateway.html#M000020">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
539
607
  &lt;page revisions=&quot;1&quot;&gt; (or more) means successfully imported
540
608
  &lt;page revisions=&quot;0&quot;&gt; means duplicate, not imported
541
609
  </p>
542
610
  <p><a class="source-toggle" href="#"
543
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
544
- <div class="method-source-code" id="M000016-source">
611
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
612
+ <div class="method-source-code" id="M000020-source">
545
613
  <pre>
546
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 320</span>
547
- 320: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
548
- 321: <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>,
549
- 322: <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>),
550
- 323: <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>
551
- 324: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
552
- 325: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
553
- 326: <span class="ruby-keyword kw">end</span>
614
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 362</span>
615
+ 362: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
616
+ 363: <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>,
617
+ 364: <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>),
618
+ 365: <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>
619
+ 366: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
620
+ 367: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
621
+ 368: <span class="ruby-keyword kw">end</span>
554
622
  </pre>
555
623
  </div>
556
624
  </div>
557
625
  </div>
558
626
 
559
- <div id="method-M000011" class="method-detail">
560
- <a name="M000011"></a>
627
+ <div id="method-M000014" class="method-detail">
628
+ <a name="M000014"></a>
561
629
 
562
630
  <div class="method-heading">
563
- <a href="#M000011" class="method-signature">
631
+ <a href="#M000014" class="method-signature">
564
632
  <span class="method-name">list</span><span class="method-args">(key)</span>
565
633
  </a>
566
634
  </div>
567
635
 
568
636
  <div class="method-description">
569
637
  <p>
570
- Get a <a href="Gateway.html#M000011">list</a> of matching page titles
638
+ Get a <a href="Gateway.html#M000014">list</a> of matching page titles in a
639
+ namespace
571
640
  </p>
572
641
  <dl>
573
- <dt>key</dt><dd>Search key, matched as a prefix (^key.*). May contain or equal a namespace.
642
+ <dt>key</dt><dd>Search key, matched as a prefix (^key.*). May contain or equal a namespace,
643
+ defaults to main (namespace 0) if none given.
574
644
 
575
645
  </dd>
576
646
  </dl>
@@ -578,39 +648,39 @@ Get a <a href="Gateway.html#M000011">list</a> of matching page titles
578
648
  Returns array of page titles (empty if no matches)
579
649
  </p>
580
650
  <p><a class="source-toggle" href="#"
581
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
582
- <div class="method-source-code" id="M000011-source">
651
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
652
+ <div class="method-source-code" id="M000014-source">
583
653
  <pre>
584
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 136</span>
585
- 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
586
- 137: <span class="ruby-identifier">titles</span> = []
587
- 138: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
588
- 139: <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>
589
- 140: <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>
590
- 141: <span class="ruby-keyword kw">begin</span>
591
- 142: <span class="ruby-identifier">form_data</span> =
592
- 143: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
593
- 144: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
594
- 145: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
595
- 146: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
596
- 147: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">500</span>, <span class="ruby-comment cmt"># max allowed by API</span>
597
- 148: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
598
- 149: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
599
- 150: <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>
600
- 151: <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>] }
601
- 152: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
602
- 153: <span class="ruby-identifier">titles</span>
603
- 154: <span class="ruby-keyword kw">end</span>
654
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 154</span>
655
+ 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
656
+ 155: <span class="ruby-identifier">titles</span> = []
657
+ 156: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
658
+ 157: <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>
659
+ 158: <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>
660
+ 159: <span class="ruby-keyword kw">begin</span>
661
+ 160: <span class="ruby-identifier">form_data</span> =
662
+ 161: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
663
+ 162: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
664
+ 163: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
665
+ 164: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
666
+ 165: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">API_MAX_LIMIT</span>,
667
+ 166: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
668
+ 167: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
669
+ 168: <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>
670
+ 169: <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>] }
671
+ 170: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
672
+ 171: <span class="ruby-identifier">titles</span>
673
+ 172: <span class="ruby-keyword kw">end</span>
604
674
  </pre>
605
675
  </div>
606
676
  </div>
607
677
  </div>
608
678
 
609
- <div id="method-M000005" class="method-detail">
610
- <a name="M000005"></a>
679
+ <div id="method-M000007" class="method-detail">
680
+ <a name="M000007"></a>
611
681
 
612
682
  <div class="method-heading">
613
- <a href="#M000005" class="method-signature">
683
+ <a href="#M000007" class="method-signature">
614
684
  <span class="method-name">login</span><span class="method-args">(username, password, domain = 'local')</span>
615
685
  </a>
616
686
  </div>
@@ -632,64 +702,116 @@ defaults to &#8216;local&#8217; if not given
632
702
  </dd>
633
703
  </dl>
634
704
  <p>
635
- Throws error if <a href="Gateway.html#M000005">login</a> fails
705
+ Throws error if <a href="Gateway.html#M000007">login</a> fails
636
706
  </p>
637
707
  <p><a class="source-toggle" href="#"
638
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
639
- <div class="method-source-code" id="M000005-source">
708
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
709
+ <div class="method-source-code" id="M000007-source">
640
710
  <pre>
641
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 32</span>
642
- 32: <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>)
643
- 33: <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">'login'</span>, <span class="ruby-value str">'lgname'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">username</span>, <span class="ruby-value str">'lgpassword'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">password</span>, <span class="ruby-value str">'lgdomain'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">domain</span>}
644
- 34: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
645
- 35: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
646
- 36: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
647
- 37: <span class="ruby-keyword kw">end</span>
711
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 33</span>
712
+ 33: <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>)
713
+ 34: <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">'login'</span>, <span class="ruby-value str">'lgname'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">username</span>, <span class="ruby-value str">'lgpassword'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">password</span>, <span class="ruby-value str">'lgdomain'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">domain</span>}
714
+ 35: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
715
+ 36: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
716
+ 37: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
717
+ 38: <span class="ruby-keyword kw">end</span>
648
718
  </pre>
649
719
  </div>
650
720
  </div>
651
721
  </div>
652
722
 
653
- <div id="method-M000018" class="method-detail">
654
- <a name="M000018"></a>
723
+ <div id="method-M000011" class="method-detail">
724
+ <a name="M000011"></a>
655
725
 
656
726
  <div class="method-heading">
657
- <a href="#M000018" class="method-signature">
727
+ <a href="#M000011" class="method-signature">
728
+ <span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
729
+ </a>
730
+ </div>
731
+
732
+ <div class="method-description">
733
+ <p>
734
+ Move a page to a <a href="Gateway.html#M000006">new</a> title
735
+ </p>
736
+ <dl>
737
+ <dt>from</dt><dd>Old page name
738
+
739
+ </dd>
740
+ <dt>to</dt><dd>New page name
741
+
742
+ </dd>
743
+ <dt>options</dt><dd>Hash of additional options
744
+
745
+ </dd>
746
+ </dl>
747
+ <p>
748
+ Options:
749
+ </p>
750
+ <ul>
751
+ <li>[movesubpages] Move associated subpages
752
+
753
+ </li>
754
+ <li>[movetalk] Move associated talkpages
755
+
756
+ </li>
757
+ </ul>
758
+ <p><a class="source-toggle" href="#"
759
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
760
+ <div class="method-source-code" id="M000011-source">
761
+ <pre>
762
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 117</span>
763
+ 117: <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>={})
764
+ 118: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk)</span>
765
+ 119: <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>)}
766
+ 120:
767
+ 121: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'move'</span>, <span class="ruby-value str">'from'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">from</span>, <span class="ruby-value str">'to'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">from</span>)})
768
+ 122: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
769
+ 123: <span class="ruby-keyword kw">end</span>
770
+ </pre>
771
+ </div>
772
+ </div>
773
+ </div>
774
+
775
+ <div id="method-M000022" class="method-detail">
776
+ <a name="M000022"></a>
777
+
778
+ <div class="method-heading">
779
+ <a href="#M000022" class="method-signature">
658
780
  <span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
659
781
  </a>
660
782
  </div>
661
783
 
662
784
  <div class="method-description">
663
785
  <p>
664
- Get a <a href="Gateway.html#M000011">list</a> of all known namespaces
786
+ Get a <a href="Gateway.html#M000014">list</a> of all known namespaces
665
787
  </p>
666
788
  <p>
667
789
  Returns array of namespaces (name =&gt; id)
668
790
  </p>
669
791
  <p><a class="source-toggle" href="#"
670
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
671
- <div class="method-source-code" id="M000018-source">
792
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
793
+ <div class="method-source-code" id="M000022-source">
672
794
  <pre>
673
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 341</span>
674
- 341: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
675
- 342: <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> }
676
- 343: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
677
- 344: <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>
678
- 345: <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>
679
- 346: <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>
680
- 347: <span class="ruby-identifier">namespaces</span>
681
- 348: <span class="ruby-keyword kw">end</span>
682
- 349: <span class="ruby-keyword kw">end</span>
795
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 383</span>
796
+ 383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
797
+ 384: <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> }
798
+ 385: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
799
+ 386: <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>
800
+ 387: <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>
801
+ 388: <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>
802
+ 389: <span class="ruby-identifier">namespaces</span>
803
+ 390: <span class="ruby-keyword kw">end</span>
804
+ 391: <span class="ruby-keyword kw">end</span>
683
805
  </pre>
684
806
  </div>
685
807
  </div>
686
808
  </div>
687
809
 
688
- <div id="method-M000007" class="method-detail">
689
- <a name="M000007"></a>
810
+ <div id="method-M000009" class="method-detail">
811
+ <a name="M000009"></a>
690
812
 
691
813
  <div class="method-heading">
692
- <a href="#M000007" class="method-signature">
814
+ <a href="#M000009" class="method-signature">
693
815
  <span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
694
816
  </a>
695
817
  </div>
@@ -723,62 +845,62 @@ Options:
723
845
  </li>
724
846
  </ul>
725
847
  <p>
726
- Returns nil if the page does not exist
848
+ Returns rendered page as string, or nil if the page does not exist
727
849
  </p>
728
850
  <p><a class="source-toggle" href="#"
729
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
730
- <div class="method-source-code" id="M000007-source">
851
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
852
+ <div class="method-source-code" id="M000009-source">
731
853
  <pre>
732
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 65</span>
733
- 65: <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> = {})
734
- 66: <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">'page'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
735
- 67:
736
- 68: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
737
- 69: <span class="ruby-comment cmt"># Check options</span>
738
- 70: <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>)}
739
- 71:
740
- 72: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
741
- 73: <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>]
742
- 74: <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>
743
- 75: <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>)
744
- 76: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
745
- 77: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
746
- 78: <span class="ruby-identifier">linkbase</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
747
- 79: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\shref=&quot;\/wiki\/([\w\(\)_\-\.%\d:,]*)&quot;/</span>, <span class="ruby-value str">' href=&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">linkbase</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/wiki/\1&quot;'</span>)
748
- 80: <span class="ruby-keyword kw">end</span>
749
- 81: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noeditsections&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noeditsections</span>]
750
- 82: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;span class=&quot;editsection&quot;&gt;\[.+\]&lt;\/span&gt;/</span>, <span class="ruby-value str">''</span>)
751
- 83: <span class="ruby-keyword kw">end</span>
752
- 84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noimages&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noimages</span>]
753
- 85: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;img.*\/&gt;/</span>, <span class="ruby-value str">''</span>)
754
- 86: <span class="ruby-keyword kw">end</span>
755
- 87: <span class="ruby-keyword kw">end</span>
756
- 88: <span class="ruby-identifier">rendered</span>
757
- 89: <span class="ruby-keyword kw">end</span>
854
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 66</span>
855
+ 66: <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> = {})
856
+ 67: <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">'page'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
857
+ 68:
858
+ 69: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
859
+ 70: <span class="ruby-comment cmt"># Check options</span>
860
+ 71: <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>)}
861
+ 72:
862
+ 73: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
863
+ 74: <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>]
864
+ 75: <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>
865
+ 76: <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>)
866
+ 77: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
867
+ 78: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
868
+ 79: <span class="ruby-identifier">linkbase</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
869
+ 80: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\shref=&quot;\/wiki\/([\w\(\)_\-\.%\d:,]*)&quot;/</span>, <span class="ruby-value str">' href=&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">linkbase</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/wiki/\1&quot;'</span>)
870
+ 81: <span class="ruby-keyword kw">end</span>
871
+ 82: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noeditsections&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noeditsections</span>]
872
+ 83: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;span class=&quot;editsection&quot;&gt;\[.+\]&lt;\/span&gt;/</span>, <span class="ruby-value str">''</span>)
873
+ 84: <span class="ruby-keyword kw">end</span>
874
+ 85: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noimages&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noimages</span>]
875
+ 86: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;img.*\/&gt;/</span>, <span class="ruby-value str">''</span>)
876
+ 87: <span class="ruby-keyword kw">end</span>
877
+ 88: <span class="ruby-keyword kw">end</span>
878
+ 89: <span class="ruby-identifier">rendered</span>
879
+ 90: <span class="ruby-keyword kw">end</span>
758
880
  </pre>
759
881
  </div>
760
882
  </div>
761
883
  </div>
762
884
 
763
- <div id="method-M000012" class="method-detail">
764
- <a name="M000012"></a>
885
+ <div id="method-M000016" class="method-detail">
886
+ <a name="M000016"></a>
765
887
 
766
888
  <div class="method-heading">
767
- <a href="#M000012" class="method-signature">
889
+ <a href="#M000016" class="method-signature">
768
890
  <span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=10)</span>
769
891
  </a>
770
892
  </div>
771
893
 
772
894
  <div class="method-description">
773
895
  <p>
774
- Get a <a href="Gateway.html#M000011">list</a> of pages with matching
896
+ Get a <a href="Gateway.html#M000014">list</a> of pages with matching
775
897
  content in given namespaces
776
898
  </p>
777
899
  <dl>
778
900
  <dt>key</dt><dd>Search key
779
901
 
780
902
  </dd>
781
- <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000012">search</a>
903
+ <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000016">search</a>
782
904
  (defaults to NS_MAIN only)
783
905
 
784
906
  </dd>
@@ -790,33 +912,33 @@ content in given namespaces
790
912
  Returns array of page titles (empty if no matches)
791
913
  </p>
792
914
  <p><a class="source-toggle" href="#"
793
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
794
- <div class="method-source-code" id="M000012-source">
915
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
916
+ <div class="method-source-code" id="M000016-source">
795
917
  <pre>
796
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 163</span>
797
- 163: <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>)
798
- 164: <span class="ruby-identifier">titles</span> = []
799
- 165: <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>,
800
- 166: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
801
- 167: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
802
- 168: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
803
- 169: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>}
804
- 170: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
805
- 171: <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>
806
- 172: <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>)
807
- 173: <span class="ruby-keyword kw">end</span>
808
- 174: <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>] }
809
- 175: <span class="ruby-keyword kw">end</span>
918
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 205</span>
919
+ 205: <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>)
920
+ 206: <span class="ruby-identifier">titles</span> = []
921
+ 207: <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>,
922
+ 208: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
923
+ 209: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
924
+ 210: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
925
+ 211: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>}
926
+ 212: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
927
+ 213: <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>
928
+ 214: <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>)
929
+ 215: <span class="ruby-keyword kw">end</span>
930
+ 216: <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>] }
931
+ 217: <span class="ruby-keyword kw">end</span>
810
932
  </pre>
811
933
  </div>
812
934
  </div>
813
935
  </div>
814
936
 
815
- <div id="method-M000020" class="method-detail">
816
- <a name="M000020"></a>
937
+ <div id="method-M000024" class="method-detail">
938
+ <a name="M000024"></a>
817
939
 
818
940
  <div class="method-heading">
819
- <a href="#M000020" class="method-signature">
941
+ <a href="#M000024" class="method-signature">
820
942
  <span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
821
943
  </a>
822
944
  </div>
@@ -838,26 +960,26 @@ Execute Semantic Mediawiki query
838
960
  Returns result as an HTML string
839
961
  </p>
840
962
  <p><a class="source-toggle" href="#"
841
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
842
- <div class="method-source-code" id="M000020-source">
963
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
964
+ <div class="method-source-code" id="M000024-source">
843
965
  <pre>
844
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 370</span>
845
- 370: <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> = [])
846
- 371: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
847
- 372: <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> }
848
- 373: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
849
- 374: <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>
850
- 375: <span class="ruby-keyword kw">end</span>
966
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 412</span>
967
+ 412: <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> = [])
968
+ 413: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
969
+ 414: <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> }
970
+ 415: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
971
+ 416: <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>
972
+ 417: <span class="ruby-keyword kw">end</span>
851
973
  </pre>
852
974
  </div>
853
975
  </div>
854
976
  </div>
855
977
 
856
- <div id="method-M000010" class="method-detail">
857
- <a name="M000010"></a>
978
+ <div id="method-M000013" class="method-detail">
979
+ <a name="M000013"></a>
858
980
 
859
981
  <div class="method-heading">
860
- <a href="#M000010" class="method-signature">
982
+ <a href="#M000013" class="method-signature">
861
983
  <span class="method-name">undelete</span><span class="method-args">(title)</span>
862
984
  </a>
863
985
  </div>
@@ -867,45 +989,46 @@ Returns result as an HTML string
867
989
  Undelete all revisions of one page.
868
990
  </p>
869
991
  <dl>
870
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000010">undelete</a>
992
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000013">undelete</a>
871
993
 
872
994
  </dd>
873
995
  </dl>
874
996
  <p>
875
- Returns number of revisions undeleted.
997
+ Returns number of revisions undeleted, or zero if nothing to <a
998
+ href="Gateway.html#M000013">undelete</a>
876
999
  </p>
877
1000
  <p><a class="source-toggle" href="#"
878
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
879
- <div class="method-source-code" id="M000010-source">
1001
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
1002
+ <div class="method-source-code" id="M000013-source">
880
1003
  <pre>
881
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 120</span>
882
- 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
883
- 121: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
884
- 122: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
885
- 123: <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> }
886
- 124: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
887
- 125: <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>
888
- 126: <span class="ruby-keyword kw">else</span>
889
- 127: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
890
- 128: <span class="ruby-keyword kw">end</span>
891
- 129: <span class="ruby-keyword kw">end</span>
1004
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 138</span>
1005
+ 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
1006
+ 139: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
1007
+ 140: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
1008
+ 141: <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> }
1009
+ 142: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1010
+ 143: <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>
1011
+ 144: <span class="ruby-keyword kw">else</span>
1012
+ 145: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1013
+ 146: <span class="ruby-keyword kw">end</span>
1014
+ 147: <span class="ruby-keyword kw">end</span>
892
1015
  </pre>
893
1016
  </div>
894
1017
  </div>
895
1018
  </div>
896
1019
 
897
- <div id="method-M000013" class="method-detail">
898
- <a name="M000013"></a>
1020
+ <div id="method-M000017" class="method-detail">
1021
+ <a name="M000017"></a>
899
1022
 
900
1023
  <div class="method-heading">
901
- <a href="#M000013" class="method-signature">
1024
+ <a href="#M000017" class="method-signature">
902
1025
  <span class="method-name">upload</span><span class="method-args">(path, options={})</span>
903
1026
  </a>
904
1027
  </div>
905
1028
 
906
1029
  <div class="method-description">
907
1030
  <p>
908
- Upload a file, or <a href="Gateway.html#M000006">get</a> the status of
1031
+ Upload a file, or <a href="Gateway.html#M000008">get</a> the status of
909
1032
  pending uploads. Several methods are available:
910
1033
  </p>
911
1034
  <ul>
@@ -924,7 +1047,7 @@ Requires Mediawiki 1.16+
924
1047
  Arguments:
925
1048
  </p>
926
1049
  <ul>
927
- <li>[path] Path to file to <a href="Gateway.html#M000013">upload</a>. Set to
1050
+ <li>[path] Path to file to <a href="Gateway.html#M000017">upload</a>. Set to
928
1051
  nil if uploading from URL.
929
1052
 
930
1053
  </li>
@@ -934,7 +1057,7 @@ nil if uploading from URL.
934
1057
  </ul>
935
1058
  <p>
936
1059
  Note that queries using session keys must be done in the same <a
937
- href="Gateway.html#M000005">login</a> session as the query that originally
1060
+ href="Gateway.html#M000007">login</a> session as the query that originally
938
1061
  returned the key (i.e. do not log out and then log back in).
939
1062
  </p>
940
1063
  <p>
@@ -946,12 +1069,12 @@ given), options[:target] is alias for this.
946
1069
 
947
1070
  </li>
948
1071
  <li>&#8216;comment&#8217; - Upload comment. Also used as the initial page text
949
- for <a href="Gateway.html#M000004">new</a> files if &quot;text&quot; is not
1072
+ for <a href="Gateway.html#M000006">new</a> files if &quot;text&quot; is not
950
1073
  specified.
951
1074
 
952
1075
  </li>
953
1076
  <li>&#8216;text&#8217; - Initial page text for <a
954
- href="Gateway.html#M000004">new</a> files
1077
+ href="Gateway.html#M000006">new</a> files
955
1078
 
956
1079
  </li>
957
1080
  <li>&#8216;watch&#8217; - Watch the page
@@ -988,43 +1111,43 @@ Examples:
988
1111
  mw.upload(nil, 'filename' =&gt; &quot;RemoteFile2.jpg&quot;, 'url' =&gt; 'http://remote.com/server/file.jpg')
989
1112
  </pre>
990
1113
  <p><a class="source-toggle" href="#"
991
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
992
- <div class="method-source-code" id="M000013-source">
1114
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1115
+ <div class="method-source-code" id="M000017-source">
993
1116
  <pre>
994
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 211</span>
995
- 211: <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>={})
996
- 212: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
997
- 213: <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>]
998
- 214: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
999
- 215: <span class="ruby-keyword kw">end</span>
1000
- 216:
1001
- 217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1002
- 218: <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>]
1003
- 219: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1004
- 220: <span class="ruby-keyword kw">end</span>
1005
- 221:
1006
- 222: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1007
- 223: <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>]
1008
- 224: <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>]
1009
- 225: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1010
- 226: <span class="ruby-keyword kw">end</span>
1011
- 227:
1012
- 228: <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>
1013
- 229: <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>
1014
- 230: <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>]
1015
- 231: <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>
1016
- 232:
1017
- 233: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1018
- 234: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1019
- 235: ) <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>]
1020
- 236:
1021
- 237: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1022
- 238: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1023
- 239: <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>])
1024
- 240: )
1025
- 241:
1026
- 242: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1027
- 243: <span class="ruby-keyword kw">end</span>
1117
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 253</span>
1118
+ 253: <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>={})
1119
+ 254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1120
+ 255: <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>]
1121
+ 256: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1122
+ 257: <span class="ruby-keyword kw">end</span>
1123
+ 258:
1124
+ 259: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1125
+ 260: <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>]
1126
+ 261: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1127
+ 262: <span class="ruby-keyword kw">end</span>
1128
+ 263:
1129
+ 264: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1130
+ 265: <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>]
1131
+ 266: <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>]
1132
+ 267: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1133
+ 268: <span class="ruby-keyword kw">end</span>
1134
+ 269:
1135
+ 270: <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>
1136
+ 271: <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>
1137
+ 272: <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>]
1138
+ 273: <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>
1139
+ 274:
1140
+ 275: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1141
+ 276: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1142
+ 277: ) <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>]
1143
+ 278:
1144
+ 279: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1145
+ 280: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1146
+ 281: <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>])
1147
+ 282: )
1148
+ 283:
1149
+ 284: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1150
+ 285: <span class="ruby-keyword kw">end</span>
1028
1151
  </pre>
1029
1152
  </div>
1030
1153
  </div>
@@ -1032,11 +1155,11 @@ Examples:
1032
1155
 
1033
1156
  <h3 class="section-bar">Private Instance methods</h3>
1034
1157
 
1035
- <div id="method-M000024" class="method-detail">
1036
- <a name="M000024"></a>
1158
+ <div id="method-M000028" class="method-detail">
1159
+ <a name="M000028"></a>
1037
1160
 
1038
1161
  <div class="method-heading">
1039
- <a href="#M000024" class="method-signature">
1162
+ <a href="#M000028" class="method-signature">
1040
1163
  <span class="method-name">get_response</span><span class="method-args">(res)</span>
1041
1164
  </a>
1042
1165
  </div>
@@ -1047,98 +1170,98 @@ Get API XML response If there are errors, raise exception Otherwise return
1047
1170
  XML root
1048
1171
  </p>
1049
1172
  <p><a class="source-toggle" href="#"
1050
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
1051
- <div class="method-source-code" id="M000024-source">
1173
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1174
+ <div class="method-source-code" id="M000028-source">
1052
1175
  <pre>
1053
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 429</span>
1054
- 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1055
- 430: <span class="ruby-keyword kw">begin</span>
1056
- 431: <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>
1057
- 432: <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>
1058
- 433: <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>
1059
- 434: <span class="ruby-keyword kw">end</span>
1060
- 435: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1061
- 436: <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>
1062
- 437: <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>]
1063
- 438: <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>]
1064
- 439: <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>]
1065
- 440: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1066
- 441: <span class="ruby-keyword kw">end</span>
1067
- 442: <span class="ruby-identifier">doc</span>
1068
- 443: <span class="ruby-keyword kw">end</span>
1176
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 471</span>
1177
+ 471: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1178
+ 472: <span class="ruby-keyword kw">begin</span>
1179
+ 473: <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>
1180
+ 474: <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>
1181
+ 475: <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>
1182
+ 476: <span class="ruby-keyword kw">end</span>
1183
+ 477: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1184
+ 478: <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>
1185
+ 479: <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>]
1186
+ 480: <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>]
1187
+ 481: <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>]
1188
+ 482: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1189
+ 483: <span class="ruby-keyword kw">end</span>
1190
+ 484: <span class="ruby-identifier">doc</span>
1191
+ 485: <span class="ruby-keyword kw">end</span>
1069
1192
  </pre>
1070
1193
  </div>
1071
1194
  </div>
1072
1195
  </div>
1073
1196
 
1074
- <div id="method-M000021" class="method-detail">
1075
- <a name="M000021"></a>
1197
+ <div id="method-M000025" class="method-detail">
1198
+ <a name="M000025"></a>
1076
1199
 
1077
1200
  <div class="method-heading">
1078
- <a href="#M000021" class="method-signature">
1201
+ <a href="#M000025" class="method-signature">
1079
1202
  <span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
1080
1203
  </a>
1081
1204
  </div>
1082
1205
 
1083
1206
  <div class="method-description">
1084
1207
  <p>
1085
- Fetch token (type &#8216;<a href="Gateway.html#M000009">delete</a>&#8217;,
1208
+ Fetch token (type &#8216;<a href="Gateway.html#M000012">delete</a>&#8217;,
1086
1209
  &#8216;edit&#8217;, &#8216;<a
1087
- href="Gateway.html#M000016">import</a>&#8217;)
1210
+ href="Gateway.html#M000020">import</a>&#8217;)
1088
1211
  </p>
1089
1212
  <p><a class="source-toggle" href="#"
1090
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
1091
- <div class="method-source-code" id="M000021-source">
1213
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
1214
+ <div class="method-source-code" id="M000025-source">
1092
1215
  <pre>
1093
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 380</span>
1094
- 380: <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>)
1095
- 381: <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>}
1096
- 382: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1097
- 383: <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>]
1098
- 384: <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>
1099
- 385: <span class="ruby-identifier">token</span>
1100
- 386: <span class="ruby-keyword kw">end</span>
1216
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 422</span>
1217
+ 422: <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>)
1218
+ 423: <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>}
1219
+ 424: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1220
+ 425: <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>]
1221
+ 426: <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>
1222
+ 427: <span class="ruby-identifier">token</span>
1223
+ 428: <span class="ruby-keyword kw">end</span>
1101
1224
  </pre>
1102
1225
  </div>
1103
1226
  </div>
1104
1227
  </div>
1105
1228
 
1106
- <div id="method-M000022" class="method-detail">
1107
- <a name="M000022"></a>
1229
+ <div id="method-M000026" class="method-detail">
1230
+ <a name="M000026"></a>
1108
1231
 
1109
1232
  <div class="method-heading">
1110
- <a href="#M000022" class="method-signature">
1233
+ <a href="#M000026" class="method-signature">
1111
1234
  <span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
1112
1235
  </a>
1113
1236
  </div>
1114
1237
 
1115
1238
  <div class="method-description">
1116
1239
  <p><a class="source-toggle" href="#"
1117
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
1118
- <div class="method-source-code" id="M000022-source">
1240
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
1241
+ <div class="method-source-code" id="M000026-source">
1119
1242
  <pre>
1120
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 388</span>
1121
- 388: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1122
- 389: <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>}
1123
- 390: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1124
- 391: <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>]
1125
- 392: <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>]
1126
- 393: <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>
1127
- 394: <span class="ruby-identifier">token</span>
1128
- 395: <span class="ruby-keyword kw">else</span>
1129
- 396: <span class="ruby-keyword kw">nil</span>
1130
- 397: <span class="ruby-keyword kw">end</span>
1131
- 398: <span class="ruby-keyword kw">end</span>
1243
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 430</span>
1244
+ 430: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1245
+ 431: <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>}
1246
+ 432: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1247
+ 433: <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>]
1248
+ 434: <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>]
1249
+ 435: <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>
1250
+ 436: <span class="ruby-identifier">token</span>
1251
+ 437: <span class="ruby-keyword kw">else</span>
1252
+ 438: <span class="ruby-keyword kw">nil</span>
1253
+ 439: <span class="ruby-keyword kw">end</span>
1254
+ 440: <span class="ruby-keyword kw">end</span>
1132
1255
  </pre>
1133
1256
  </div>
1134
1257
  </div>
1135
1258
  </div>
1136
1259
 
1137
- <div id="method-M000023" class="method-detail">
1138
- <a name="M000023"></a>
1260
+ <div id="method-M000027" class="method-detail">
1261
+ <a name="M000027"></a>
1139
1262
 
1140
1263
  <div class="method-heading">
1141
- <a href="#M000023" class="method-signature">
1264
+ <a href="#M000027" class="method-signature">
1142
1265
  <span class="method-name">make_api_request</span><span class="method-args">(form_data)</span>
1143
1266
  </a>
1144
1267
  </div>
@@ -1156,30 +1279,30 @@ Make generic request to API
1156
1279
  Returns XML document
1157
1280
  </p>
1158
1281
  <p><a class="source-toggle" href="#"
1159
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
1160
- <div class="method-source-code" id="M000023-source">
1282
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1283
+ <div class="method-source-code" id="M000027-source">
1161
1284
  <pre>
1162
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 405</span>
1163
- 405: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1164
- 406: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span> <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>
1165
- 407: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;REQ: #{form_data.inspect}, #{@cookies.inspect}&quot;</span>)
1166
- 408: <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>
1167
- 409: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1168
- 410: <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>
1169
- 411: <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>)
1170
- 412: <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>)
1171
- 413: <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>]
1172
- 414: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1173
- 415: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1174
- 416: <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>
1175
- 417: <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>]))
1176
- 418: <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>
1177
- 419: <span class="ruby-keyword kw">end</span>
1178
- 420: <span class="ruby-keyword kw">end</span>
1179
- 421: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
1180
- 422: <span class="ruby-keyword kw">end</span>
1181
- 423:
1182
- 424: <span class="ruby-keyword kw">end</span>
1285
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 447</span>
1286
+ 447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1287
+ 448: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span> <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>
1288
+ 449: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;REQ: #{form_data.inspect}, #{@cookies.inspect}&quot;</span>)
1289
+ 450: <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>
1290
+ 451: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1291
+ 452: <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>
1292
+ 453: <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>)
1293
+ 454: <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>)
1294
+ 455: <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>]
1295
+ 456: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1296
+ 457: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1297
+ 458: <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>
1298
+ 459: <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>]))
1299
+ 460: <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>
1300
+ 461: <span class="ruby-keyword kw">end</span>
1301
+ 462: <span class="ruby-keyword kw">end</span>
1302
+ 463: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
1303
+ 464: <span class="ruby-keyword kw">end</span>
1304
+ 465:
1305
+ 466: <span class="ruby-keyword kw">end</span>
1183
1306
  </pre>
1184
1307
  </div>
1185
1308
  </div>