mediawiki-gateway 0.1.0 → 0.1.1

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.
Files changed (35) hide show
  1. data/README +4 -0
  2. data/Rakefile +4 -3
  3. data/VERSION +1 -1
  4. data/doc/classes/MediaWiki.html +8 -8
  5. data/doc/classes/MediaWiki/Config.html +71 -71
  6. data/doc/classes/MediaWiki/Gateway.html +474 -262
  7. data/doc/created.rid +1 -1
  8. data/doc/files/{README_txt.html → README.html} +8 -5
  9. data/doc/files/{script/delete_book_rb.html → lib/media_wiki/config_rb.html} +7 -6
  10. data/doc/files/{media_wiki → lib/media_wiki}/gateway_rb.html +3 -4
  11. data/doc/files/{media_wiki → lib/media_wiki}/utils_rb.html +2 -2
  12. data/doc/files/script/create_page_rb.html +2 -3
  13. data/doc/files/{media_wiki/config_rb.html → script/delete_batch_rb.html} +5 -5
  14. data/doc/files/script/export_xml_rb.html +2 -2
  15. data/doc/files/script/get_page_rb.html +2 -2
  16. data/doc/files/script/import_xml_rb.html +2 -2
  17. data/doc/files/script/run_fake_media_wiki_rb.html +117 -0
  18. data/doc/files/script/upload_commons_rb.html +2 -3
  19. data/doc/files/script/upload_file_rb.html +2 -3
  20. data/doc/fr_file_index.html +6 -6
  21. data/doc/fr_method_index.html +13 -11
  22. data/doc/index.html +1 -1
  23. data/lib/media_wiki/gateway.rb +128 -15
  24. data/mediawiki-gateway.gemspec +12 -10
  25. data/script/create_page.rb +1 -2
  26. data/script/{delete_book.rb → delete_batch.rb} +1 -1
  27. data/script/export_xml.rb +1 -1
  28. data/script/get_page.rb +1 -1
  29. data/script/import_xml.rb +1 -1
  30. data/script/upload_commons.rb +1 -2
  31. data/script/upload_file.rb +1 -2
  32. data/spec/gateway_spec.rb +1 -1
  33. metadata +26 -14
  34. data/doc/files/script/undelete_page_rb.html +0 -101
  35. data/script/undelete_page.rb +0 -15
data/README CHANGED
@@ -2,10 +2,14 @@
2
2
 
3
3
  Ruby framework for MediaWiki API manipulation
4
4
 
5
+ Gem: http://rubygems.org/gems/mediawiki-gateway
6
+ RDoc: http://rubydoc.info/gems/mediawiki-gateway
7
+
5
8
  == Example
6
9
 
7
10
  Simple page creation script:
8
11
 
12
+ require 'media_wiki'
9
13
  mw = MediaWiki::Gateway.new('http://my-wiki.example/w/api.php')
10
14
  mw.login('RubyBot', 'pa$$w0rd')
11
15
  mw.create('PageTitle', 'Hello world!', 'Comment: My first page')
data/Rakefile CHANGED
@@ -9,8 +9,8 @@ desc 'generate API documentation to doc/index.html'
9
9
 
10
10
  Rake::RDocTask.new do |rd|
11
11
  rd.rdoc_dir = 'doc'
12
- rd.main = 'README.txt'
13
- rd.rdoc_files.include "README.txt", "lib/media_wiki/**/*\.rb", "script/**/*\.rb"
12
+ rd.main = 'README'
13
+ rd.rdoc_files.include "README", "lib/media_wiki/**/*\.rb", "script/**/*\.rb"
14
14
  rd.options << '--inline-source'
15
15
  rd.options << '--line-numbers'
16
16
  rd.options << '--all'
@@ -34,7 +34,8 @@ begin
34
34
  gemspec.email = "jpatokal@iki.fi"
35
35
  gemspec.homepage = "http://github.com/jpatokal/media_wiki_gateway"
36
36
  gemspec.authors = ["Jani Patokallio"]
37
+ gemspec.add_dependency 'rest_client'
37
38
  end
38
39
  rescue LoadError
39
40
  puts "Jeweler not available. Install it with: gem install jeweler"
40
- end
41
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -55,16 +55,16 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../files/media_wiki/config_rb.html">
59
- media_wiki/config.rb
58
+ <a href="../files/lib/media_wiki/config_rb.html">
59
+ lib/media_wiki/config.rb
60
60
  </a>
61
61
  <br />
62
- <a href="../files/media_wiki/gateway_rb.html">
63
- media_wiki/gateway.rb
62
+ <a href="../files/lib/media_wiki/gateway_rb.html">
63
+ lib/media_wiki/gateway.rb
64
64
  </a>
65
65
  <br />
66
- <a href="../files/media_wiki/utils_rb.html">
67
- media_wiki/utils.rb
66
+ <a href="../files/lib/media_wiki/utils_rb.html">
67
+ lib/media_wiki/utils.rb
68
68
  </a>
69
69
  <br />
70
70
  </td>
@@ -132,7 +132,7 @@ Class <a href="MediaWiki/Gateway.html" class="link">MediaWiki::Gateway</a><br />
132
132
  onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
133
133
  <div class="method-source-code" id="M000001-source">
134
134
  <pre>
135
- <span class="ruby-comment cmt"># File media_wiki/utils.rb, line 5</span>
135
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 5</span>
136
136
  5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
137
137
  6: <span class="ruby-value str">&quot;0.0.1&quot;</span>
138
138
  7: <span class="ruby-keyword kw">end</span>
@@ -165,7 +165,7 @@ slashes
165
165
  onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
166
166
  <div class="method-source-code" id="M000002-source">
167
167
  <pre>
168
- <span class="ruby-comment cmt"># File media_wiki/utils.rb, line 12</span>
168
+ <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 12</span>
169
169
  12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
170
170
  13: <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>
171
171
  14: <span class="ruby-keyword kw">end</span>
@@ -55,8 +55,8 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../../files/media_wiki/config_rb.html">
59
- media_wiki/config.rb
58
+ <a href="../../files/lib/media_wiki/config_rb.html">
59
+ lib/media_wiki/config.rb
60
60
  </a>
61
61
  <br />
62
62
  </td>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000023">abort</a>&nbsp;&nbsp;
90
- <a href="#M000022">new</a>&nbsp;&nbsp;
89
+ <a href="#M000025">abort</a>&nbsp;&nbsp;
90
+ <a href="#M000024">new</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -157,72 +157,72 @@
157
157
  <div id="methods">
158
158
  <h3 class="section-bar">Public Class methods</h3>
159
159
 
160
- <div id="method-M000022" class="method-detail">
161
- <a name="M000022"></a>
160
+ <div id="method-M000024" class="method-detail">
161
+ <a name="M000024"></a>
162
162
 
163
163
  <div class="method-heading">
164
- <a href="#M000022" class="method-signature">
164
+ <a href="#M000024" 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('M000022-source');return false;">[Source]</a></p>
172
- <div class="method-source-code" id="M000022-source">
171
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
172
+ <div class="method-source-code" id="M000024-source">
173
173
  <pre>
174
- <span class="ruby-comment cmt"># File media_wiki/config.rb, line 9</span>
175
- 9: <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>)
176
- 10: <span class="ruby-ivar">@summary</span> = <span class="ruby-value str">&quot;Automated edit via MediaWiki::Gateway&quot;</span>
177
- 11: <span class="ruby-ivar">@opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">opts</span><span class="ruby-operator">|</span>
178
- 12: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-value str">&quot;Usage: [options]&quot;</span>
179
- 13:
180
- 14: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-h&quot;</span>, <span class="ruby-value str">&quot;--host HOST&quot;</span>, <span class="ruby-value str">&quot;Use preconfigured HOST in config/hosts.yml&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">host_id</span><span class="ruby-operator">|</span>
181
- 15: <span class="ruby-identifier">yaml</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-value str">'config/hosts.yml'</span>)
182
- 16: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">yaml</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">host_id</span>
183
- 17: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">yaml</span>[<span class="ruby-identifier">host_id</span>]
184
- 18: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">host</span>[<span class="ruby-value str">'url'</span>]
185
- 19: <span class="ruby-ivar">@pw</span> = <span class="ruby-identifier">host</span>[<span class="ruby-value str">'pw'</span>]
186
- 20: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">host</span>[<span class="ruby-value str">'user'</span>]
187
- 21: <span class="ruby-keyword kw">else</span>
188
- 22: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Host #{host_id} not found in config/hosts.yml&quot;</span>
189
- 23: <span class="ruby-keyword kw">end</span>
190
- 24: <span class="ruby-keyword kw">end</span>
191
- 25:
192
- 26: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;upload&quot;</span>
193
- 27: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-d&quot;</span>, <span class="ruby-value str">&quot;--description DESCRIPTION&quot;</span>, <span class="ruby-value str">&quot;Description of file to upload&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">desc</span><span class="ruby-operator">|</span>
194
- 28: <span class="ruby-ivar">@desc</span> = <span class="ruby-identifier">desc</span>
195
- 29: <span class="ruby-keyword kw">end</span>
196
- 30: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-t&quot;</span>, <span class="ruby-value str">&quot;--target-file TARGET-FILE&quot;</span>, <span class="ruby-value str">&quot;Target file name to upload to&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">target</span><span class="ruby-operator">|</span>
197
- 31: <span class="ruby-ivar">@target</span> = <span class="ruby-identifier">target</span>
198
- 32: <span class="ruby-keyword kw">end</span>
199
- 33: <span class="ruby-keyword kw">else</span>
200
- 34: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-a&quot;</span>, <span class="ruby-value str">&quot;--article ARTICLE&quot;</span>, <span class="ruby-value str">&quot;Name of article in Wiki&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">article</span><span class="ruby-operator">|</span>
201
- 35: <span class="ruby-ivar">@article</span> = <span class="ruby-identifier">article</span>
202
- 36: <span class="ruby-keyword kw">end</span>
203
- 37: <span class="ruby-keyword kw">end</span>
204
- 38:
205
- 39: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-n&quot;</span>, <span class="ruby-value str">&quot;--username USERNAME&quot;</span>, <span class="ruby-value str">&quot;Username for login&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">user</span><span class="ruby-operator">|</span>
206
- 40: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
207
- 41: <span class="ruby-keyword kw">end</span>
208
- 42:
209
- 43: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-p&quot;</span>, <span class="ruby-value str">&quot;--password PASSWORD&quot;</span>, <span class="ruby-value str">&quot;Password for login&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pw</span><span class="ruby-operator">|</span>
210
- 44: <span class="ruby-ivar">@pw</span> = <span class="ruby-identifier">pw</span>
211
- 45: <span class="ruby-keyword kw">end</span>
212
- 46:
213
- 47: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;read&quot;</span>
214
- 48: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-s&quot;</span>, <span class="ruby-value str">&quot;--summary SUMMARY&quot;</span>, <span class="ruby-value str">&quot;Edit summary for this change&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">summary</span><span class="ruby-operator">|</span>
215
- 49: <span class="ruby-ivar">@summary</span> = <span class="ruby-identifier">summary</span>
216
- 50: <span class="ruby-keyword kw">end</span>
217
- 51: <span class="ruby-keyword kw">end</span>
218
- 52:
219
- 53: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-u&quot;</span>, <span class="ruby-value str">&quot;--url URL&quot;</span>, <span class="ruby-value str">&quot;MediaWiki API URL&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span><span class="ruby-operator">|</span>
220
- 54: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">url</span>
221
- 55: <span class="ruby-keyword kw">end</span>
222
- 56: <span class="ruby-keyword kw">end</span>
223
- 57: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">parse!</span>
224
- 58: <span class="ruby-identifier">abort</span>(<span class="ruby-value str">&quot;URL (-u) or valid host (-h) is mandatory.&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@url</span>
225
- 59: <span class="ruby-keyword kw">end</span>
174
+ <span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 10</span>
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>)
176
+ 11: <span class="ruby-ivar">@summary</span> = <span class="ruby-value str">&quot;Automated edit via MediaWiki::Gateway&quot;</span>
177
+ 12: <span class="ruby-ivar">@opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">opts</span><span class="ruby-operator">|</span>
178
+ 13: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-value str">&quot;Usage: [options]&quot;</span>
179
+ 14:
180
+ 15: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-h&quot;</span>, <span class="ruby-value str">&quot;--host HOST&quot;</span>, <span class="ruby-value str">&quot;Use preconfigured HOST in config/hosts.yml&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">host_id</span><span class="ruby-operator">|</span>
181
+ 16: <span class="ruby-identifier">yaml</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-value str">'config/hosts.yml'</span>)
182
+ 17: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">yaml</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">host_id</span>
183
+ 18: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">yaml</span>[<span class="ruby-identifier">host_id</span>]
184
+ 19: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">host</span>[<span class="ruby-value str">'url'</span>]
185
+ 20: <span class="ruby-ivar">@pw</span> = <span class="ruby-identifier">host</span>[<span class="ruby-value str">'pw'</span>]
186
+ 21: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">host</span>[<span class="ruby-value str">'user'</span>]
187
+ 22: <span class="ruby-keyword kw">else</span>
188
+ 23: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Host #{host_id} not found in config/hosts.yml&quot;</span>
189
+ 24: <span class="ruby-keyword kw">end</span>
190
+ 25: <span class="ruby-keyword kw">end</span>
191
+ 26:
192
+ 27: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;upload&quot;</span>
193
+ 28: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-d&quot;</span>, <span class="ruby-value str">&quot;--description DESCRIPTION&quot;</span>, <span class="ruby-value str">&quot;Description of file to upload&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">desc</span><span class="ruby-operator">|</span>
194
+ 29: <span class="ruby-ivar">@desc</span> = <span class="ruby-identifier">desc</span>
195
+ 30: <span class="ruby-keyword kw">end</span>
196
+ 31: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-t&quot;</span>, <span class="ruby-value str">&quot;--target-file TARGET-FILE&quot;</span>, <span class="ruby-value str">&quot;Target file name to upload to&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">target</span><span class="ruby-operator">|</span>
197
+ 32: <span class="ruby-ivar">@target</span> = <span class="ruby-identifier">target</span>
198
+ 33: <span class="ruby-keyword kw">end</span>
199
+ 34: <span class="ruby-keyword kw">else</span>
200
+ 35: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-a&quot;</span>, <span class="ruby-value str">&quot;--article ARTICLE&quot;</span>, <span class="ruby-value str">&quot;Name of article in Wiki&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">article</span><span class="ruby-operator">|</span>
201
+ 36: <span class="ruby-ivar">@article</span> = <span class="ruby-identifier">article</span>
202
+ 37: <span class="ruby-keyword kw">end</span>
203
+ 38: <span class="ruby-keyword kw">end</span>
204
+ 39:
205
+ 40: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-n&quot;</span>, <span class="ruby-value str">&quot;--username USERNAME&quot;</span>, <span class="ruby-value str">&quot;Username for login&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">user</span><span class="ruby-operator">|</span>
206
+ 41: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
207
+ 42: <span class="ruby-keyword kw">end</span>
208
+ 43:
209
+ 44: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-p&quot;</span>, <span class="ruby-value str">&quot;--password PASSWORD&quot;</span>, <span class="ruby-value str">&quot;Password for login&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pw</span><span class="ruby-operator">|</span>
210
+ 45: <span class="ruby-ivar">@pw</span> = <span class="ruby-identifier">pw</span>
211
+ 46: <span class="ruby-keyword kw">end</span>
212
+ 47:
213
+ 48: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;read&quot;</span>
214
+ 49: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-s&quot;</span>, <span class="ruby-value str">&quot;--summary SUMMARY&quot;</span>, <span class="ruby-value str">&quot;Edit summary for this change&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">summary</span><span class="ruby-operator">|</span>
215
+ 50: <span class="ruby-ivar">@summary</span> = <span class="ruby-identifier">summary</span>
216
+ 51: <span class="ruby-keyword kw">end</span>
217
+ 52: <span class="ruby-keyword kw">end</span>
218
+ 53:
219
+ 54: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-u&quot;</span>, <span class="ruby-value str">&quot;--url URL&quot;</span>, <span class="ruby-value str">&quot;MediaWiki API URL&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span><span class="ruby-operator">|</span>
220
+ 55: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">url</span>
221
+ 56: <span class="ruby-keyword kw">end</span>
222
+ 57: <span class="ruby-keyword kw">end</span>
223
+ 58: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">parse!</span>
224
+ 59: <span class="ruby-identifier">abort</span>(<span class="ruby-value str">&quot;URL (-u) or valid host (-h) is mandatory.&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@url</span>
225
+ 60: <span class="ruby-keyword kw">end</span>
226
226
  </pre>
227
227
  </div>
228
228
  </div>
@@ -230,25 +230,25 @@
230
230
 
231
231
  <h3 class="section-bar">Public Instance methods</h3>
232
232
 
233
- <div id="method-M000023" class="method-detail">
234
- <a name="M000023"></a>
233
+ <div id="method-M000025" class="method-detail">
234
+ <a name="M000025"></a>
235
235
 
236
236
  <div class="method-heading">
237
- <a href="#M000023" class="method-signature">
237
+ <a href="#M000025" 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('M000023-source');return false;">[Source]</a></p>
245
- <div class="method-source-code" id="M000023-source">
244
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
245
+ <div class="method-source-code" id="M000025-source">
246
246
  <pre>
247
- <span class="ruby-comment cmt"># File media_wiki/config.rb, line 61</span>
248
- 61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort</span>(<span class="ruby-identifier">error</span>)
249
- 62: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Error: #{error}\n\n#{@opts.to_s}&quot;</span>
250
- 63: <span class="ruby-identifier">exit</span>
251
- 64: <span class="ruby-keyword kw">end</span>
247
+ <span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 62</span>
248
+ 62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort</span>(<span class="ruby-identifier">error</span>)
249
+ 63: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Error: #{error}\n\n#{@opts.to_s}&quot;</span>
250
+ 64: <span class="ruby-identifier">exit</span>
251
+ 65: <span class="ruby-keyword kw">end</span>
252
252
  </pre>
253
253
  </div>
254
254
  </div>
@@ -55,8 +55,8 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../../files/media_wiki/gateway_rb.html">
59
- media_wiki/gateway.rb
58
+ <a href="../../files/lib/media_wiki/gateway_rb.html">
59
+ lib/media_wiki/gateway.rb
60
60
  </a>
61
61
  <br />
62
62
  </td>
@@ -88,21 +88,23 @@
88
88
  <div class="name-list">
89
89
  <a href="#M000007">create</a>&nbsp;&nbsp;
90
90
  <a href="#M000008">delete</a>&nbsp;&nbsp;
91
- <a href="#M000014">export</a>&nbsp;&nbsp;
92
- <a href="#M000016">extensions</a>&nbsp;&nbsp;
91
+ <a href="#M000014">download</a>&nbsp;&nbsp;
92
+ <a href="#M000016">export</a>&nbsp;&nbsp;
93
+ <a href="#M000018">extensions</a>&nbsp;&nbsp;
93
94
  <a href="#M000005">get</a>&nbsp;&nbsp;
94
- <a href="#M000021">get_response</a>&nbsp;&nbsp;
95
- <a href="#M000018">get_token</a>&nbsp;&nbsp;
96
- <a href="#M000019">get_undelete_token</a>&nbsp;&nbsp;
97
- <a href="#M000013">import</a>&nbsp;&nbsp;
95
+ <a href="#M000023">get_response</a>&nbsp;&nbsp;
96
+ <a href="#M000020">get_token</a>&nbsp;&nbsp;
97
+ <a href="#M000021">get_undelete_token</a>&nbsp;&nbsp;
98
+ <a href="#M000013">image_info</a>&nbsp;&nbsp;
99
+ <a href="#M000015">import</a>&nbsp;&nbsp;
98
100
  <a href="#M000010">list</a>&nbsp;&nbsp;
99
101
  <a href="#M000004">login</a>&nbsp;&nbsp;
100
- <a href="#M000020">make_api_request</a>&nbsp;&nbsp;
101
- <a href="#M000015">namespaces_by_prefix</a>&nbsp;&nbsp;
102
+ <a href="#M000022">make_api_request</a>&nbsp;&nbsp;
103
+ <a href="#M000017">namespaces_by_prefix</a>&nbsp;&nbsp;
102
104
  <a href="#M000003">new</a>&nbsp;&nbsp;
103
105
  <a href="#M000006">render</a>&nbsp;&nbsp;
104
106
  <a href="#M000011">search</a>&nbsp;&nbsp;
105
- <a href="#M000017">semantic_query</a>&nbsp;&nbsp;
107
+ <a href="#M000019">semantic_query</a>&nbsp;&nbsp;
106
108
  <a href="#M000009">undelete</a>&nbsp;&nbsp;
107
109
  <a href="#M000012">upload</a>&nbsp;&nbsp;
108
110
  </div>
@@ -167,14 +169,14 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>&quot;)
167
169
  onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
168
170
  <div class="method-source-code" id="M000003-source">
169
171
  <pre>
170
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 16</span>
171
- 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>)
172
- 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>)
173
- 18: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-identifier">loglevel</span>
174
- 19: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
175
- 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> }
176
- 21: <span class="ruby-ivar">@cookies</span> = {}
177
- 22: <span class="ruby-keyword kw">end</span>
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>
178
180
  </pre>
179
181
  </div>
180
182
  </div>
@@ -227,12 +229,12 @@ href="Gateway.html#M000003">new</a> one (useful for bulk loads)
227
229
  onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
228
230
  <div class="method-source-code" id="M000007-source">
229
231
  <pre>
230
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 80</span>
231
- 80: <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>={})
232
- 81: <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>)}
233
- 82: <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>]
234
- 83: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
235
- 84: <span class="ruby-keyword kw">end</span>
232
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 79</span>
233
+ 79: <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
+ 80: <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
+ 81: <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
+ 82: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
237
+ 83: <span class="ruby-keyword kw">end</span>
236
238
  </pre>
237
239
  </div>
238
240
  </div>
@@ -261,11 +263,11 @@ support deleting multiple pages at a time.)
261
263
  onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
262
264
  <div class="method-source-code" id="M000008-source">
263
265
  <pre>
264
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 89</span>
265
- 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
266
- 90: <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>)}
267
- 91: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
268
- 92: <span class="ruby-keyword kw">end</span>
266
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 88</span>
267
+ 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
268
+ 89: <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
+ 90: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
270
+ 91: <span class="ruby-keyword kw">end</span>
269
271
  </pre>
270
272
  </div>
271
273
  </div>
@@ -276,6 +278,43 @@ support deleting multiple pages at a time.)
276
278
 
277
279
  <div class="method-heading">
278
280
  <a href="#M000014" class="method-signature">
281
+ <span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
282
+ </a>
283
+ </div>
284
+
285
+ <div class="method-description">
286
+ <p>
287
+ Download <em>file_name</em>. Returns file contents. All options are passed
288
+ to <a href="Gateway.html#M000013">image_info</a> however
289
+ options[&#8216;iiprop&#8217;] is forced to url. You can still set other
290
+ options to control what file you want to <a
291
+ href="Gateway.html#M000014">download</a>.
292
+ </p>
293
+ <p><a class="source-toggle" href="#"
294
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
295
+ <div class="method-source-code" id="M000014-source">
296
+ <pre>
297
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 282</span>
298
+ 282: <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
+ 283: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
300
+ 284:
301
+ 285: <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
+ 286: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
303
+ 287: <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
+ 288: <span class="ruby-keyword kw">else</span>
305
+ 289: <span class="ruby-keyword kw">nil</span>
306
+ 290: <span class="ruby-keyword kw">end</span>
307
+ 291: <span class="ruby-keyword kw">end</span>
308
+ </pre>
309
+ </div>
310
+ </div>
311
+ </div>
312
+
313
+ <div id="method-M000016" class="method-detail">
314
+ <a name="M000016"></a>
315
+
316
+ <div class="method-heading">
317
+ <a href="#M000016" class="method-signature">
279
318
  <span class="method-name">export</span><span class="method-args">(page_titles)</span>
280
319
  </a>
281
320
  </div>
@@ -293,24 +332,24 @@ Exports a page or set of pages
293
332
  Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
294
333
  </p>
295
334
  <p><a class="source-toggle" href="#"
296
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
297
- <div class="method-source-code" id="M000014-source">
335
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
336
+ <div class="method-source-code" id="M000016-source">
298
337
  <pre>
299
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 199</span>
300
- 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
301
- 200: <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>}
302
- 201: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
303
- 202: <span class="ruby-keyword kw">end</span>
338
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 313</span>
339
+ 313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
340
+ 314: <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
+ 315: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
342
+ 316: <span class="ruby-keyword kw">end</span>
304
343
  </pre>
305
344
  </div>
306
345
  </div>
307
346
  </div>
308
347
 
309
- <div id="method-M000016" class="method-detail">
310
- <a name="M000016"></a>
348
+ <div id="method-M000018" class="method-detail">
349
+ <a name="M000018"></a>
311
350
 
312
351
  <div class="method-heading">
313
- <a href="#M000016" class="method-signature">
352
+ <a href="#M000018" class="method-signature">
314
353
  <span class="method-name">extensions</span><span class="method-args">()</span>
315
354
  </a>
316
355
  </div>
@@ -318,26 +357,26 @@ Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
318
357
  <div class="method-description">
319
358
  <p>
320
359
  Get a <a href="Gateway.html#M000010">list</a> of all installed (and
321
- registered) <a href="Gateway.html#M000016">extensions</a>
360
+ registered) <a href="Gateway.html#M000018">extensions</a>
322
361
  </p>
323
362
  <p>
324
- Returns array of <a href="Gateway.html#M000016">extensions</a> (name =&gt;
363
+ Returns array of <a href="Gateway.html#M000018">extensions</a> (name =&gt;
325
364
  version)
326
365
  </p>
327
366
  <p><a class="source-toggle" href="#"
328
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
329
- <div class="method-source-code" id="M000016-source">
367
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
368
+ <div class="method-source-code" id="M000018-source">
330
369
  <pre>
331
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 220</span>
332
- 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
333
- 221: <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> }
334
- 222: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
335
- 223: <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>
336
- 224: <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>
337
- 225: <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>]
338
- 226: <span class="ruby-identifier">extensions</span>
339
- 227: <span class="ruby-keyword kw">end</span>
340
- 228: <span class="ruby-keyword kw">end</span>
370
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 334</span>
371
+ 334: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
372
+ 335: <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
+ 336: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
374
+ 337: <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
+ 338: <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
+ 339: <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
+ 340: <span class="ruby-identifier">extensions</span>
378
+ 341: <span class="ruby-keyword kw">end</span>
379
+ 342: <span class="ruby-keyword kw">end</span>
341
380
  </pre>
342
381
  </div>
343
382
  </div>
@@ -369,16 +408,16 @@ Returns nil if the page does not exist
369
408
  onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
370
409
  <div class="method-source-code" id="M000005-source">
371
410
  <pre>
372
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 45</span>
373
- 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
374
- 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>}
375
- 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>]
376
- 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>]
377
- 49: <span class="ruby-keyword kw">nil</span>
378
- 50: <span class="ruby-keyword kw">else</span>
379
- 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>
380
- 52: <span class="ruby-keyword kw">end</span>
381
- 53: <span class="ruby-keyword kw">end</span>
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>
419
+ 51: <span class="ruby-keyword kw">end</span>
420
+ 52: <span class="ruby-keyword kw">end</span>
382
421
  </pre>
383
422
  </div>
384
423
  </div>
@@ -389,6 +428,98 @@ Returns nil if the page does not exist
389
428
 
390
429
  <div class="method-heading">
391
430
  <a href="#M000013" class="method-signature">
431
+ <span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
432
+ </a>
433
+ </div>
434
+
435
+ <div class="method-description">
436
+ <p>
437
+ Requests image info from <a href="../MediaWiki.html">MediaWiki</a>. Follows
438
+ redirects.
439
+ </p>
440
+ <p>
441
+ <em>file_name_or_page_id</em> should be either:
442
+ </p>
443
+ <ul>
444
+ <li>a file name (String) you want info about without File: prefix.
445
+
446
+ </li>
447
+ <li>or a Fixnum page id you of the file.
448
+
449
+ </li>
450
+ </ul>
451
+ <p>
452
+ <em>options</em> is <tt>Hash</tt> passed as query arguments. See <a
453
+ href="http://www.mediawiki.org/wiki/API:Query_-_Properties#imageinfo_.2F_ii">www.mediawiki.org/wiki/API:Query_-_Properties#imageinfo_.2F_ii</a>
454
+ for more information.
455
+ </p>
456
+ <p>
457
+ options[&#8216;iiprop&#8217;] should be either a string of properties
458
+ joined by &#8217;|&#8217; or an <tt>Array</tt> (or more precisely something
459
+ that responds to join).
460
+ </p>
461
+ <p>
462
+ <tt>Hash</tt> like object is returned where keys are image properties.
463
+ </p>
464
+ <p>
465
+ Example:
466
+ </p>
467
+ <pre>
468
+ mw.image_info(
469
+ &quot;Trooper.jpg&quot;, 'iiprop' =&gt; ['timestamp', 'user']
470
+ ).each do |key, value|
471
+ puts &quot;#{key.inspect} =&gt; #{value.inspect}&quot;
472
+ end
473
+ </pre>
474
+ <p>
475
+ Output:
476
+ </p>
477
+ <pre>
478
+ &quot;timestamp&quot; =&gt; &quot;2009-10-31T12:59:11Z&quot;
479
+ &quot;user&quot; =&gt; &quot;Valdas&quot;
480
+ </pre>
481
+ <p><a class="source-toggle" href="#"
482
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
483
+ <div class="method-source-code" id="M000013-source">
484
+ <pre>
485
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 251</span>
486
+ 251: <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
+ 252: <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
+ 253: <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
+ 254: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
490
+ 255: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
491
+ 256: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
492
+ 257: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
493
+ 258: )
494
+ 259:
495
+ 260: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
496
+ 261: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
497
+ 262: <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
+ 263: <span class="ruby-keyword kw">else</span>
499
+ 264: <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
+ 265: <span class="ruby-keyword kw">end</span>
501
+ 266:
502
+ 267: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
503
+ 268: <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
+ 269: <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
+ 270: <span class="ruby-keyword kw">nil</span>
506
+ 271: <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
+ 272: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
508
+ 273: <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
+ 274: <span class="ruby-keyword kw">else</span>
510
+ 275: <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
+ 276: <span class="ruby-keyword kw">end</span>
512
+ 277: <span class="ruby-keyword kw">end</span>
513
+ </pre>
514
+ </div>
515
+ </div>
516
+ </div>
517
+
518
+ <div id="method-M000015" class="method-detail">
519
+ <a name="M000015"></a>
520
+
521
+ <div class="method-heading">
522
+ <a href="#M000015" class="method-signature">
392
523
  <span class="method-name">import</span><span class="method-args">(xmlfile)</span>
393
524
  </a>
394
525
  </div>
@@ -404,22 +535,22 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
404
535
  </dl>
405
536
  <p>
406
537
  Returns XML array &lt;api&gt;&lt;<a
407
- href="Gateway.html#M000013">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
538
+ href="Gateway.html#M000015">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
408
539
  &lt;page revisions=&quot;1&quot;&gt; (or more) means successfully imported
409
540
  &lt;page revisions=&quot;0&quot;&gt; means duplicate, not imported
410
541
  </p>
411
542
  <p><a class="source-toggle" href="#"
412
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
413
- <div class="method-source-code" id="M000013-source">
543
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
544
+ <div class="method-source-code" id="M000015-source">
414
545
  <pre>
415
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 186</span>
416
- 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
417
- 187: <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>,
418
- 188: <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>),
419
- 189: <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>
420
- 190: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
421
- 191: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
422
- 192: <span class="ruby-keyword kw">end</span>
546
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 300</span>
547
+ 300: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
548
+ 301: <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
+ 302: <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
+ 303: <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
+ 304: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
552
+ 305: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
553
+ 306: <span class="ruby-keyword kw">end</span>
423
554
  </pre>
424
555
  </div>
425
556
  </div>
@@ -450,26 +581,26 @@ Returns array of page titles (empty if no matches)
450
581
  onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
451
582
  <div class="method-source-code" id="M000010-source">
452
583
  <pre>
453
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 115</span>
454
- 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
455
- 116: <span class="ruby-identifier">titles</span> = []
456
- 117: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
457
- 118: <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>
458
- 119: <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>
459
- 120: <span class="ruby-keyword kw">begin</span>
460
- 121: <span class="ruby-identifier">form_data</span> =
461
- 122: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
462
- 123: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
463
- 124: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
464
- 125: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
465
- 126: <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>
466
- 127: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
467
- 128: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
468
- 129: <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>
469
- 130: <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>] }
470
- 131: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
471
- 132: <span class="ruby-identifier">titles</span>
472
- 133: <span class="ruby-keyword kw">end</span>
584
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 114</span>
585
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
586
+ 115: <span class="ruby-identifier">titles</span> = []
587
+ 116: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
588
+ 117: <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
+ 118: <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
+ 119: <span class="ruby-keyword kw">begin</span>
591
+ 120: <span class="ruby-identifier">form_data</span> =
592
+ 121: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
593
+ 122: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
594
+ 123: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
595
+ 124: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
596
+ 125: <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
+ 126: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
598
+ 127: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
599
+ 128: <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
+ 129: <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
+ 130: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
602
+ 131: <span class="ruby-identifier">titles</span>
603
+ 132: <span class="ruby-keyword kw">end</span>
473
604
  </pre>
474
605
  </div>
475
606
  </div>
@@ -507,23 +638,23 @@ Throws error if <a href="Gateway.html#M000004">login</a> fails
507
638
  onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
508
639
  <div class="method-source-code" id="M000004-source">
509
640
  <pre>
510
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 33</span>
511
- 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>)
512
- 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>}
513
- 35: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
514
- 36: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
515
- 37: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
516
- 38: <span class="ruby-keyword kw">end</span>
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>
517
648
  </pre>
518
649
  </div>
519
650
  </div>
520
651
  </div>
521
652
 
522
- <div id="method-M000015" class="method-detail">
523
- <a name="M000015"></a>
653
+ <div id="method-M000017" class="method-detail">
654
+ <a name="M000017"></a>
524
655
 
525
656
  <div class="method-heading">
526
- <a href="#M000015" class="method-signature">
657
+ <a href="#M000017" class="method-signature">
527
658
  <span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
528
659
  </a>
529
660
  </div>
@@ -536,19 +667,19 @@ Get a <a href="Gateway.html#M000010">list</a> of all known namespaces
536
667
  Returns array of namespaces (name =&gt; id)
537
668
  </p>
538
669
  <p><a class="source-toggle" href="#"
539
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
540
- <div class="method-source-code" id="M000015-source">
670
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
671
+ <div class="method-source-code" id="M000017-source">
541
672
  <pre>
542
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 207</span>
543
- 207: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
544
- 208: <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> }
545
- 209: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
546
- 210: <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>
547
- 211: <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>
548
- 212: <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>
549
- 213: <span class="ruby-identifier">namespaces</span>
550
- 214: <span class="ruby-keyword kw">end</span>
551
- 215: <span class="ruby-keyword kw">end</span>
673
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 321</span>
674
+ 321: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
675
+ 322: <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
+ 323: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
677
+ 324: <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
+ 325: <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
+ 326: <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
+ 327: <span class="ruby-identifier">namespaces</span>
681
+ 328: <span class="ruby-keyword kw">end</span>
682
+ 329: <span class="ruby-keyword kw">end</span>
552
683
  </pre>
553
684
  </div>
554
685
  </div>
@@ -579,16 +710,16 @@ Returns nil if the page does not exist
579
710
  onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
580
711
  <div class="method-source-code" id="M000006-source">
581
712
  <pre>
582
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 60</span>
583
- 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">page_title</span>)
584
- 61: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'parse'</span>, <span class="ruby-value str">'page'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
585
- 62: <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>]
586
- 63: <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>
587
- 64: <span class="ruby-keyword kw">return</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>)
588
- 65: <span class="ruby-keyword kw">else</span>
589
- 66: <span class="ruby-keyword kw">nil</span>
590
- 67: <span class="ruby-keyword kw">end</span>
591
- 68: <span class="ruby-keyword kw">end</span>
713
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 59</span>
714
+ 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">page_title</span>)
715
+ 60: <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>}
716
+ 61: <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>]
717
+ 62: <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>
718
+ 63: <span class="ruby-keyword kw">return</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>)
719
+ 64: <span class="ruby-keyword kw">else</span>
720
+ 65: <span class="ruby-keyword kw">nil</span>
721
+ 66: <span class="ruby-keyword kw">end</span>
722
+ 67: <span class="ruby-keyword kw">end</span>
592
723
  </pre>
593
724
  </div>
594
725
  </div>
@@ -627,30 +758,30 @@ Returns array of page titles (empty if no matches)
627
758
  onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
628
759
  <div class="method-source-code" id="M000011-source">
629
760
  <pre>
630
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 142</span>
631
- 142: <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>)
632
- 143: <span class="ruby-identifier">titles</span> = []
633
- 144: <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>,
634
- 145: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
635
- 146: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
636
- 147: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
637
- 148: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>}
638
- 149: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
639
- 150: <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>
640
- 151: <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>)
641
- 152: <span class="ruby-keyword kw">end</span>
642
- 153: <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>] }
643
- 154: <span class="ruby-keyword kw">end</span>
761
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 141</span>
762
+ 141: <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>)
763
+ 142: <span class="ruby-identifier">titles</span> = []
764
+ 143: <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>,
765
+ 144: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
766
+ 145: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
767
+ 146: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
768
+ 147: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>}
769
+ 148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
770
+ 149: <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>
771
+ 150: <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>)
772
+ 151: <span class="ruby-keyword kw">end</span>
773
+ 152: <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>] }
774
+ 153: <span class="ruby-keyword kw">end</span>
644
775
  </pre>
645
776
  </div>
646
777
  </div>
647
778
  </div>
648
779
 
649
- <div id="method-M000017" class="method-detail">
650
- <a name="M000017"></a>
780
+ <div id="method-M000019" class="method-detail">
781
+ <a name="M000019"></a>
651
782
 
652
783
  <div class="method-heading">
653
- <a href="#M000017" class="method-signature">
784
+ <a href="#M000019" class="method-signature">
654
785
  <span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
655
786
  </a>
656
787
  </div>
@@ -672,16 +803,16 @@ Execute Semantic Mediawiki query
672
803
  Returns result as an HTML string
673
804
  </p>
674
805
  <p><a class="source-toggle" href="#"
675
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
676
- <div class="method-source-code" id="M000017-source">
806
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
807
+ <div class="method-source-code" id="M000019-source">
677
808
  <pre>
678
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 236</span>
679
- 236: <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> = [])
680
- 237: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
681
- 238: <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> }
682
- 239: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
683
- 240: <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>
684
- 241: <span class="ruby-keyword kw">end</span>
809
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 350</span>
810
+ 350: <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> = [])
811
+ 351: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
812
+ 352: <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> }
813
+ 353: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
814
+ 354: <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>
815
+ 355: <span class="ruby-keyword kw">end</span>
685
816
  </pre>
686
817
  </div>
687
818
  </div>
@@ -712,17 +843,17 @@ Returns number of revisions undeleted.
712
843
  onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
713
844
  <div class="method-source-code" id="M000009-source">
714
845
  <pre>
715
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 99</span>
716
- 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
717
- 100: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
718
- 101: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
719
- 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">'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> }
720
- 103: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
721
- 104: <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>
722
- 105: <span class="ruby-keyword kw">else</span>
723
- 106: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
724
- 107: <span class="ruby-keyword kw">end</span>
725
- 108: <span class="ruby-keyword kw">end</span>
846
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 98</span>
847
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
848
+ 99: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
849
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
850
+ 101: <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> }
851
+ 102: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
852
+ 103: <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>
853
+ 104: <span class="ruby-keyword kw">else</span>
854
+ 105: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
855
+ 106: <span class="ruby-keyword kw">end</span>
856
+ 107: <span class="ruby-keyword kw">end</span>
726
857
  </pre>
727
858
  </div>
728
859
  </div>
@@ -739,48 +870,129 @@ Returns number of revisions undeleted.
739
870
 
740
871
  <div class="method-description">
741
872
  <p>
742
- Upload file to <a href="../MediaWiki.html">MediaWiki</a> Requires Mediawiki
743
- 1.16+
873
+ Upload a file, or <a href="Gateway.html#M000005">get</a> the status of
874
+ pending uploads. Several methods are available:
744
875
  </p>
745
- <dl>
746
- <dt>path</dt><dd>Path to file to <a href="Gateway.html#M000012">upload</a>
876
+ <ul>
877
+ <li>Upload file contents directly.
747
878
 
748
- </dd>
749
- <dt>options</dt><dd>Hash of additional options
879
+ </li>
880
+ <li>Have the <a href="../MediaWiki.html">MediaWiki</a> server fetch a file from
881
+ a URL, using the &quot;url&quot; parameter
750
882
 
751
- </dd>
752
- </dl>
883
+ </li>
884
+ </ul>
885
+ <p>
886
+ Requires Mediawiki 1.16+
887
+ </p>
888
+ <p>
889
+ Arguments:
890
+ </p>
891
+ <ul>
892
+ <li>[path] Path to file to <a href="Gateway.html#M000012">upload</a>. Set to
893
+ nil if uploading from URL.
894
+
895
+ </li>
896
+ <li>[options] Hash of additional options
897
+
898
+ </li>
899
+ </ul>
900
+ <p>
901
+ Note that queries using session keys must be done in the same <a
902
+ href="Gateway.html#M000004">login</a> session as the query that originally
903
+ returned the key (i.e. do not log out and then log back in).
904
+ </p>
753
905
  <p>
754
906
  Options:
755
907
  </p>
756
908
  <ul>
757
- <li>[description] Description of this file
909
+ <li>&#8216;filename&#8217; - Target filename (defaults to local name if not
910
+ given, options[:target] is alias for this.
911
+
912
+ </li>
913
+ <li>&#8216;comment&#8217; - Upload comment. Also used as the initial page text
914
+ for <a href="Gateway.html#M000003">new</a> files if &quot;text&quot; is not
915
+ specified.
916
+
917
+ </li>
918
+ <li>&#8216;text&#8217; - Initial page text for <a
919
+ href="Gateway.html#M000003">new</a> files
920
+
921
+ </li>
922
+ <li>&#8216;watch&#8217; - Watch the page
923
+
924
+ </li>
925
+ <li>&#8216;ignorewarnings&#8217; - Ignore any warnings
926
+
927
+ </li>
928
+ <li>&#8216;url&#8217; - Url to fetch the file from. Set path to nil
929
+
930
+ <pre>
931
+ if you want to use this.
932
+ </pre>
933
+ </li>
934
+ </ul>
935
+ <p>
936
+ Deprecated but still supported options:
937
+ </p>
938
+ <ul>
939
+ <li>:description - Description of this file. Used as &#8216;text&#8217;.
758
940
 
759
941
  </li>
760
- <li>[target] Target filename, defaults to local name if not given
942
+ <li>:target - Target filename, same as &#8216;filename&#8217;.
761
943
 
762
944
  </li>
763
- <li>[summary] Edit summary for history
945
+ <li>:summary - Edit summary for history. Used as &#8216;comment&#8217;. Also
946
+ used as &#8216;text&#8217; if neither it or :description is specified.
764
947
 
765
948
  </li>
766
949
  </ul>
950
+ <p>
951
+ Examples:
952
+ </p>
953
+ <pre>
954
+ mw.upload('/path/to/local/file.jpg', 'filename' =&gt; &quot;RemoteFile.jpg&quot;)
955
+ mw.upload(nil, 'filename' =&gt; &quot;RemoteFile2.jpg&quot;,
956
+ 'url' =&gt; 'http://remote.com/server/file.jpg')
957
+ </pre>
767
958
  <p><a class="source-toggle" href="#"
768
959
  onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
769
960
  <div class="method-source-code" id="M000012-source">
770
961
  <pre>
771
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 166</span>
772
- 166: <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>={})
773
- 167: <span class="ruby-identifier">comment</span> = (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;Uploaded by MediaWiki::Gateway&quot;</span>)
774
- 168: <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>)
775
- 169: <span class="ruby-identifier">filename</span> = (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">path</span>))
776
- 170: <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">'upload'</span>,
777
- 171: <span class="ruby-value str">'filename'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filename</span>,
778
- 172: <span class="ruby-value str">'file'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">file</span>,
779
- 173: <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">filename</span>),
780
- 174: <span class="ruby-value str">'text'</span> =<span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]),
781
- 175: <span class="ruby-value str">'comment'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">comment</span>}
782
- 176: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
783
- 177: <span class="ruby-keyword kw">end</span>
962
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 191</span>
963
+ 191: <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>={})
964
+ 192: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
965
+ 193: <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>]
966
+ 194: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
967
+ 195: <span class="ruby-keyword kw">end</span>
968
+ 196:
969
+ 197: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
970
+ 198: <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>]
971
+ 199: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
972
+ 200: <span class="ruby-keyword kw">end</span>
973
+ 201:
974
+ 202: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
975
+ 203: <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>]
976
+ 204: <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>]
977
+ 205: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
978
+ 206: <span class="ruby-keyword kw">end</span>
979
+ 207:
980
+ 208: <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>
981
+ 209: <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>
982
+ 210: <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>]
983
+ 211: <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>
984
+ 212:
985
+ 213: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
986
+ 214: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
987
+ 215: ) <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>]
988
+ 216:
989
+ 217: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
990
+ 218: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
991
+ 219: <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>])
992
+ 220: )
993
+ 221:
994
+ 222: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
995
+ 223: <span class="ruby-keyword kw">end</span>
784
996
  </pre>
785
997
  </div>
786
998
  </div>
@@ -788,11 +1000,11 @@ Options:
788
1000
 
789
1001
  <h3 class="section-bar">Private Instance methods</h3>
790
1002
 
791
- <div id="method-M000021" class="method-detail">
792
- <a name="M000021"></a>
1003
+ <div id="method-M000023" class="method-detail">
1004
+ <a name="M000023"></a>
793
1005
 
794
1006
  <div class="method-heading">
795
- <a href="#M000021" class="method-signature">
1007
+ <a href="#M000023" class="method-signature">
796
1008
  <span class="method-name">get_response</span><span class="method-args">(res)</span>
797
1009
  </a>
798
1010
  </div>
@@ -803,31 +1015,31 @@ Get API XML response If there are errors, print and bail out Otherwise
803
1015
  return XML root
804
1016
  </p>
805
1017
  <p><a class="source-toggle" href="#"
806
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
807
- <div class="method-source-code" id="M000021-source">
1018
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
1019
+ <div class="method-source-code" id="M000023-source">
808
1020
  <pre>
809
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 295</span>
810
- 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
811
- 296: <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>
812
- 297: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
813
- 298: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error, response does not contain Mediawiki API XML: #{res}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;api&quot;</span>
814
- 299: <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>]
815
- 300: <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>]
816
- 301: <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>]
817
- 302: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
818
- 303: <span class="ruby-keyword kw">end</span>
819
- 304: <span class="ruby-identifier">doc</span>
820
- 305: <span class="ruby-keyword kw">end</span>
1021
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 409</span>
1022
+ 409: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1023
+ 410: <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>
1024
+ 411: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1025
+ 412: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error, 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>
1026
+ 413: <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>]
1027
+ 414: <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>]
1028
+ 415: <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>]
1029
+ 416: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1030
+ 417: <span class="ruby-keyword kw">end</span>
1031
+ 418: <span class="ruby-identifier">doc</span>
1032
+ 419: <span class="ruby-keyword kw">end</span>
821
1033
  </pre>
822
1034
  </div>
823
1035
  </div>
824
1036
  </div>
825
1037
 
826
- <div id="method-M000018" class="method-detail">
827
- <a name="M000018"></a>
1038
+ <div id="method-M000020" class="method-detail">
1039
+ <a name="M000020"></a>
828
1040
 
829
1041
  <div class="method-heading">
830
- <a href="#M000018" class="method-signature">
1042
+ <a href="#M000020" class="method-signature">
831
1043
  <span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
832
1044
  </a>
833
1045
  </div>
@@ -836,61 +1048,61 @@ return XML root
836
1048
  <p>
837
1049
  Fetch token (type &#8216;<a href="Gateway.html#M000008">delete</a>&#8217;,
838
1050
  &#8216;edit&#8217;, &#8216;<a
839
- href="Gateway.html#M000013">import</a>&#8217;)
1051
+ href="Gateway.html#M000015">import</a>&#8217;)
840
1052
  </p>
841
1053
  <p><a class="source-toggle" href="#"
842
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
843
- <div class="method-source-code" id="M000018-source">
1054
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1055
+ <div class="method-source-code" id="M000020-source">
844
1056
  <pre>
845
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 246</span>
846
- 246: <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>)
847
- 247: <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>}
848
- 248: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
849
- 249: <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>]
850
- 250: <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>
851
- 251: <span class="ruby-identifier">token</span>
852
- 252: <span class="ruby-keyword kw">end</span>
1057
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 360</span>
1058
+ 360: <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>)
1059
+ 361: <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>}
1060
+ 362: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1061
+ 363: <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>]
1062
+ 364: <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>
1063
+ 365: <span class="ruby-identifier">token</span>
1064
+ 366: <span class="ruby-keyword kw">end</span>
853
1065
  </pre>
854
1066
  </div>
855
1067
  </div>
856
1068
  </div>
857
1069
 
858
- <div id="method-M000019" class="method-detail">
859
- <a name="M000019"></a>
1070
+ <div id="method-M000021" class="method-detail">
1071
+ <a name="M000021"></a>
860
1072
 
861
1073
  <div class="method-heading">
862
- <a href="#M000019" class="method-signature">
1074
+ <a href="#M000021" class="method-signature">
863
1075
  <span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
864
1076
  </a>
865
1077
  </div>
866
1078
 
867
1079
  <div class="method-description">
868
1080
  <p><a class="source-toggle" href="#"
869
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
870
- <div class="method-source-code" id="M000019-source">
1081
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
1082
+ <div class="method-source-code" id="M000021-source">
871
1083
  <pre>
872
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 254</span>
873
- 254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
874
- 255: <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>}
875
- 256: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
876
- 257: <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>]
877
- 258: <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>]
878
- 259: <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>
879
- 260: <span class="ruby-identifier">token</span>
880
- 261: <span class="ruby-keyword kw">else</span>
881
- 262: <span class="ruby-keyword kw">nil</span>
882
- 263: <span class="ruby-keyword kw">end</span>
883
- 264: <span class="ruby-keyword kw">end</span>
1084
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 368</span>
1085
+ 368: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1086
+ 369: <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>}
1087
+ 370: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1088
+ 371: <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>]
1089
+ 372: <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>]
1090
+ 373: <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>
1091
+ 374: <span class="ruby-identifier">token</span>
1092
+ 375: <span class="ruby-keyword kw">else</span>
1093
+ 376: <span class="ruby-keyword kw">nil</span>
1094
+ 377: <span class="ruby-keyword kw">end</span>
1095
+ 378: <span class="ruby-keyword kw">end</span>
884
1096
  </pre>
885
1097
  </div>
886
1098
  </div>
887
1099
  </div>
888
1100
 
889
- <div id="method-M000020" class="method-detail">
890
- <a name="M000020"></a>
1101
+ <div id="method-M000022" class="method-detail">
1102
+ <a name="M000022"></a>
891
1103
 
892
1104
  <div class="method-heading">
893
- <a href="#M000020" class="method-signature">
1105
+ <a href="#M000022" class="method-signature">
894
1106
  <span class="method-name">make_api_request</span><span class="method-args">(form_data)</span>
895
1107
  </a>
896
1108
  </div>
@@ -908,30 +1120,30 @@ Make generic request to API
908
1120
  Returns XML document
909
1121
  </p>
910
1122
  <p><a class="source-toggle" href="#"
911
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
912
- <div class="method-source-code" id="M000020-source">
1123
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
1124
+ <div class="method-source-code" id="M000022-source">
913
1125
  <pre>
914
- <span class="ruby-comment cmt"># File media_wiki/gateway.rb, line 271</span>
915
- 271: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
916
- 272: <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>
917
- 273: <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>)
918
- 274: <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>
919
- 275: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
920
- 276: <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>
921
- 277: <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>)
922
- 278: <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>)
923
- 279: <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>]
924
- 280: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
925
- 281: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
926
- 282: <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>
927
- 283: <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>]))
928
- 284: <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>
929
- 285: <span class="ruby-keyword kw">end</span>
930
- 286: <span class="ruby-keyword kw">end</span>
931
- 287: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
932
- 288: <span class="ruby-keyword kw">end</span>
933
- 289:
934
- 290: <span class="ruby-keyword kw">end</span>
1126
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 385</span>
1127
+ 385: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1128
+ 386: <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>
1129
+ 387: <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>)
1130
+ 388: <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>
1131
+ 389: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1132
+ 390: <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>
1133
+ 391: <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>)
1134
+ 392: <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>)
1135
+ 393: <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>]
1136
+ 394: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1137
+ 395: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1138
+ 396: <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>
1139
+ 397: <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>]))
1140
+ 398: <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>
1141
+ 399: <span class="ruby-keyword kw">end</span>
1142
+ 400: <span class="ruby-keyword kw">end</span>
1143
+ 401: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
1144
+ 402: <span class="ruby-keyword kw">end</span>
1145
+ 403:
1146
+ 404: <span class="ruby-keyword kw">end</span>
935
1147
  </pre>
936
1148
  </div>
937
1149
  </div>