mediawiki-gateway 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -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>