mediawiki-gateway 0.3.8 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>