mediawiki-gateway 0.3.8 → 0.4.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.
@@ -58,6 +58,10 @@
58
58
  <a href="../files/lib/media_wiki/config_rb.html">
59
59
  lib/media_wiki/config.rb
60
60
  </a>
61
+ <br />
62
+ <a href="../files/lib/media_wiki/exception_rb.html">
63
+ lib/media_wiki/exception.rb
64
+ </a>
61
65
  <br />
62
66
  <a href="../files/lib/media_wiki/utils_rb.html">
63
67
  lib/media_wiki/utils.rb
@@ -108,8 +112,11 @@
108
112
  <div id="class-list">
109
113
  <h3 class="section-bar">Classes and Modules</h3>
110
114
 
111
- Class <a href="MediaWiki/Config.html" class="link">MediaWiki::Config</a><br />
115
+ Class <a href="MediaWiki/APIError.html" class="link">MediaWiki::APIError</a><br />
116
+ Class <a href="MediaWiki/Config.html" class="link">MediaWiki::Config</a><br />
117
+ Class <a href="MediaWiki/Exception.html" class="link">MediaWiki::Exception</a><br />
112
118
  Class <a href="MediaWiki/Gateway.html" class="link">MediaWiki::Gateway</a><br />
119
+ Class <a href="MediaWiki/Unauthorized.html" class="link">MediaWiki::Unauthorized</a><br />
113
120
 
114
121
  </div>
115
122
 
@@ -0,0 +1,186 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: MediaWiki::APIError</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">MediaWiki::APIError</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/media_wiki/exception_rb.html">
59
+ lib/media_wiki/exception.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Exception.html">
69
+ MediaWiki::Exception
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ Wrapper for errors returned by <a href="../MediaWiki.html">MediaWiki</a>
86
+ API. Possible codes are defined in <a
87
+ href="http://www.mediawiki.org/wiki/API:Errors_and_warnings">www.mediawiki.org/wiki/API:Errors_and_warnings</a>.
88
+ </p>
89
+ <p>
90
+ Warnings also throw errors with code &#8216;warning&#8217;, unless <a
91
+ href="Gateway.html#M000008">MediaWiki::Gateway#new</a> was called with
92
+ :ignorewarnings.
93
+ </p>
94
+
95
+ </div>
96
+
97
+
98
+ </div>
99
+
100
+ <div id="method-list">
101
+ <h3 class="section-bar">Methods</h3>
102
+
103
+ <div class="name-list">
104
+ <a href="#M000042">new</a>&nbsp;&nbsp;
105
+ </div>
106
+ </div>
107
+
108
+ </div>
109
+
110
+
111
+ <!-- if includes -->
112
+
113
+ <div id="section">
114
+
115
+
116
+
117
+
118
+
119
+ <div id="attribute-list">
120
+ <h3 class="section-bar">Attributes</h3>
121
+
122
+ <div class="name-list">
123
+ <table>
124
+ <tr class="top-aligned-row context-row">
125
+ <td class="context-item-name">code</td>
126
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
127
+ <td class="context-item-desc"></td>
128
+ </tr>
129
+ <tr class="top-aligned-row context-row">
130
+ <td class="context-item-name">info</td>
131
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
132
+ <td class="context-item-desc"></td>
133
+ </tr>
134
+ <tr class="top-aligned-row context-row">
135
+ <td class="context-item-name">message</td>
136
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
137
+ <td class="context-item-desc"></td>
138
+ </tr>
139
+ </table>
140
+ </div>
141
+ </div>
142
+
143
+
144
+
145
+ <!-- if method_list -->
146
+ <div id="methods">
147
+ <h3 class="section-bar">Public Class methods</h3>
148
+
149
+ <div id="method-M000042" class="method-detail">
150
+ <a name="M000042"></a>
151
+
152
+ <div class="method-heading">
153
+ <a href="#M000042" class="method-signature">
154
+ <span class="method-name">new</span><span class="method-args">(code, info)</span>
155
+ </a>
156
+ </div>
157
+
158
+ <div class="method-description">
159
+ <p><a class="source-toggle" href="#"
160
+ onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
161
+ <div class="method-source-code" id="M000042-source">
162
+ <pre>
163
+ <span class="ruby-comment cmt"># File lib/media_wiki/exception.rb, line 12</span>
164
+ 12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">code</span>, <span class="ruby-identifier">info</span>)
165
+ 13: <span class="ruby-ivar">@code</span> = <span class="ruby-identifier">code</span>
166
+ 14: <span class="ruby-ivar">@info</span> = <span class="ruby-identifier">info</span>
167
+ 15: <span class="ruby-ivar">@message</span> = <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
168
+ 16: <span class="ruby-keyword kw">end</span>
169
+ </pre>
170
+ </div>
171
+ </div>
172
+ </div>
173
+
174
+
175
+ </div>
176
+
177
+
178
+ </div>
179
+
180
+
181
+ <div id="validator-badges">
182
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
183
+ </div>
184
+
185
+ </body>
186
+ </html>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000036">abort</a>&nbsp;&nbsp;
90
- <a href="#M000035">new</a>&nbsp;&nbsp;
89
+ <a href="#M000041">abort</a>&nbsp;&nbsp;
90
+ <a href="#M000040">new</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -157,19 +157,19 @@
157
157
  <div id="methods">
158
158
  <h3 class="section-bar">Public Class methods</h3>
159
159
 
160
- <div id="method-M000035" class="method-detail">
161
- <a name="M000035"></a>
160
+ <div id="method-M000040" class="method-detail">
161
+ <a name="M000040"></a>
162
162
 
163
163
  <div class="method-heading">
164
- <a href="#M000035" class="method-signature">
164
+ <a href="#M000040" 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('M000035-source');return false;">[Source]</a></p>
172
- <div class="method-source-code" id="M000035-source">
171
+ onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
172
+ <div class="method-source-code" id="M000040-source">
173
173
  <pre>
174
174
  <span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 10</span>
175
175
  10: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">type</span> = <span class="ruby-value str">&quot;read&quot;</span>)
@@ -230,19 +230,19 @@
230
230
 
231
231
  <h3 class="section-bar">Public Instance methods</h3>
232
232
 
233
- <div id="method-M000036" class="method-detail">
234
- <a name="M000036"></a>
233
+ <div id="method-M000041" class="method-detail">
234
+ <a name="M000041"></a>
235
235
 
236
236
  <div class="method-heading">
237
- <a href="#M000036" class="method-signature">
237
+ <a href="#M000041" 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('M000036-source');return false;">[Source]</a></p>
245
- <div class="method-source-code" id="M000036-source">
244
+ onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
245
+ <div class="method-source-code" id="M000041-source">
246
246
  <pre>
247
247
  <span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 62</span>
248
248
  62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort</span>(<span class="ruby-identifier">error</span>)
@@ -0,0 +1,122 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: MediaWiki::Exception</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">MediaWiki::Exception</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/media_wiki/exception_rb.html">
59
+ lib/media_wiki/exception.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Exception.html">
69
+ Exception
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ General exception occurred within <a
86
+ href="Gateway.html">MediaWiki::Gateway</a>, and parent class for <a
87
+ href="APIError.html">MediaWiki::APIError</a>, <a
88
+ href="Unauthorized.html">MediaWiki::Unauthorized</a>.
89
+ </p>
90
+
91
+ </div>
92
+
93
+
94
+ </div>
95
+
96
+
97
+ </div>
98
+
99
+
100
+ <!-- if includes -->
101
+
102
+ <div id="section">
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+ <!-- if method_list -->
112
+
113
+
114
+ </div>
115
+
116
+
117
+ <div id="validator-badges">
118
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
119
+ </div>
120
+
121
+ </body>
122
+ </html>
@@ -86,33 +86,38 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000018">backlinks</a>&nbsp;&nbsp;
90
- <a href="#M000012">create</a>&nbsp;&nbsp;
91
- <a href="#M000015">delete</a>&nbsp;&nbsp;
92
- <a href="#M000023">download</a>&nbsp;&nbsp;
93
- <a href="#M000013">edit</a>&nbsp;&nbsp;
94
- <a href="#M000025">export</a>&nbsp;&nbsp;
95
- <a href="#M000027">extensions</a>&nbsp;&nbsp;
89
+ <a href="#M000019">backlinks</a>&nbsp;&nbsp;
90
+ <a href="#M000013">create</a>&nbsp;&nbsp;
91
+ <a href="#M000016">delete</a>&nbsp;&nbsp;
92
+ <a href="#M000024">download</a>&nbsp;&nbsp;
93
+ <a href="#M000014">edit</a>&nbsp;&nbsp;
94
+ <a href="#M000026">export</a>&nbsp;&nbsp;
95
+ <a href="#M000028">extensions</a>&nbsp;&nbsp;
96
96
  <a href="#M000010">get</a>&nbsp;&nbsp;
97
- <a href="#M000032">get_response</a>&nbsp;&nbsp;
98
- <a href="#M000029">get_token</a>&nbsp;&nbsp;
99
- <a href="#M000030">get_undelete_token</a>&nbsp;&nbsp;
100
- <a href="#M000022">image_info</a>&nbsp;&nbsp;
101
- <a href="#M000024">import</a>&nbsp;&nbsp;
102
- <a href="#M000017">list</a>&nbsp;&nbsp;
97
+ <a href="#M000037">get_response</a>&nbsp;&nbsp;
98
+ <a href="#M000032">get_token</a>&nbsp;&nbsp;
99
+ <a href="#M000033">get_undelete_token</a>&nbsp;&nbsp;
100
+ <a href="#M000034">get_userrights_token</a>&nbsp;&nbsp;
101
+ <a href="#M000023">image_info</a>&nbsp;&nbsp;
102
+ <a href="#M000025">import</a>&nbsp;&nbsp;
103
+ <a href="#M000018">list</a>&nbsp;&nbsp;
103
104
  <a href="#M000009">login</a>&nbsp;&nbsp;
104
- <a href="#M000031">make_api_request</a>&nbsp;&nbsp;
105
- <a href="#M000014">move</a>&nbsp;&nbsp;
106
- <a href="#M000026">namespaces_by_prefix</a>&nbsp;&nbsp;
105
+ <a href="#M000036">make_api_request</a>&nbsp;&nbsp;
106
+ <a href="#M000015">move</a>&nbsp;&nbsp;
107
+ <a href="#M000027">namespaces_by_prefix</a>&nbsp;&nbsp;
107
108
  <a href="#M000008">new</a>&nbsp;&nbsp;
108
- <a href="#M000021">redirect?</a>&nbsp;&nbsp;
109
- <a href="#M000011">render</a>&nbsp;&nbsp;
110
- <a href="#M000019">search</a>&nbsp;&nbsp;
111
- <a href="#M000028">semantic_query</a>&nbsp;&nbsp;
112
- <a href="#M000016">undelete</a>&nbsp;&nbsp;
113
- <a href="#M000020">upload</a>&nbsp;&nbsp;
114
- <a href="#M000033">valid_page?</a>&nbsp;&nbsp;
115
- <a href="#M000034">warning</a>&nbsp;&nbsp;
109
+ <a href="#M000022">redirect?</a>&nbsp;&nbsp;
110
+ <a href="#M000012">render</a>&nbsp;&nbsp;
111
+ <a href="#M000031">review</a>&nbsp;&nbsp;
112
+ <a href="#M000011">revision</a>&nbsp;&nbsp;
113
+ <a href="#M000020">search</a>&nbsp;&nbsp;
114
+ <a href="#M000029">semantic_query</a>&nbsp;&nbsp;
115
+ <a href="#M000030">set_groups</a>&nbsp;&nbsp;
116
+ <a href="#M000017">undelete</a>&nbsp;&nbsp;
117
+ <a href="#M000021">upload</a>&nbsp;&nbsp;
118
+ <a href="#M000035">userrights</a>&nbsp;&nbsp;
119
+ <a href="#M000038">valid_page?</a>&nbsp;&nbsp;
120
+ <a href="#M000039">warning</a>&nbsp;&nbsp;
116
121
  </div>
117
122
  </div>
118
123
 
@@ -137,6 +142,11 @@
137
142
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
138
143
  <td class="context-item-desc"></td>
139
144
  </tr>
145
+ <tr class="top-aligned-row context-row">
146
+ <td class="context-item-name">cookies</td>
147
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
148
+ <td class="context-item-desc"></td>
149
+ </tr>
140
150
  <tr class="top-aligned-row context-row">
141
151
  <td class="context-item-name">log</td>
142
152
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
@@ -180,12 +190,12 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>&quot;)
180
190
  Options:
181
191
  </p>
182
192
  <dl>
183
- <dt>:ignorewarnings</dt><dd>Log API warnings and invalid page titles, instead of aborting with an
184
- error.
193
+ <dt>:ignorewarnings</dt><dd>Log API warnings and invalid page titles, instead throwing <a
194
+ href="APIError.html">MediaWiki::APIError</a>
185
195
 
186
196
  </dd>
187
197
  <dt>:limit</dt><dd>Maximum number of results returned per <a
188
- href="Gateway.html#M000019">search</a> (see <a
198
+ href="Gateway.html#M000020">search</a> (see <a
189
199
  href="http://www.mediawiki.org/wiki/API:Query_-_Lists#Limits">www.mediawiki.org/wiki/API:Query_-_Lists#Limits</a>),
190
200
  defaults to the <a href="../MediaWiki.html">MediaWiki</a> default of 500.
191
201
 
@@ -213,22 +223,22 @@ returns 503 Service Unavailable, defaults to 10 seconds.
213
223
  onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
214
224
  <div class="method-source-code" id="M000008-source">
215
225
  <pre>
216
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 24</span>
217
- 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span>={})
218
- 25: <span class="ruby-identifier">default_options</span> = {
219
- 26: <span class="ruby-identifier">:limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">500</span>,
220
- 27: <span class="ruby-identifier">:loglevel</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Logger</span><span class="ruby-operator">::</span><span class="ruby-constant">WARN</span>,
221
- 28: <span class="ruby-identifier">:maxlag</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">5</span>,
222
- 29: <span class="ruby-identifier">:retry_count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>,
223
- 30: <span class="ruby-identifier">:retry_delay</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10</span>
224
- 31: }
225
- 32: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">default_options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
226
- 33: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
227
- 34: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDERR</span>)
228
- 35: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:loglevel</span>]
229
- 36: <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> }
230
- 37: <span class="ruby-ivar">@cookies</span> = {}
231
- 38: <span class="ruby-keyword kw">end</span>
226
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 25</span>
227
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span>={})
228
+ 26: <span class="ruby-identifier">default_options</span> = {
229
+ 27: <span class="ruby-identifier">:limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">500</span>,
230
+ 28: <span class="ruby-identifier">:loglevel</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Logger</span><span class="ruby-operator">::</span><span class="ruby-constant">WARN</span>,
231
+ 29: <span class="ruby-identifier">:maxlag</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">5</span>,
232
+ 30: <span class="ruby-identifier">:retry_count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>,
233
+ 31: <span class="ruby-identifier">:retry_delay</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10</span>
234
+ 32: }
235
+ 33: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">default_options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
236
+ 34: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
237
+ 35: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDERR</span>)
238
+ 36: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:loglevel</span>]
239
+ 37: <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> }
240
+ 38: <span class="ruby-ivar">@cookies</span> = {}
241
+ 39: <span class="ruby-keyword kw">end</span>
232
242
  </pre>
233
243
  </div>
234
244
  </div>
@@ -236,18 +246,18 @@ returns 503 Service Unavailable, defaults to 10 seconds.
236
246
 
237
247
  <h3 class="section-bar">Public Instance methods</h3>
238
248
 
239
- <div id="method-M000018" class="method-detail">
240
- <a name="M000018"></a>
249
+ <div id="method-M000019" class="method-detail">
250
+ <a name="M000019"></a>
241
251
 
242
252
  <div class="method-heading">
243
- <a href="#M000018" class="method-signature">
253
+ <a href="#M000019" class="method-signature">
244
254
  <span class="method-name">backlinks</span><span class="method-args">(title, filter = &quot;all&quot;)</span>
245
255
  </a>
246
256
  </div>
247
257
 
248
258
  <div class="method-description">
249
259
  <p>
250
- Get a <a href="Gateway.html#M000017">list</a> of pages that link to a
260
+ Get a <a href="Gateway.html#M000018">list</a> of pages that link to a
251
261
  target page
252
262
  </p>
253
263
  <dl>
@@ -263,36 +273,36 @@ target page
263
273
  Returns array of page titles (empty if no matches)
264
274
  </p>
265
275
  <p><a class="source-toggle" href="#"
266
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
267
- <div class="method-source-code" id="M000018-source">
276
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
277
+ <div class="method-source-code" id="M000019-source">
268
278
  <pre>
269
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 203</span>
270
- 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backlinks</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">filter</span> = <span class="ruby-value str">&quot;all&quot;</span>)
271
- 204: <span class="ruby-identifier">titles</span> = []
272
- 205: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
273
- 206: <span class="ruby-keyword kw">begin</span>
274
- 207: <span class="ruby-identifier">form_data</span> =
275
- 208: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
276
- 209: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
277
- 210: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
278
- 211: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
279
- 212: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>] }
280
- 213: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'blcontinue'</span>] = <span class="ruby-identifier">blcontinue</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">blcontinue</span>
281
- 214: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">blcontinue</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/backlinks/@blcontinue'</span>)
282
- 215: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">&quot;//bl&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
283
- 216: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
284
- 217: <span class="ruby-identifier">titles</span>
285
- 218: <span class="ruby-keyword kw">end</span>
279
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 217</span>
280
+ 217: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backlinks</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">filter</span> = <span class="ruby-value str">&quot;all&quot;</span>)
281
+ 218: <span class="ruby-identifier">titles</span> = []
282
+ 219: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
283
+ 220: <span class="ruby-keyword kw">begin</span>
284
+ 221: <span class="ruby-identifier">form_data</span> =
285
+ 222: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
286
+ 223: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'backlinks'</span>,
287
+ 224: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>,
288
+ 225: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">filter</span>,
289
+ 226: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>] }
290
+ 227: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'blcontinue'</span>] = <span class="ruby-identifier">blcontinue</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">blcontinue</span>
291
+ 228: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">blcontinue</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/backlinks/@blcontinue'</span>)
292
+ 229: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">&quot;//bl&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
293
+ 230: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
294
+ 231: <span class="ruby-identifier">titles</span>
295
+ 232: <span class="ruby-keyword kw">end</span>
286
296
  </pre>
287
297
  </div>
288
298
  </div>
289
299
  </div>
290
300
 
291
- <div id="method-M000012" class="method-detail">
292
- <a name="M000012"></a>
301
+ <div id="method-M000013" class="method-detail">
302
+ <a name="M000013"></a>
293
303
 
294
304
  <div class="method-heading">
295
- <a href="#M000012" class="method-signature">
305
+ <a href="#M000013" class="method-signature">
296
306
  <span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
297
307
  </a>
298
308
  </div>
@@ -303,7 +313,7 @@ Create a <a href="Gateway.html#M000008">new</a> page, or overwrite an
303
313
  existing one
304
314
  </p>
305
315
  <dl>
306
- <dt>title</dt><dd>Page title to <a href="Gateway.html#M000012">create</a> or overwrite,
316
+ <dt>title</dt><dd>Page title to <a href="Gateway.html#M000013">create</a> or overwrite,
307
317
  string
308
318
 
309
319
  </dd>
@@ -324,32 +334,32 @@ Options:
324
334
  <li>[:summary] Edit summary for history, string
325
335
 
326
336
  </li>
327
- <li>[:token] Use this existing <a href="Gateway.html#M000013">edit</a> token
337
+ <li>[:token] Use this existing <a href="Gateway.html#M000014">edit</a> token
328
338
  instead requesting a <a href="Gateway.html#M000008">new</a> one (useful for
329
339
  bulk loads)
330
340
 
331
341
  </li>
332
342
  </ul>
333
343
  <p><a class="source-toggle" href="#"
334
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
335
- <div class="method-source-code" id="M000012-source">
344
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
345
+ <div class="method-source-code" id="M000013-source">
336
346
  <pre>
337
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 116</span>
338
- 116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
339
- 117: <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>)}
340
- 118: <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>]
341
- 119: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
342
- 120: <span class="ruby-keyword kw">end</span>
347
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 130</span>
348
+ 130: <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>={})
349
+ 131: <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>)}
350
+ 132: <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>]
351
+ 133: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
352
+ 134: <span class="ruby-keyword kw">end</span>
343
353
  </pre>
344
354
  </div>
345
355
  </div>
346
356
  </div>
347
357
 
348
- <div id="method-M000015" class="method-detail">
349
- <a name="M000015"></a>
358
+ <div id="method-M000016" class="method-detail">
359
+ <a name="M000016"></a>
350
360
 
351
361
  <div class="method-heading">
352
- <a href="#M000015" class="method-signature">
362
+ <a href="#M000016" class="method-signature">
353
363
  <span class="method-name">delete</span><span class="method-args">(title)</span>
354
364
  </a>
355
365
  </div>
@@ -360,29 +370,29 @@ Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
360
370
  support deleting multiple pages at a time.)
361
371
  </p>
362
372
  <dl>
363
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000015">delete</a>
373
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000016">delete</a>
364
374
 
365
375
  </dd>
366
376
  </dl>
367
377
  <p><a class="source-toggle" href="#"
368
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
369
- <div class="method-source-code" id="M000015-source">
378
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
379
+ <div class="method-source-code" id="M000016-source">
370
380
  <pre>
371
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 153</span>
372
- 153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
373
- 154: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'delete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'delete'</span>, <span class="ruby-identifier">title</span>)}
374
- 155: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
375
- 156: <span class="ruby-keyword kw">end</span>
381
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 167</span>
382
+ 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
383
+ 168: <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>)}
384
+ 169: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
385
+ 170: <span class="ruby-keyword kw">end</span>
376
386
  </pre>
377
387
  </div>
378
388
  </div>
379
389
  </div>
380
390
 
381
- <div id="method-M000023" class="method-detail">
382
- <a name="M000023"></a>
391
+ <div id="method-M000024" class="method-detail">
392
+ <a name="M000024"></a>
383
393
 
384
394
  <div class="method-heading">
385
- <a href="#M000023" class="method-signature">
395
+ <a href="#M000024" class="method-signature">
386
396
  <span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
387
397
  </a>
388
398
  </div>
@@ -390,36 +400,36 @@ support deleting multiple pages at a time.)
390
400
  <div class="method-description">
391
401
  <p>
392
402
  Download <em>file_name</em>. Returns file contents. All options are passed
393
- to <a href="Gateway.html#M000022">image_info</a> however
403
+ to <a href="Gateway.html#M000023">image_info</a> however
394
404
  options[&#8216;iiprop&#8217;] is forced to url. You can still set other
395
405
  options to control what file you want to <a
396
- href="Gateway.html#M000023">download</a>.
406
+ href="Gateway.html#M000024">download</a>.
397
407
  </p>
398
408
  <p><a class="source-toggle" href="#"
399
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
400
- <div class="method-source-code" id="M000023-source">
409
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
410
+ <div class="method-source-code" id="M000024-source">
401
411
  <pre>
402
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 388</span>
403
- 388: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">download</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>={})
404
- 389: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
405
- 390:
406
- 391: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>)
407
- 392: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
408
- 393: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'url'</span>]
409
- 394: <span class="ruby-keyword kw">else</span>
410
- 395: <span class="ruby-keyword kw">nil</span>
411
- 396: <span class="ruby-keyword kw">end</span>
412
- 397: <span class="ruby-keyword kw">end</span>
412
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 402</span>
413
+ 402: <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>={})
414
+ 403: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
415
+ 404:
416
+ 405: <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>)
417
+ 406: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
418
+ 407: <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>]
419
+ 408: <span class="ruby-keyword kw">else</span>
420
+ 409: <span class="ruby-keyword kw">nil</span>
421
+ 410: <span class="ruby-keyword kw">end</span>
422
+ 411: <span class="ruby-keyword kw">end</span>
413
423
  </pre>
414
424
  </div>
415
425
  </div>
416
426
  </div>
417
427
 
418
- <div id="method-M000013" class="method-detail">
419
- <a name="M000013"></a>
428
+ <div id="method-M000014" class="method-detail">
429
+ <a name="M000014"></a>
420
430
 
421
431
  <div class="method-heading">
422
- <a href="#M000013" class="method-signature">
432
+ <a href="#M000014" class="method-signature">
423
433
  <span class="method-name">edit</span><span class="method-args">(title, content, options={})</span>
424
434
  </a>
425
435
  </div>
@@ -429,28 +439,28 @@ href="Gateway.html#M000023">download</a>.
429
439
  Edit page
430
440
  </p>
431
441
  <p>
432
- Same options as <a href="Gateway.html#M000012">create</a>, but always
442
+ Same options as <a href="Gateway.html#M000013">create</a>, but always
433
443
  overwrites existing pages (and creates them if they don&#8216;t exist
434
444
  already).
435
445
  </p>
436
446
  <p><a class="source-toggle" href="#"
437
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
438
- <div class="method-source-code" id="M000013-source">
447
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
448
+ <div class="method-source-code" id="M000014-source">
439
449
  <pre>
440
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 125</span>
441
- 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
442
- 126: <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, {<span class="ruby-identifier">:overwrite</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>))
443
- 127: <span class="ruby-keyword kw">end</span>
450
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 139</span>
451
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
452
+ 140: <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, {<span class="ruby-identifier">:overwrite</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>))
453
+ 141: <span class="ruby-keyword kw">end</span>
444
454
  </pre>
445
455
  </div>
446
456
  </div>
447
457
  </div>
448
458
 
449
- <div id="method-M000025" class="method-detail">
450
- <a name="M000025"></a>
459
+ <div id="method-M000026" class="method-detail">
460
+ <a name="M000026"></a>
451
461
 
452
462
  <div class="method-heading">
453
- <a href="#M000025" class="method-signature">
463
+ <a href="#M000026" class="method-signature">
454
464
  <span class="method-name">export</span><span class="method-args">(page_titles)</span>
455
465
  </a>
456
466
  </div>
@@ -468,51 +478,51 @@ Exports a page or set of pages
468
478
  Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
469
479
  </p>
470
480
  <p><a class="source-toggle" href="#"
471
- onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
472
- <div class="method-source-code" id="M000025-source">
481
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
482
+ <div class="method-source-code" id="M000026-source">
473
483
  <pre>
474
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 419</span>
475
- 419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
476
- 420: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-identifier">page_titles</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>), <span class="ruby-value str">'export'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'exportnowrap'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>}
477
- 421: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
478
- 422: <span class="ruby-keyword kw">end</span>
484
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 433</span>
485
+ 433: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
486
+ 434: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'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>}
487
+ 435: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
488
+ 436: <span class="ruby-keyword kw">end</span>
479
489
  </pre>
480
490
  </div>
481
491
  </div>
482
492
  </div>
483
493
 
484
- <div id="method-M000027" class="method-detail">
485
- <a name="M000027"></a>
494
+ <div id="method-M000028" class="method-detail">
495
+ <a name="M000028"></a>
486
496
 
487
497
  <div class="method-heading">
488
- <a href="#M000027" class="method-signature">
498
+ <a href="#M000028" class="method-signature">
489
499
  <span class="method-name">extensions</span><span class="method-args">()</span>
490
500
  </a>
491
501
  </div>
492
502
 
493
503
  <div class="method-description">
494
504
  <p>
495
- Get a <a href="Gateway.html#M000017">list</a> of all installed (and
496
- registered) <a href="Gateway.html#M000027">extensions</a>
505
+ Get a <a href="Gateway.html#M000018">list</a> of all installed (and
506
+ registered) <a href="Gateway.html#M000028">extensions</a>
497
507
  </p>
498
508
  <p>
499
- Returns array of <a href="Gateway.html#M000027">extensions</a> (name =&gt;
509
+ Returns array of <a href="Gateway.html#M000028">extensions</a> (name =&gt;
500
510
  version)
501
511
  </p>
502
512
  <p><a class="source-toggle" href="#"
503
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
504
- <div class="method-source-code" id="M000027-source">
513
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
514
+ <div class="method-source-code" id="M000028-source">
505
515
  <pre>
506
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 440</span>
507
- 440: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
508
- 441: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'extensions'</span> }
509
- 442: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
510
- 443: <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">&quot;//ext&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">extensions</span>, <span class="ruby-identifier">extension</span><span class="ruby-operator">|</span>
511
- 444: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;name&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
512
- 445: <span class="ruby-identifier">extensions</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;version&quot;</span>]
513
- 446: <span class="ruby-identifier">extensions</span>
514
- 447: <span class="ruby-keyword kw">end</span>
515
- 448: <span class="ruby-keyword kw">end</span>
516
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 454</span>
517
+ 454: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
518
+ 455: <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> }
519
+ 456: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
520
+ 457: <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>
521
+ 458: <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>
522
+ 459: <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>]
523
+ 460: <span class="ruby-identifier">extensions</span>
524
+ 461: <span class="ruby-keyword kw">end</span>
525
+ 462: <span class="ruby-keyword kw">end</span>
516
526
  </pre>
517
527
  </div>
518
528
  </div>
@@ -544,24 +554,24 @@ Returns content of page as string, nil if the page does not exist.
544
554
  onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
545
555
  <div class="method-source-code" id="M000010-source">
546
556
  <pre>
547
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 61</span>
548
- 61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
549
- 62: <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>}
550
- 63: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
551
- 64: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
552
- 65: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;revisions/rev&quot;</span>].<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
553
- 66: <span class="ruby-keyword kw">end</span>
554
- 67: <span class="ruby-keyword kw">end</span>
557
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 62</span>
558
+ 62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
559
+ 63: <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>}
560
+ 64: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
561
+ 65: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
562
+ 66: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;revisions/rev&quot;</span>].<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
563
+ 67: <span class="ruby-keyword kw">end</span>
564
+ 68: <span class="ruby-keyword kw">end</span>
555
565
  </pre>
556
566
  </div>
557
567
  </div>
558
568
  </div>
559
569
 
560
- <div id="method-M000022" class="method-detail">
561
- <a name="M000022"></a>
570
+ <div id="method-M000023" class="method-detail">
571
+ <a name="M000023"></a>
562
572
 
563
573
  <div class="method-heading">
564
- <a href="#M000022" class="method-signature">
574
+ <a href="#M000023" class="method-signature">
565
575
  <span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
566
576
  </a>
567
577
  </div>
@@ -613,49 +623,49 @@ Output:
613
623
  &quot;user&quot; =&gt; &quot;Valdas&quot;
614
624
  </pre>
615
625
  <p><a class="source-toggle" href="#"
616
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
617
- <div class="method-source-code" id="M000022-source">
626
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
627
+ <div class="method-source-code" id="M000023-source">
618
628
  <pre>
619
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 355</span>
620
- 355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name_or_page_id</span>, <span class="ruby-identifier">options</span>={})
621
- 356: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>) \
622
- 357: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:join</span>)
623
- 358: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
624
- 359: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
625
- 360: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
626
- 361: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
627
- 362: )
628
- 363:
629
- 364: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
630
- 365: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
631
- 366: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
632
- 367: <span class="ruby-keyword kw">else</span>
633
- 368: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'titles'</span>] = <span class="ruby-node">&quot;File:#{file_name_or_page_id}&quot;</span>
634
- 369: <span class="ruby-keyword kw">end</span>
635
- 370:
636
- 371: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
637
- 372: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
638
- 373: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
639
- 374: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/redirects/r&quot;</span>]
640
- 375: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
641
- 376: <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;pageid&quot;</span>].<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">options</span>)
642
- 377: <span class="ruby-keyword kw">else</span>
643
- 378: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;imageinfo/ii&quot;</span>].<span class="ruby-identifier">attributes</span>
644
- 379: <span class="ruby-keyword kw">end</span>
645
- 380: <span class="ruby-keyword kw">else</span>
646
- 381: <span class="ruby-keyword kw">nil</span>
647
- 382: <span class="ruby-keyword kw">end</span>
648
- 383: <span class="ruby-keyword kw">end</span>
629
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 369</span>
630
+ 369: <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>={})
631
+ 370: <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>) \
632
+ 371: <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>)
633
+ 372: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
634
+ 373: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
635
+ 374: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'imageinfo'</span>,
636
+ 375: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
637
+ 376: )
638
+ 377:
639
+ 378: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
640
+ 379: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
641
+ 380: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
642
+ 381: <span class="ruby-keyword kw">else</span>
643
+ 382: <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>
644
+ 383: <span class="ruby-keyword kw">end</span>
645
+ 384:
646
+ 385: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
647
+ 386: <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>]
648
+ 387: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
649
+ 388: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/redirects/r&quot;</span>]
650
+ 389: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
651
+ 390: <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>)
652
+ 391: <span class="ruby-keyword kw">else</span>
653
+ 392: <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>
654
+ 393: <span class="ruby-keyword kw">end</span>
655
+ 394: <span class="ruby-keyword kw">else</span>
656
+ 395: <span class="ruby-keyword kw">nil</span>
657
+ 396: <span class="ruby-keyword kw">end</span>
658
+ 397: <span class="ruby-keyword kw">end</span>
649
659
  </pre>
650
660
  </div>
651
661
  </div>
652
662
  </div>
653
663
 
654
- <div id="method-M000024" class="method-detail">
655
- <a name="M000024"></a>
664
+ <div id="method-M000025" class="method-detail">
665
+ <a name="M000025"></a>
656
666
 
657
667
  <div class="method-heading">
658
- <a href="#M000024" class="method-signature">
668
+ <a href="#M000025" class="method-signature">
659
669
  <span class="method-name">import</span><span class="method-args">(xmlfile)</span>
660
670
  </a>
661
671
  </div>
@@ -671,39 +681,39 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
671
681
  </dl>
672
682
  <p>
673
683
  Returns XML array &lt;api&gt;&lt;<a
674
- href="Gateway.html#M000024">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
684
+ href="Gateway.html#M000025">import</a>&gt;&lt;page/&gt;&lt;page/&gt;&#8230;
675
685
  &lt;page revisions=&quot;1&quot;&gt; (or more) means successfully imported
676
686
  &lt;page revisions=&quot;0&quot;&gt; means duplicate, not imported
677
687
  </p>
678
688
  <p><a class="source-toggle" href="#"
679
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
680
- <div class="method-source-code" id="M000024-source">
689
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
690
+ <div class="method-source-code" id="M000025-source">
681
691
  <pre>
682
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 406</span>
683
- 406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
684
- 407: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">&quot;action&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;import&quot;</span>,
685
- 408: <span class="ruby-value str">&quot;xml&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xmlfile</span>),
686
- 409: <span class="ruby-value str">&quot;token&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'import'</span>, <span class="ruby-value str">'Main Page'</span>), <span class="ruby-comment cmt"># NB: dummy page name</span>
687
- 410: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
688
- 411: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
689
- 412: <span class="ruby-keyword kw">end</span>
692
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 420</span>
693
+ 420: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
694
+ 421: <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>,
695
+ 422: <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>),
696
+ 423: <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>
697
+ 424: <span class="ruby-value str">&quot;format&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'xml'</span> }
698
+ 425: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
699
+ 426: <span class="ruby-keyword kw">end</span>
690
700
  </pre>
691
701
  </div>
692
702
  </div>
693
703
  </div>
694
704
 
695
- <div id="method-M000017" class="method-detail">
696
- <a name="M000017"></a>
705
+ <div id="method-M000018" class="method-detail">
706
+ <a name="M000018"></a>
697
707
 
698
708
  <div class="method-heading">
699
- <a href="#M000017" class="method-signature">
709
+ <a href="#M000018" class="method-signature">
700
710
  <span class="method-name">list</span><span class="method-args">(key)</span>
701
711
  </a>
702
712
  </div>
703
713
 
704
714
  <div class="method-description">
705
715
  <p>
706
- Get a <a href="Gateway.html#M000017">list</a> of matching page titles in a
716
+ Get a <a href="Gateway.html#M000018">list</a> of matching page titles in a
707
717
  namespace
708
718
  </p>
709
719
  <dl>
@@ -716,28 +726,28 @@ defaults to main (namespace 0) if none given.
716
726
  Returns array of page titles (empty if no matches)
717
727
  </p>
718
728
  <p><a class="source-toggle" href="#"
719
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
720
- <div class="method-source-code" id="M000017-source">
729
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
730
+ <div class="method-source-code" id="M000018-source">
721
731
  <pre>
722
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 178</span>
723
- 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
724
- 179: <span class="ruby-identifier">titles</span> = []
725
- 180: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
726
- 181: <span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;:&quot;</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">reverse</span>
727
- 182: <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">namespace</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
728
- 183: <span class="ruby-keyword kw">begin</span>
729
- 184: <span class="ruby-identifier">form_data</span> =
730
- 185: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
731
- 186: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
732
- 187: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
733
- 188: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
734
- 189: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>],
735
- 190: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
736
- 191: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/allpages/@apfrom'</span>)
737
- 192: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">&quot;//p&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
738
- 193: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
739
- 194: <span class="ruby-identifier">titles</span>
740
- 195: <span class="ruby-keyword kw">end</span>
732
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 192</span>
733
+ 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
734
+ 193: <span class="ruby-identifier">titles</span> = []
735
+ 194: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
736
+ 195: <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>
737
+ 196: <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>
738
+ 197: <span class="ruby-keyword kw">begin</span>
739
+ 198: <span class="ruby-identifier">form_data</span> =
740
+ 199: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
741
+ 200: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'allpages'</span>,
742
+ 201: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">apfrom</span>,
743
+ 202: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
744
+ 203: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>],
745
+ 204: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
746
+ 205: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/allpages/@apfrom'</span>)
747
+ 206: <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>] }
748
+ 207: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
749
+ 208: <span class="ruby-identifier">titles</span>
750
+ 209: <span class="ruby-keyword kw">end</span>
741
751
  </pre>
742
752
  </div>
743
753
  </div>
@@ -769,29 +779,30 @@ defaults to &#8216;local&#8217; if not given
769
779
  </dd>
770
780
  </dl>
771
781
  <p>
772
- Throws error if <a href="Gateway.html#M000009">login</a> fails
782
+ Throws <a href="Unauthorized.html">MediaWiki::Unauthorized</a> if <a
783
+ href="Gateway.html#M000009">login</a> fails
773
784
  </p>
774
785
  <p><a class="source-toggle" href="#"
775
786
  onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
776
787
  <div class="method-source-code" id="M000009-source">
777
788
  <pre>
778
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 49</span>
779
- 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">login</span>(<span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">domain</span> = <span class="ruby-value str">'local'</span>)
780
- 50: <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>}
781
- 51: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
782
- 52: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
783
- 53: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
784
- 54: <span class="ruby-keyword kw">end</span>
789
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 50</span>
790
+ 50: <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>)
791
+ 51: <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>}
792
+ 52: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
793
+ 53: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
794
+ 54: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
795
+ 55: <span class="ruby-keyword kw">end</span>
785
796
  </pre>
786
797
  </div>
787
798
  </div>
788
799
  </div>
789
800
 
790
- <div id="method-M000014" class="method-detail">
791
- <a name="M000014"></a>
801
+ <div id="method-M000015" class="method-detail">
802
+ <a name="M000015"></a>
792
803
 
793
804
  <div class="method-heading">
794
- <a href="#M000014" class="method-signature">
805
+ <a href="#M000015" class="method-signature">
795
806
  <span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
796
807
  </a>
797
808
  </div>
@@ -821,13 +832,13 @@ Options:
821
832
  <li>[:movetalk] Move associated talkpages
822
833
 
823
834
  </li>
824
- <li>[:noredirect] Do not <a href="Gateway.html#M000012">create</a> a redirect
835
+ <li>[:noredirect] Do not <a href="Gateway.html#M000013">create</a> a redirect
825
836
  page from old name. Requires the &#8216;suppressredirect&#8217; user right,
826
837
  otherwise MW will silently ignore the option and <a
827
- href="Gateway.html#M000012">create</a> the redirect anyway.
838
+ href="Gateway.html#M000013">create</a> the redirect anyway.
828
839
 
829
840
  </li>
830
- <li>[:reason] Reason for <a href="Gateway.html#M000014">move</a>
841
+ <li>[:reason] Reason for <a href="Gateway.html#M000015">move</a>
831
842
 
832
843
  </li>
833
844
  <li>[:watch] Add page and any redirect to watchlist
@@ -838,62 +849,62 @@ href="Gateway.html#M000012">create</a> the redirect anyway.
838
849
  </li>
839
850
  </ul>
840
851
  <p><a class="source-toggle" href="#"
841
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
842
- <div class="method-source-code" id="M000014-source">
852
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
853
+ <div class="method-source-code" id="M000015-source">
843
854
  <pre>
844
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 142</span>
845
- 142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move</span>(<span class="ruby-identifier">from</span>, <span class="ruby-identifier">to</span>, <span class="ruby-identifier">options</span>={})
846
- 143: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk noredirect reason watch unwatch)</span>
847
- 144: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unknown option '#{opt}'&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
848
- 145:
849
- 146: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'move'</span>, <span class="ruby-value str">'from'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">from</span>, <span class="ruby-value str">'to'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'move'</span>, <span class="ruby-identifier">from</span>)})
850
- 147: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
851
- 148: <span class="ruby-keyword kw">end</span>
855
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 156</span>
856
+ 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move</span>(<span class="ruby-identifier">from</span>, <span class="ruby-identifier">to</span>, <span class="ruby-identifier">options</span>={})
857
+ 157: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk noredirect reason watch unwatch)</span>
858
+ 158: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unknown option '#{opt}'&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
859
+ 159:
860
+ 160: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'move'</span>, <span class="ruby-value str">'from'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">from</span>, <span class="ruby-value str">'to'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'move'</span>, <span class="ruby-identifier">from</span>)})
861
+ 161: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
862
+ 162: <span class="ruby-keyword kw">end</span>
852
863
  </pre>
853
864
  </div>
854
865
  </div>
855
866
  </div>
856
867
 
857
- <div id="method-M000026" class="method-detail">
858
- <a name="M000026"></a>
868
+ <div id="method-M000027" class="method-detail">
869
+ <a name="M000027"></a>
859
870
 
860
871
  <div class="method-heading">
861
- <a href="#M000026" class="method-signature">
872
+ <a href="#M000027" class="method-signature">
862
873
  <span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
863
874
  </a>
864
875
  </div>
865
876
 
866
877
  <div class="method-description">
867
878
  <p>
868
- Get a <a href="Gateway.html#M000017">list</a> of all known namespaces
879
+ Get a <a href="Gateway.html#M000018">list</a> of all known namespaces
869
880
  </p>
870
881
  <p>
871
882
  Returns array of namespaces (name =&gt; id)
872
883
  </p>
873
884
  <p><a class="source-toggle" href="#"
874
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
875
- <div class="method-source-code" id="M000026-source">
885
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
886
+ <div class="method-source-code" id="M000027-source">
876
887
  <pre>
877
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 427</span>
878
- 427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
879
- 428: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'namespaces'</span> }
880
- 429: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
881
- 430: <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">&quot;//ns&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespaces</span>, <span class="ruby-identifier">namespace</span><span class="ruby-operator">|</span>
882
- 431: <span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;canonical&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>
883
- 432: <span class="ruby-identifier">namespaces</span>[<span class="ruby-identifier">prefix</span>] = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;id&quot;</span>].<span class="ruby-identifier">to_i</span>
884
- 433: <span class="ruby-identifier">namespaces</span>
885
- 434: <span class="ruby-keyword kw">end</span>
886
- 435: <span class="ruby-keyword kw">end</span>
888
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 441</span>
889
+ 441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
890
+ 442: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'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> }
891
+ 443: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
892
+ 444: <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>
893
+ 445: <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>
894
+ 446: <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>
895
+ 447: <span class="ruby-identifier">namespaces</span>
896
+ 448: <span class="ruby-keyword kw">end</span>
897
+ 449: <span class="ruby-keyword kw">end</span>
887
898
  </pre>
888
899
  </div>
889
900
  </div>
890
901
  </div>
891
902
 
892
- <div id="method-M000021" class="method-detail">
893
- <a name="M000021"></a>
903
+ <div id="method-M000022" class="method-detail">
904
+ <a name="M000022"></a>
894
905
 
895
906
  <div class="method-heading">
896
- <a href="#M000021" class="method-signature">
907
+ <a href="#M000022" class="method-signature">
897
908
  <span class="method-name">redirect?</span><span class="method-args">(page_title)</span>
898
909
  </a>
899
910
  </div>
@@ -912,25 +923,25 @@ Returns true if the page is a redirect, false if it is not or the page does
912
923
  not exist.
913
924
  </p>
914
925
  <p><a class="source-toggle" href="#"
915
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
916
- <div class="method-source-code" id="M000021-source">
926
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
927
+ <div class="method-source-code" id="M000022-source">
917
928
  <pre>
918
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 323</span>
919
- 323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect?</span>(<span class="ruby-identifier">page_title</span>)
920
- 324: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
921
- 325: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
922
- 326: <span class="ruby-operator">!</span><span class="ruby-operator">!</span>(<span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;redirect&quot;</span>])
923
- 327: <span class="ruby-keyword kw">end</span>
929
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 337</span>
930
+ 337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect?</span>(<span class="ruby-identifier">page_title</span>)
931
+ 338: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
932
+ 339: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
933
+ 340: <span class="ruby-operator">!</span><span class="ruby-operator">!</span>(<span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;redirect&quot;</span>])
934
+ 341: <span class="ruby-keyword kw">end</span>
924
935
  </pre>
925
936
  </div>
926
937
  </div>
927
938
  </div>
928
939
 
929
- <div id="method-M000011" class="method-detail">
930
- <a name="M000011"></a>
940
+ <div id="method-M000012" class="method-detail">
941
+ <a name="M000012"></a>
931
942
 
932
943
  <div class="method-heading">
933
- <a href="#M000011" class="method-signature">
944
+ <a href="#M000012" class="method-signature">
934
945
  <span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
935
946
  </a>
936
947
  </div>
@@ -955,7 +966,7 @@ Options:
955
966
  &#8217;/wiki/&#8217; is assumed to be the base of a relative link
956
967
 
957
968
  </li>
958
- <li>[:noeditsections] strips all <a href="Gateway.html#M000013">edit</a>-links
969
+ <li>[:noeditsections] strips all <a href="Gateway.html#M000014">edit</a>-links
959
970
  if set to <tt>true</tt>
960
971
 
961
972
  </li>
@@ -966,61 +977,145 @@ if set to <tt>true</tt>
966
977
  </ul>
967
978
  <p>
968
979
  Returns rendered page as string, or nil if the page does not exist
980
+ </p>
981
+ <p><a class="source-toggle" href="#"
982
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
983
+ <div class="method-source-code" id="M000012-source">
984
+ <pre>
985
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 94</span>
986
+ 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">page_title</span>, <span class="ruby-identifier">options</span> = {})
987
+ 95: <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>}
988
+ 96:
989
+ 97: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
990
+ 98: <span class="ruby-comment cmt"># Check options</span>
991
+ 99: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unknown option '#{opt}'&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
992
+ 100:
993
+ 101: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
994
+ 102: <span class="ruby-identifier">parsed</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;parse&quot;</span>]
995
+ 103: <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>
996
+ 104: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;text&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;!--(.|\s)*?--&gt;/</span>, <span class="ruby-value str">''</span>)
997
+ 105: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
998
+ 106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
999
+ 107: <span class="ruby-identifier">linkbase</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
1000
+ 108: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\shref=&quot;\/wiki\/([\w\(\)_\-\.%\d:,]*)&quot;/</span>, <span class="ruby-value str">' href=&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">linkbase</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/wiki/\1&quot;'</span>)
1001
+ 109: <span class="ruby-keyword kw">end</span>
1002
+ 110: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noeditsections&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noeditsections</span>]
1003
+ 111: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;span class=&quot;editsection&quot;&gt;\[.+\]&lt;\/span&gt;/</span>, <span class="ruby-value str">''</span>)
1004
+ 112: <span class="ruby-keyword kw">end</span>
1005
+ 113: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noimages&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noimages</span>]
1006
+ 114: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;img.*\/&gt;/</span>, <span class="ruby-value str">''</span>)
1007
+ 115: <span class="ruby-keyword kw">end</span>
1008
+ 116: <span class="ruby-keyword kw">end</span>
1009
+ 117: <span class="ruby-identifier">rendered</span>
1010
+ 118: <span class="ruby-keyword kw">end</span>
1011
+ </pre>
1012
+ </div>
1013
+ </div>
1014
+ </div>
1015
+
1016
+ <div id="method-M000031" class="method-detail">
1017
+ <a name="M000031"></a>
1018
+
1019
+ <div class="method-heading">
1020
+ <a href="#M000031" class="method-signature">
1021
+ <span class="method-name">review</span><span class="method-args">(title, flags, comment = &quot;Reviewed by MediaWiki::Gateway&quot;)</span>
1022
+ </a>
1023
+ </div>
1024
+
1025
+ <div class="method-description">
1026
+ <p>
1027
+ Review current <a href="Gateway.html#M000011">revision</a> of an article
1028
+ (requires FlaggedRevisions extension, see <a
1029
+ href="http://www.mediawiki.org/wiki/Extension:FlaggedRevs">www.mediawiki.org/wiki/Extension:FlaggedRevs</a>)
1030
+ </p>
1031
+ <dl>
1032
+ <dt>title</dt><dd>Title of article to <a href="Gateway.html#M000031">review</a>
1033
+
1034
+ </dd>
1035
+ <dt>flags</dt><dd>Hash of flags and values to set, eg. { &quot;accuracy&quot; =&gt;
1036
+ &quot;1&quot;, &quot;depth&quot; =&gt; &quot;2&quot; }
1037
+
1038
+ </dd>
1039
+ <dt>comment</dt><dd>Comment to add to <a href="Gateway.html#M000031">review</a> (optional)
1040
+
1041
+ </dd>
1042
+ </dl>
1043
+ <p><a class="source-toggle" href="#"
1044
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1045
+ <div class="method-source-code" id="M000031-source">
1046
+ <pre>
1047
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 492</span>
1048
+ 492: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">review</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">flags</span>, <span class="ruby-identifier">comment</span> = <span class="ruby-value str">&quot;Reviewed by MediaWiki::Gateway&quot;</span>)
1049
+ 493: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'missingtitle'</span>, <span class="ruby-node">&quot;Article #{title} not found&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">revid</span> = <span class="ruby-identifier">revision</span>(<span class="ruby-identifier">title</span>)
1050
+ 494: <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">'review'</span>, <span class="ruby-value str">'revid'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">revid</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>), <span class="ruby-value str">'comment'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">comment</span>}
1051
+ 495: <span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">merge!</span>( <span class="ruby-constant">Hash</span>[<span class="ruby-identifier">flags</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> [<span class="ruby-node">&quot;flag_#{k}&quot;</span>, <span class="ruby-identifier">v</span>]}] )
1052
+ 496: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1053
+ 497: <span class="ruby-identifier">res</span>
1054
+ 498: <span class="ruby-keyword kw">end</span>
1055
+ </pre>
1056
+ </div>
1057
+ </div>
1058
+ </div>
1059
+
1060
+ <div id="method-M000011" class="method-detail">
1061
+ <a name="M000011"></a>
1062
+
1063
+ <div class="method-heading">
1064
+ <a href="#M000011" class="method-signature">
1065
+ <span class="method-name">revision</span><span class="method-args">(page_title)</span>
1066
+ </a>
1067
+ </div>
1068
+
1069
+ <div class="method-description">
1070
+ <p>
1071
+ Fetch latest <a href="Gateway.html#M000011">revision</a> ID of a <a
1072
+ href="../MediaWiki.html">MediaWiki</a> page. Does not follow redirects.
1073
+ </p>
1074
+ <dl>
1075
+ <dt>page_title</dt><dd>Page title to fetch
1076
+
1077
+ </dd>
1078
+ </dl>
1079
+ <p>
1080
+ Returns <a href="Gateway.html#M000011">revision</a> ID as a string, nil if
1081
+ the page does not exist.
969
1082
  </p>
970
1083
  <p><a class="source-toggle" href="#"
971
1084
  onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
972
1085
  <div class="method-source-code" id="M000011-source">
973
1086
  <pre>
974
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 80</span>
975
- 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">page_title</span>, <span class="ruby-identifier">options</span> = {})
976
- 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">'parse'</span>, <span class="ruby-value str">'page'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
977
- 82:
978
- 83: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
979
- 84: <span class="ruby-comment cmt"># Check options</span>
980
- 85: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unknown option '#{opt}'&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
981
- 86:
982
- 87: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
983
- 88: <span class="ruby-identifier">parsed</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;parse&quot;</span>]
984
- 89: <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>
985
- 90: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;text&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;!--(.|\s)*?--&gt;/</span>, <span class="ruby-value str">''</span>)
986
- 91: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
987
- 92: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
988
- 93: <span class="ruby-identifier">linkbase</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;linkbase&quot;</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
989
- 94: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\shref=&quot;\/wiki\/([\w\(\)_\-\.%\d:,]*)&quot;/</span>, <span class="ruby-value str">' href=&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">linkbase</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/wiki/\1&quot;'</span>)
990
- 95: <span class="ruby-keyword kw">end</span>
991
- 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noeditsections&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noeditsections</span>]
992
- 97: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;span class=&quot;editsection&quot;&gt;\[.+\]&lt;\/span&gt;/</span>, <span class="ruby-value str">''</span>)
993
- 98: <span class="ruby-keyword kw">end</span>
994
- 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;noimages&quot;</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noimages</span>]
995
- 100: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&lt;img.*\/&gt;/</span>, <span class="ruby-value str">''</span>)
996
- 101: <span class="ruby-keyword kw">end</span>
997
- 102: <span class="ruby-keyword kw">end</span>
998
- 103: <span class="ruby-identifier">rendered</span>
999
- 104: <span class="ruby-keyword kw">end</span>
1087
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 75</span>
1088
+ 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">revision</span>(<span class="ruby-identifier">page_title</span>)
1089
+ 76: <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">'ids'</span>, <span class="ruby-value str">'rvlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_title</span>}
1090
+ 77: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>]
1091
+ 78: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
1092
+ 79: <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">attributes</span>[<span class="ruby-value str">&quot;revid&quot;</span>]
1093
+ 80: <span class="ruby-keyword kw">end</span>
1094
+ 81: <span class="ruby-keyword kw">end</span>
1000
1095
  </pre>
1001
1096
  </div>
1002
1097
  </div>
1003
1098
  </div>
1004
1099
 
1005
- <div id="method-M000019" class="method-detail">
1006
- <a name="M000019"></a>
1100
+ <div id="method-M000020" class="method-detail">
1101
+ <a name="M000020"></a>
1007
1102
 
1008
1103
  <div class="method-heading">
1009
- <a href="#M000019" class="method-signature">
1104
+ <a href="#M000020" class="method-signature">
1010
1105
  <span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=@options[:limit])</span>
1011
1106
  </a>
1012
1107
  </div>
1013
1108
 
1014
1109
  <div class="method-description">
1015
1110
  <p>
1016
- Get a <a href="Gateway.html#M000017">list</a> of pages with matching
1111
+ Get a <a href="Gateway.html#M000018">list</a> of pages with matching
1017
1112
  content in given namespaces
1018
1113
  </p>
1019
1114
  <dl>
1020
1115
  <dt>key</dt><dd>Search key
1021
1116
 
1022
1117
  </dd>
1023
- <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000019">search</a>
1118
+ <dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000020">search</a>
1024
1119
  (defaults to main only)
1025
1120
 
1026
1121
  </dd>
@@ -1033,42 +1128,42 @@ Foundation wikis allow only 50 for normal users)
1033
1128
  Returns array of page titles (empty if no matches)
1034
1129
  </p>
1035
1130
  <p><a class="source-toggle" href="#"
1036
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
1037
- <div class="method-source-code" id="M000019-source">
1131
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1132
+ <div class="method-source-code" id="M000020-source">
1038
1133
  <pre>
1039
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 227</span>
1040
- 227: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespaces</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">limit</span>=<span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>])
1041
- 228: <span class="ruby-identifier">titles</span> = []
1042
- 229: <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">nil</span>
1043
- 230: <span class="ruby-identifier">in_progress</span> = <span class="ruby-keyword kw">true</span>
1044
- 231:
1045
- 232: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>,
1046
- 233: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
1047
- 234: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
1048
- 235: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
1049
- 236: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>
1050
- 237: }
1051
- 238: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
1052
- 239: <span class="ruby-identifier">namespaces</span> = [ <span class="ruby-identifier">namespaces</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>
1053
- 240: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'srnamespace'</span>] = <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ns</span><span class="ruby-operator">|</span> <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">ns</span>] <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
1054
- 241: <span class="ruby-keyword kw">end</span>
1055
- 242: <span class="ruby-keyword kw">begin</span>
1056
- 243: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'sroffset'</span>] = <span class="ruby-identifier">offset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">offset</span>
1057
- 244: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/search/@sroffset'</span>)
1058
- 245: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">&quot;//p&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;title&quot;</span>] }
1059
- 246: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">offset</span>
1060
- 247: <span class="ruby-identifier">titles</span>
1061
- 248: <span class="ruby-keyword kw">end</span>
1134
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 241</span>
1135
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespaces</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">limit</span>=<span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>])
1136
+ 242: <span class="ruby-identifier">titles</span> = []
1137
+ 243: <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">nil</span>
1138
+ 244: <span class="ruby-identifier">in_progress</span> = <span class="ruby-keyword kw">true</span>
1139
+ 245:
1140
+ 246: <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>,
1141
+ 247: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'search'</span>,
1142
+ 248: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>,
1143
+ 249: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
1144
+ 250: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>
1145
+ 251: }
1146
+ 252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
1147
+ 253: <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>
1148
+ 254: <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>)
1149
+ 255: <span class="ruby-keyword kw">end</span>
1150
+ 256: <span class="ruby-keyword kw">begin</span>
1151
+ 257: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'sroffset'</span>] = <span class="ruby-identifier">offset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">offset</span>
1152
+ 258: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/search/@sroffset'</span>)
1153
+ 259: <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>] }
1154
+ 260: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">offset</span>
1155
+ 261: <span class="ruby-identifier">titles</span>
1156
+ 262: <span class="ruby-keyword kw">end</span>
1062
1157
  </pre>
1063
1158
  </div>
1064
1159
  </div>
1065
1160
  </div>
1066
1161
 
1067
- <div id="method-M000028" class="method-detail">
1068
- <a name="M000028"></a>
1162
+ <div id="method-M000029" class="method-detail">
1163
+ <a name="M000029"></a>
1069
1164
 
1070
1165
  <div class="method-heading">
1071
- <a href="#M000028" class="method-signature">
1166
+ <a href="#M000029" class="method-signature">
1072
1167
  <span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
1073
1168
  </a>
1074
1169
  </div>
@@ -1090,26 +1185,65 @@ Execute Semantic Mediawiki query
1090
1185
  Returns result as an HTML string
1091
1186
  </p>
1092
1187
  <p><a class="source-toggle" href="#"
1093
- onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1094
- <div class="method-source-code" id="M000028-source">
1188
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
1189
+ <div class="method-source-code" id="M000029-source">
1095
1190
  <pre>
1096
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 456</span>
1097
- 456: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">semantic_query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span> = [])
1098
- 457: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
1099
- 458: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'parse'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text'</span>, <span class="ruby-value str">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;{{#ask:#{query}|#{params.join('|')}}}&quot;</span> }
1100
- 459: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1101
- 460: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;parse/text&quot;</span>].<span class="ruby-identifier">text</span>
1102
- 461: <span class="ruby-keyword kw">end</span>
1191
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 470</span>
1192
+ 470: <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> = [])
1193
+ 471: <span class="ruby-identifier">params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;format=list&quot;</span>
1194
+ 472: <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> }
1195
+ 473: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1196
+ 474: <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>
1197
+ 475: <span class="ruby-keyword kw">end</span>
1103
1198
  </pre>
1104
1199
  </div>
1105
1200
  </div>
1106
1201
  </div>
1107
1202
 
1108
- <div id="method-M000016" class="method-detail">
1109
- <a name="M000016"></a>
1203
+ <div id="method-M000030" class="method-detail">
1204
+ <a name="M000030"></a>
1110
1205
 
1111
1206
  <div class="method-heading">
1112
- <a href="#M000016" class="method-signature">
1207
+ <a href="#M000030" class="method-signature">
1208
+ <span class="method-name">set_groups</span><span class="method-args">(user, groups_to_add = [], groups_to_remove = [], comment = '')</span>
1209
+ </a>
1210
+ </div>
1211
+
1212
+ <div class="method-description">
1213
+ <p>
1214
+ Set groups for a user
1215
+ </p>
1216
+ <dl>
1217
+ <dt>user</dt><dd>Username of user to modify
1218
+
1219
+ </dd>
1220
+ <dt>groups_to_add</dt><dd>Groups to add user to, as an array or a string if a single group (optional)
1221
+
1222
+ </dd>
1223
+ <dt>groups_to_remove</dt><dd>Groups to remove user from, as an array or a string if a single group
1224
+ (optional)
1225
+
1226
+ </dd>
1227
+ </dl>
1228
+ <p><a class="source-toggle" href="#"
1229
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1230
+ <div class="method-source-code" id="M000030-source">
1231
+ <pre>
1232
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 482</span>
1233
+ 482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_groups</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">groups_to_add</span> = [], <span class="ruby-identifier">groups_to_remove</span> = [], <span class="ruby-identifier">comment</span> = <span class="ruby-value str">''</span>)
1234
+ 483: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_userrights_token</span>(<span class="ruby-identifier">user</span>)
1235
+ 484: <span class="ruby-identifier">userrights</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">token</span>, <span class="ruby-identifier">groups_to_add</span>, <span class="ruby-identifier">groups_to_remove</span>, <span class="ruby-identifier">comment</span>)
1236
+ 485: <span class="ruby-keyword kw">end</span>
1237
+ </pre>
1238
+ </div>
1239
+ </div>
1240
+ </div>
1241
+
1242
+ <div id="method-M000017" class="method-detail">
1243
+ <a name="M000017"></a>
1244
+
1245
+ <div class="method-heading">
1246
+ <a href="#M000017" class="method-signature">
1113
1247
  <span class="method-name">undelete</span><span class="method-args">(title)</span>
1114
1248
  </a>
1115
1249
  </div>
@@ -1119,38 +1253,38 @@ Returns result as an HTML string
1119
1253
  Undelete all revisions of one page.
1120
1254
  </p>
1121
1255
  <dl>
1122
- <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000016">undelete</a>
1256
+ <dt>title</dt><dd>Title of page to <a href="Gateway.html#M000017">undelete</a>
1123
1257
 
1124
1258
  </dd>
1125
1259
  </dl>
1126
1260
  <p>
1127
1261
  Returns number of revisions undeleted, or zero if nothing to <a
1128
- href="Gateway.html#M000016">undelete</a>
1262
+ href="Gateway.html#M000017">undelete</a>
1129
1263
  </p>
1130
1264
  <p><a class="source-toggle" href="#"
1131
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
1132
- <div class="method-source-code" id="M000016-source">
1265
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1266
+ <div class="method-source-code" id="M000017-source">
1133
1267
  <pre>
1134
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 163</span>
1135
- 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
1136
- 164: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
1137
- 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
1138
- 166: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'undelete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">token</span> }
1139
- 167: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;undelete&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;revisions&quot;</span>].<span class="ruby-identifier">to_i</span>
1140
- 168: <span class="ruby-keyword kw">else</span>
1141
- 169: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1142
- 170: <span class="ruby-keyword kw">end</span>
1143
- 171: <span class="ruby-keyword kw">end</span>
1268
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 177</span>
1269
+ 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
1270
+ 178: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
1271
+ 179: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
1272
+ 180: <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> }
1273
+ 181: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;undelete&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;revisions&quot;</span>].<span class="ruby-identifier">to_i</span>
1274
+ 182: <span class="ruby-keyword kw">else</span>
1275
+ 183: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
1276
+ 184: <span class="ruby-keyword kw">end</span>
1277
+ 185: <span class="ruby-keyword kw">end</span>
1144
1278
  </pre>
1145
1279
  </div>
1146
1280
  </div>
1147
1281
  </div>
1148
1282
 
1149
- <div id="method-M000020" class="method-detail">
1150
- <a name="M000020"></a>
1283
+ <div id="method-M000021" class="method-detail">
1284
+ <a name="M000021"></a>
1151
1285
 
1152
1286
  <div class="method-heading">
1153
- <a href="#M000020" class="method-signature">
1287
+ <a href="#M000021" class="method-signature">
1154
1288
  <span class="method-name">upload</span><span class="method-args">(path, options={})</span>
1155
1289
  </a>
1156
1290
  </div>
@@ -1176,7 +1310,7 @@ Requires Mediawiki 1.16+
1176
1310
  Arguments:
1177
1311
  </p>
1178
1312
  <ul>
1179
- <li>[path] Path to file to <a href="Gateway.html#M000020">upload</a>. Set to
1313
+ <li>[path] Path to file to <a href="Gateway.html#M000021">upload</a>. Set to
1180
1314
  nil if uploading from URL.
1181
1315
 
1182
1316
  </li>
@@ -1240,43 +1374,43 @@ Examples:
1240
1374
  mw.upload(nil, 'filename' =&gt; &quot;RemoteFile2.jpg&quot;, 'url' =&gt; 'http://remote.com/server/file.jpg')
1241
1375
  </pre>
1242
1376
  <p><a class="source-toggle" href="#"
1243
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1244
- <div class="method-source-code" id="M000020-source">
1377
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
1378
+ <div class="method-source-code" id="M000021-source">
1245
1379
  <pre>
1246
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 284</span>
1247
- 284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upload</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">options</span>={})
1248
- 285: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1249
- 286: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1250
- 287: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1251
- 288: <span class="ruby-keyword kw">end</span>
1252
- 289:
1253
- 290: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1254
- 291: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1255
- 292: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1256
- 293: <span class="ruby-keyword kw">end</span>
1257
- 294:
1258
- 295: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1259
- 296: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1260
- 297: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1261
- 298: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1262
- 299: <span class="ruby-keyword kw">end</span>
1263
- 300:
1264
- 301: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;Uploaded by MediaWiki::Gateway&quot;</span>
1265
- 302: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>
1266
- 303: <span class="ruby-identifier">full_name</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>]
1267
- 304: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">full_name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full_name</span>
1268
- 305:
1269
- 306: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1270
- 307: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1271
- 308: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'sessionkey'</span>]
1272
- 309:
1273
- 310: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1274
- 311: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1275
- 312: <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>])
1276
- 313: )
1380
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 298</span>
1381
+ 298: <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>={})
1382
+ 299: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
1383
+ 300: <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>]
1384
+ 301: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
1385
+ 302: <span class="ruby-keyword kw">end</span>
1386
+ 303:
1387
+ 304: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
1388
+ 305: <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>]
1389
+ 306: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
1390
+ 307: <span class="ruby-keyword kw">end</span>
1391
+ 308:
1392
+ 309: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
1393
+ 310: <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>]
1394
+ 311: <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>]
1395
+ 312: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
1396
+ 313: <span class="ruby-keyword kw">end</span>
1277
1397
  314:
1278
- 315: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1279
- 316: <span class="ruby-keyword kw">end</span>
1398
+ 315: <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>
1399
+ 316: <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>
1400
+ 317: <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>]
1401
+ 318: <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>
1402
+ 319:
1403
+ 320: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
1404
+ 321: <span class="ruby-value str">&quot;One of the 'file', 'url' or 'sessionkey' options must be specified!&quot;</span>
1405
+ 322: ) <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>]
1406
+ 323:
1407
+ 324: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
1408
+ 325: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'upload'</span>,
1409
+ 326: <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>])
1410
+ 327: )
1411
+ 328:
1412
+ 329: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1413
+ 330: <span class="ruby-keyword kw">end</span>
1280
1414
  </pre>
1281
1415
  </div>
1282
1416
  </div>
@@ -1284,117 +1418,156 @@ Examples:
1284
1418
 
1285
1419
  <h3 class="section-bar">Private Instance methods</h3>
1286
1420
 
1287
- <div id="method-M000032" class="method-detail">
1288
- <a name="M000032"></a>
1421
+ <div id="method-M000037" class="method-detail">
1422
+ <a name="M000037"></a>
1289
1423
 
1290
1424
  <div class="method-heading">
1291
- <a href="#M000032" class="method-signature">
1425
+ <a href="#M000037" class="method-signature">
1292
1426
  <span class="method-name">get_response</span><span class="method-args">(res)</span>
1293
1427
  </a>
1294
1428
  </div>
1295
1429
 
1296
1430
  <div class="method-description">
1297
1431
  <p>
1298
- Get API XML response If there are errors or warnings, raise exception
1299
- Otherwise return XML root
1432
+ Get API XML response If there are errors or warnings, raise <a
1433
+ href="APIError.html">APIError</a> Otherwise return XML root
1300
1434
  </p>
1301
1435
  <p><a class="source-toggle" href="#"
1302
- onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
1303
- <div class="method-source-code" id="M000032-source">
1436
+ onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
1437
+ <div class="method-source-code" id="M000037-source">
1304
1438
  <pre>
1305
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 525</span>
1306
- 525: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1307
- 526: <span class="ruby-keyword kw">begin</span>
1308
- 527: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">res</span>).<span class="ruby-identifier">root</span>
1309
- 528: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1310
- 529: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Response is not XML. Are you sure you are pointing to api.php?&quot;</span>
1311
- 530: <span class="ruby-keyword kw">end</span>
1312
- 531: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1313
- 532: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Response does not contain Mediawiki API XML: #{res}&quot;</span> <span class="ruby-keyword kw">unless</span> [ <span class="ruby-value str">&quot;api&quot;</span>, <span class="ruby-value str">&quot;mediawiki&quot;</span> ].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">name</span>
1314
- 533: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>]
1315
- 534: <span class="ruby-identifier">code</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;code&quot;</span>]
1316
- 535: <span class="ruby-identifier">info</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;error&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;info&quot;</span>]
1317
- 536: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error: code '#{code}', info '#{info}'&quot;</span>
1318
- 537: <span class="ruby-keyword kw">end</span>
1319
- 538: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;warnings&quot;</span>]
1320
- 539: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;API warning: #{doc.elements[&quot;warnings&quot;].children.map {|e| e.text}.join(&quot;, &quot;)}&quot;</span>)
1321
- 540: <span class="ruby-keyword kw">end</span>
1322
- 541: <span class="ruby-identifier">doc</span>
1323
- 542: <span class="ruby-keyword kw">end</span>
1439
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 598</span>
1440
+ 598: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
1441
+ 599: <span class="ruby-keyword kw">begin</span>
1442
+ 600: <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>
1443
+ 601: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1444
+ 602: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span> <span class="ruby-value str">&quot;Response is not XML. Are you sure you are pointing to api.php?&quot;</span>
1445
+ 603: <span class="ruby-keyword kw">end</span>
1446
+ 604: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RES: #{doc}&quot;</span>)
1447
+ 605: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">&quot;Response does not contain Mediawiki API XML: #{res}&quot;</span> <span class="ruby-keyword kw">unless</span> [ <span class="ruby-value str">&quot;api&quot;</span>, <span class="ruby-value str">&quot;mediawiki&quot;</span> ].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">name</span>
1448
+ 606: <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>]
1449
+ 607: <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>]
1450
+ 608: <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>]
1451
+ 609: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">code</span>, <span class="ruby-identifier">info</span>)
1452
+ 610: <span class="ruby-keyword kw">end</span>
1453
+ 611: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;warnings&quot;</span>]
1454
+ 612: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;API warning: #{doc.elements[&quot;warnings&quot;].children.map {|e| e.text}.join(&quot;, &quot;)}&quot;</span>)
1455
+ 613: <span class="ruby-keyword kw">end</span>
1456
+ 614: <span class="ruby-identifier">doc</span>
1457
+ 615: <span class="ruby-keyword kw">end</span>
1324
1458
  </pre>
1325
1459
  </div>
1326
1460
  </div>
1327
1461
  </div>
1328
1462
 
1329
- <div id="method-M000029" class="method-detail">
1330
- <a name="M000029"></a>
1463
+ <div id="method-M000032" class="method-detail">
1464
+ <a name="M000032"></a>
1331
1465
 
1332
1466
  <div class="method-heading">
1333
- <a href="#M000029" class="method-signature">
1467
+ <a href="#M000032" class="method-signature">
1334
1468
  <span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
1335
1469
  </a>
1336
1470
  </div>
1337
1471
 
1338
1472
  <div class="method-description">
1339
1473
  <p>
1340
- Fetch token (type &#8216;<a href="Gateway.html#M000015">delete</a>&#8217;,
1341
- &#8216;<a href="Gateway.html#M000013">edit</a>&#8217;, &#8216;<a
1342
- href="Gateway.html#M000024">import</a>&#8217;, &#8216;<a
1343
- href="Gateway.html#M000014">move</a>&#8217;)
1474
+ Fetch token (type &#8216;<a href="Gateway.html#M000016">delete</a>&#8217;,
1475
+ &#8216;<a href="Gateway.html#M000014">edit</a>&#8217;, &#8216;<a
1476
+ href="Gateway.html#M000025">import</a>&#8217;, &#8216;<a
1477
+ href="Gateway.html#M000015">move</a>&#8217;)
1344
1478
  </p>
1345
1479
  <p><a class="source-toggle" href="#"
1346
- onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
1347
- <div class="method-source-code" id="M000029-source">
1480
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
1481
+ <div class="method-source-code" id="M000032-source">
1348
1482
  <pre>
1349
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 466</span>
1350
- 466: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">page_titles</span>)
1351
- 467: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'intoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">type</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_titles</span>}
1352
- 468: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1353
- 469: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/pages/page&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">type</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;token&quot;</span>]
1354
- 470: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;User is not permitted to perform this operation: #{type}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1355
- 471: <span class="ruby-identifier">token</span>
1356
- 472: <span class="ruby-keyword kw">end</span>
1483
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 503</span>
1484
+ 503: <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>)
1485
+ 504: <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>}
1486
+ 505: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1487
+ 506: <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>]
1488
+ 507: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</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>
1489
+ 508: <span class="ruby-identifier">token</span>
1490
+ 509: <span class="ruby-keyword kw">end</span>
1357
1491
  </pre>
1358
1492
  </div>
1359
1493
  </div>
1360
1494
  </div>
1361
1495
 
1362
- <div id="method-M000030" class="method-detail">
1363
- <a name="M000030"></a>
1496
+ <div id="method-M000033" class="method-detail">
1497
+ <a name="M000033"></a>
1364
1498
 
1365
1499
  <div class="method-heading">
1366
- <a href="#M000030" class="method-signature">
1500
+ <a href="#M000033" class="method-signature">
1367
1501
  <span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
1368
1502
  </a>
1369
1503
  </div>
1370
1504
 
1371
1505
  <div class="method-description">
1372
1506
  <p><a class="source-toggle" href="#"
1373
- onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1374
- <div class="method-source-code" id="M000030-source">
1507
+ onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
1508
+ <div class="method-source-code" id="M000033-source">
1375
1509
  <pre>
1376
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 474</span>
1377
- 474: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1378
- 475: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'list'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'deletedrevs'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'drprop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'token'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">page_titles</span>}
1379
- 476: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1380
- 477: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/deletedrevs/page&quot;</span>]
1381
- 478: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;query/deletedrevs/page&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;token&quot;</span>]
1382
- 479: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;User is not permitted to perform this operation: #{type}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1383
- 480: <span class="ruby-identifier">token</span>
1384
- 481: <span class="ruby-keyword kw">else</span>
1385
- 482: <span class="ruby-keyword kw">nil</span>
1386
- 483: <span class="ruby-keyword kw">end</span>
1387
- 484: <span class="ruby-keyword kw">end</span>
1510
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 511</span>
1511
+ 511: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
1512
+ 512: <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>}
1513
+ 513: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1514
+ 514: <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>]
1515
+ 515: <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>]
1516
+ 516: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</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>
1517
+ 517: <span class="ruby-identifier">token</span>
1518
+ 518: <span class="ruby-keyword kw">else</span>
1519
+ 519: <span class="ruby-keyword kw">nil</span>
1520
+ 520: <span class="ruby-keyword kw">end</span>
1521
+ 521: <span class="ruby-keyword kw">end</span>
1388
1522
  </pre>
1389
1523
  </div>
1390
1524
  </div>
1391
1525
  </div>
1392
1526
 
1393
- <div id="method-M000031" class="method-detail">
1394
- <a name="M000031"></a>
1527
+ <div id="method-M000034" class="method-detail">
1528
+ <a name="M000034"></a>
1395
1529
 
1396
1530
  <div class="method-heading">
1397
- <a href="#M000031" class="method-signature">
1531
+ <a href="#M000034" class="method-signature">
1532
+ <span class="method-name">get_userrights_token</span><span class="method-args">(user)</span>
1533
+ </a>
1534
+ </div>
1535
+
1536
+ <div class="method-description">
1537
+ <p>
1538
+ User rights management (aka group assignment)
1539
+ </p>
1540
+ <p><a class="source-toggle" href="#"
1541
+ onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
1542
+ <div class="method-source-code" id="M000034-source">
1543
+ <pre>
1544
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 524</span>
1545
+ 524: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_userrights_token</span>(<span class="ruby-identifier">user</span>)
1546
+ 525: <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">'users'</span>, <span class="ruby-value str">'ustoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'userrights'</span>, <span class="ruby-value str">'ususers'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">user</span>}
1547
+ 526: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1548
+ 527: <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/users/user&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;userrightstoken&quot;</span>]
1549
+ 528:
1550
+ 529: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;RESPONSE: #{res.to_s}&quot;</span>)
1551
+ 530: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
1552
+ 531: <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/users/user&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
1553
+ 532: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'invaliduser'</span>, <span class="ruby-node">&quot;User '#{user}' was not found (get_userrights_token)&quot;</span>)
1554
+ 533: <span class="ruby-keyword kw">else</span>
1555
+ 534: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">&quot;User '#{@username}' is not permitted to perform this operation: get_userrights_token&quot;</span>
1556
+ 535: <span class="ruby-keyword kw">end</span>
1557
+ 536: <span class="ruby-keyword kw">end</span>
1558
+ 537:
1559
+ 538: <span class="ruby-identifier">token</span>
1560
+ 539: <span class="ruby-keyword kw">end</span>
1561
+ </pre>
1562
+ </div>
1563
+ </div>
1564
+ </div>
1565
+
1566
+ <div id="method-M000036" class="method-detail">
1567
+ <a name="M000036"></a>
1568
+
1569
+ <div class="method-heading">
1570
+ <a href="#M000036" class="method-signature">
1398
1571
  <span class="method-name">make_api_request</span><span class="method-args">(form_data, continue_xpath=nil, retry_count=1)</span>
1399
1572
  </a>
1400
1573
  </div>
@@ -1418,95 +1591,132 @@ Make generic request to API
1418
1591
  Returns XML document
1419
1592
  </p>
1420
1593
  <p><a class="source-toggle" href="#"
1421
- onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1422
- <div class="method-source-code" id="M000031-source">
1594
+ onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
1595
+ <div class="method-source-code" id="M000036-source">
1423
1596
  <pre>
1424
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 493</span>
1425
- 493: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">retry_count</span>=<span class="ruby-value">1</span>)
1426
- 494: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Hash</span>
1427
- 495: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
1428
- 496: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'maxlag'</span>] = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:maxlag</span>]
1429
- 497: <span class="ruby-keyword kw">end</span>
1430
- 498: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;REQ: #{form_data.inspect}, #{@cookies.inspect}&quot;</span>)
1431
- 499: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-ivar">@wiki_url</span>, <span class="ruby-identifier">form_data</span>, <span class="ruby-ivar">@headers</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-identifier">:cookies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@cookies</span>})) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
1432
- 500: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">503</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_count</span>]
1433
- 501: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;503 Service Unavailable: #{response.body}. Retry in #{@options[:retry_delay]} seconds.&quot;</span>)
1434
- 502: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
1435
- 503: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>, <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1436
- 504: <span class="ruby-keyword kw">end</span>
1437
- 505: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1438
- 506: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;API error, bad response: #{response}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">200</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">300</span>
1439
- 507: <span class="ruby-identifier">doc</span> = <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">dup</span>)
1440
- 508: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'action'</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'login'</span>)
1441
- 509: <span class="ruby-identifier">login_result</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;login&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'result'</span>]
1442
- 510: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1443
- 511: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1444
- 512: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;Success&quot;</span> <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt"># do nothing</span>
1445
- 513: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;NeedToken&quot;</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-value str">'lgtoken'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;login&quot;</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;token&quot;</span>]))
1446
- 514: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Login failed: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">login_result</span>
1447
- 515: <span class="ruby-keyword kw">end</span>
1448
- 516: <span class="ruby-keyword kw">end</span>
1449
- 517: <span class="ruby-identifier">continue</span> = (<span class="ruby-identifier">continue_xpath</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>]) <span class="ruby-operator">?</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue_xpath</span>).<span class="ruby-identifier">value</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1450
- 518: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue</span>]
1451
- 519: <span class="ruby-keyword kw">end</span>
1452
- 520: <span class="ruby-keyword kw">end</span>
1597
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 566</span>
1598
+ 566: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">retry_count</span>=<span class="ruby-value">1</span>)
1599
+ 567: <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>
1600
+ 568: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
1601
+ 569: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'maxlag'</span>] = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:maxlag</span>]
1602
+ 570: <span class="ruby-keyword kw">end</span>
1603
+ 571: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;REQ: #{form_data.inspect}, #{@cookies.inspect}&quot;</span>)
1604
+ 572: <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>
1605
+ 573: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">503</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_count</span>]
1606
+ 574: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;503 Service Unavailable: #{response.body}. Retry in #{@options[:retry_delay]} seconds.&quot;</span>)
1607
+ 575: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
1608
+ 576: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>, <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
1609
+ 577: <span class="ruby-keyword kw">end</span>
1610
+ 578: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
1611
+ 579: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">&quot;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>
1612
+ 580: <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>)
1613
+ 581: <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>)
1614
+ 582: <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>]
1615
+ 583: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
1616
+ 584: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
1617
+ 585: <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>
1618
+ 586: <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>]))
1619
+ 587: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</span> <span class="ruby-value str">&quot;Login failed: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">login_result</span>
1620
+ 588: <span class="ruby-keyword kw">end</span>
1621
+ 589: <span class="ruby-keyword kw">end</span>
1622
+ 590: <span class="ruby-identifier">continue</span> = (<span class="ruby-identifier">continue_xpath</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>]) <span class="ruby-operator">?</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue_xpath</span>).<span class="ruby-identifier">value</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1623
+ 591: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue</span>]
1624
+ 592: <span class="ruby-keyword kw">end</span>
1625
+ 593: <span class="ruby-keyword kw">end</span>
1453
1626
  </pre>
1454
1627
  </div>
1455
1628
  </div>
1456
1629
  </div>
1457
1630
 
1458
- <div id="method-M000033" class="method-detail">
1459
- <a name="M000033"></a>
1631
+ <div id="method-M000035" class="method-detail">
1632
+ <a name="M000035"></a>
1460
1633
 
1461
1634
  <div class="method-heading">
1462
- <a href="#M000033" class="method-signature">
1635
+ <a href="#M000035" class="method-signature">
1636
+ <span class="method-name">userrights</span><span class="method-args">(user, token, groups_to_add, groups_to_remove, reason)</span>
1637
+ </a>
1638
+ </div>
1639
+
1640
+ <div class="method-description">
1641
+ <p><a class="source-toggle" href="#"
1642
+ onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
1643
+ <div class="method-source-code" id="M000035-source">
1644
+ <pre>
1645
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 541</span>
1646
+ 541: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userrights</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">token</span>, <span class="ruby-identifier">groups_to_add</span>, <span class="ruby-identifier">groups_to_remove</span>, <span class="ruby-identifier">reason</span>)
1647
+ 542: <span class="ruby-comment cmt"># groups_to_add and groups_to_remove can be a string or an array. Turn them into MediaWiki's pipe-delimited list format.</span>
1648
+ 543: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">groups_to_add</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
1649
+ 544: <span class="ruby-identifier">groups_to_add</span> = <span class="ruby-identifier">groups_to_add</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
1650
+ 545: <span class="ruby-keyword kw">end</span>
1651
+ 546: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">groups_to_remove</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
1652
+ 547: <span class="ruby-identifier">groups_to_remove</span> = <span class="ruby-identifier">groups_to_remove</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
1653
+ 548: <span class="ruby-keyword kw">end</span>
1654
+ 549:
1655
+ 550: <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">'userrights'</span>, <span class="ruby-value str">'user'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">user</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">token</span>,
1656
+ 551: <span class="ruby-value str">'add'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">groups_to_add</span>,
1657
+ 552: <span class="ruby-value str">'remove'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">groups_to_remove</span>,
1658
+ 553: <span class="ruby-value str">'reason'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">reason</span>
1659
+ 554: }
1660
+ 555: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
1661
+ 556: <span class="ruby-identifier">res</span>
1662
+ 557: <span class="ruby-keyword kw">end</span>
1663
+ </pre>
1664
+ </div>
1665
+ </div>
1666
+ </div>
1667
+
1668
+ <div id="method-M000038" class="method-detail">
1669
+ <a name="M000038"></a>
1670
+
1671
+ <div class="method-heading">
1672
+ <a href="#M000038" class="method-signature">
1463
1673
  <span class="method-name">valid_page?</span><span class="method-args">(page)</span>
1464
1674
  </a>
1465
1675
  </div>
1466
1676
 
1467
1677
  <div class="method-description">
1468
1678
  <p><a class="source-toggle" href="#"
1469
- onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
1470
- <div class="method-source-code" id="M000033-source">
1679
+ onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
1680
+ <div class="method-source-code" id="M000038-source">
1471
1681
  <pre>
1472
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 544</span>
1473
- 544: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>)
1474
- 545: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">page</span>
1475
- 546: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
1476
- 547: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;invalid&quot;</span>]
1477
- 548: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;Invalid title '#{page.attributes[&quot;title&quot;]}'&quot;</span>)
1478
- 549: <span class="ruby-keyword kw">else</span>
1479
- 550: <span class="ruby-keyword kw">true</span>
1480
- 551: <span class="ruby-keyword kw">end</span>
1481
- 552: <span class="ruby-keyword kw">end</span>
1682
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 617</span>
1683
+ 617: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>)
1684
+ 618: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">page</span>
1685
+ 619: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;missing&quot;</span>]
1686
+ 620: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;invalid&quot;</span>]
1687
+ 621: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;Invalid title '#{page.attributes[&quot;title&quot;]}'&quot;</span>)
1688
+ 622: <span class="ruby-keyword kw">else</span>
1689
+ 623: <span class="ruby-keyword kw">true</span>
1690
+ 624: <span class="ruby-keyword kw">end</span>
1691
+ 625: <span class="ruby-keyword kw">end</span>
1482
1692
  </pre>
1483
1693
  </div>
1484
1694
  </div>
1485
1695
  </div>
1486
1696
 
1487
- <div id="method-M000034" class="method-detail">
1488
- <a name="M000034"></a>
1697
+ <div id="method-M000039" class="method-detail">
1698
+ <a name="M000039"></a>
1489
1699
 
1490
1700
  <div class="method-heading">
1491
- <a href="#M000034" class="method-signature">
1701
+ <a href="#M000039" class="method-signature">
1492
1702
  <span class="method-name">warning</span><span class="method-args">(msg)</span>
1493
1703
  </a>
1494
1704
  </div>
1495
1705
 
1496
1706
  <div class="method-description">
1497
1707
  <p><a class="source-toggle" href="#"
1498
- onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
1499
- <div class="method-source-code" id="M000034-source">
1708
+ onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
1709
+ <div class="method-source-code" id="M000039-source">
1500
1710
  <pre>
1501
- <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 554</span>
1502
- 554: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">msg</span>)
1503
- 555: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ignorewarnings</span>]
1504
- 556: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-identifier">msg</span>)
1505
- 557: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1506
- 558: <span class="ruby-keyword kw">else</span>
1507
- 559: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">msg</span>
1508
- 560: <span class="ruby-keyword kw">end</span>
1509
- 561: <span class="ruby-keyword kw">end</span>
1711
+ <span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 627</span>
1712
+ 627: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">msg</span>)
1713
+ 628: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ignorewarnings</span>]
1714
+ 629: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-identifier">msg</span>)
1715
+ 630: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1716
+ 631: <span class="ruby-keyword kw">else</span>
1717
+ 632: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'warning'</span>, <span class="ruby-identifier">msg</span>)
1718
+ 633: <span class="ruby-keyword kw">end</span>
1719
+ 634: <span class="ruby-keyword kw">end</span>
1510
1720
  </pre>
1511
1721
  </div>
1512
1722
  </div>