mediawiki-gateway 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,5 +4,5 @@ require File.dirname(__FILE__) + '/media_wiki/utils'
4
4
  require File.dirname(__FILE__) + '/media_wiki/gateway'
5
5
 
6
6
  module MediaWiki
7
- VERSION = "0.4.1"
7
+ VERSION = "0.4.2"
8
8
  end
@@ -187,21 +187,22 @@ module MediaWiki
187
187
  # Get a list of matching page titles in a namespace
188
188
  #
189
189
  # [key] Search key, matched as a prefix (^key.*). May contain or equal a namespace, defaults to main (namespace 0) if none given.
190
+ # [options] Optional hash of additional options, eg. { 'apfilterredir' => 'nonredirects' }. See http://www.mediawiki.org/wiki/API:Allpages
190
191
  #
191
192
  # Returns array of page titles (empty if no matches)
192
- def list(key)
193
+ def list(key, options = {})
193
194
  titles = []
194
195
  apfrom = nil
195
196
  key, namespace = key.split(":", 2).reverse
196
197
  namespace = namespaces_by_prefix[namespace] || 0
197
198
  begin
198
- form_data =
199
+ form_data = options.merge(
199
200
  {'action' => 'query',
200
201
  'list' => 'allpages',
201
202
  'apfrom' => apfrom,
202
203
  'apprefix' => key,
203
204
  'aplimit' => @options[:limit],
204
- 'apnamespace' => namespace}
205
+ 'apnamespace' => namespace})
205
206
  res, apfrom = make_api_request(form_data, '//query-continue/allpages/@apfrom')
206
207
  titles += REXML::XPath.match(res, "//p").map { |x| x.attributes["title"] }
207
208
  end while apfrom
@@ -396,7 +397,7 @@ module MediaWiki
396
397
  end
397
398
  end
398
399
 
399
- # Download _file_name_. Returns file contents. All options are passed to
400
+ # Download _file_name_ (without "File:" or "Image:" prefix). Returns file contents. All options are passed to
400
401
  # #image_info however options['iiprop'] is forced to url. You can still
401
402
  # set other options to control what file you want to download.
402
403
  def download(file_name, options={})
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mediawiki-gateway}
8
- s.version = "0.4.1"
8
+ s.version = "0.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jani Patokallio"]
12
- s.date = %q{2011-05-18}
12
+ s.date = %q{2011-08-23}
13
13
  s.description = %q{}
14
14
  s.email = %q{jpatokal@iki.fi}
15
15
  s.extra_rdoc_files = [
@@ -19,40 +19,16 @@ Gem::Specification.new do |s|
19
19
  "README",
20
20
  "Rakefile",
21
21
  "config/hosts.yml",
22
- "doc/classes/MediaWiki.html",
23
- "doc/classes/MediaWiki/APIError.html",
24
- "doc/classes/MediaWiki/Config.html",
25
- "doc/classes/MediaWiki/Exception.html",
26
- "doc/classes/MediaWiki/Gateway.html",
27
- "doc/classes/MediaWiki/Unauthorized.html",
28
- "doc/created.rid",
29
- "doc/files/README.html",
30
- "doc/files/lib/media_wiki/config_rb.html",
31
- "doc/files/lib/media_wiki/exception_rb.html",
32
- "doc/files/lib/media_wiki/gateway_rb.html",
33
- "doc/files/lib/media_wiki/utils_rb.html",
34
- "doc/files/script/create_page_rb.html",
35
- "doc/files/script/delete_batch_rb.html",
36
- "doc/files/script/export_xml_rb.html",
37
- "doc/files/script/get_page_rb.html",
38
- "doc/files/script/import_xml_rb.html",
39
- "doc/files/script/run_fake_media_wiki_rb.html",
40
- "doc/files/script/search_content_rb.html",
41
- "doc/files/script/upload_commons_rb.html",
42
- "doc/files/script/upload_file_rb.html",
43
- "doc/fr_class_index.html",
44
- "doc/fr_file_index.html",
45
- "doc/fr_method_index.html",
46
- "doc/index.html",
47
- "doc/rdoc-style.css",
48
22
  "lib/media_wiki.rb",
49
23
  "lib/media_wiki/config.rb",
50
24
  "lib/media_wiki/exception.rb",
51
25
  "lib/media_wiki/gateway.rb",
52
26
  "lib/media_wiki/utils.rb",
53
27
  "mediawiki-gateway.gemspec",
28
+ "script/README",
54
29
  "script/create_page.rb",
55
30
  "script/delete_batch.rb",
31
+ "script/download_batch.rb",
56
32
  "script/export_xml.rb",
57
33
  "script/get_page.rb",
58
34
  "script/import_xml.rb",
@@ -0,0 +1,14 @@
1
+ Sample scripts using MediaWiki::Gateway. These expect to be run from the MediaWiki::Gateway root directory with ./config/hosts.yml accessible and configured with real usernames, passwords etc. Remove Logger::DEBUG from scripts for less verbose output.
2
+
3
+ Examples:
4
+
5
+ Check syntax for create page script
6
+
7
+ ruby script/create_page.rb
8
+
9
+ Pipe the content of "content.txt" into the page 'Sandbox:MediaWikiGatewayTest' on the English Wikipedia
10
+
11
+ ruby script/create_page.rb -h en-wp -a Sandbox:MediaWikiGatewayTest <content.txt
12
+ *or*
13
+ ruby script/create_page.rb --host en-wp --article Sandbox:MediaWikiGatewayTest <content.txt
14
+
@@ -0,0 +1,15 @@
1
+ require 'lib/media_wiki'
2
+
3
+ config = MediaWiki::Config.new ARGV
4
+
5
+ mw = MediaWiki::Gateway.new(config.url, { :loglevel => Logger::DEBUG } )
6
+ mw.login(config.user, config.pw)
7
+ ARGF.readlines.each do |image|
8
+ image.strip!
9
+ unless File.exist? image
10
+ File.open(image, 'w') do |file|
11
+ file.write(mw.download(image))
12
+ end
13
+ end
14
+ end
15
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki-gateway
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jani Patokallio
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-18 00:00:00 +10:00
18
+ date: 2011-08-23 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -102,40 +102,16 @@ files:
102
102
  - README
103
103
  - Rakefile
104
104
  - config/hosts.yml
105
- - doc/classes/MediaWiki.html
106
- - doc/classes/MediaWiki/APIError.html
107
- - doc/classes/MediaWiki/Config.html
108
- - doc/classes/MediaWiki/Exception.html
109
- - doc/classes/MediaWiki/Gateway.html
110
- - doc/classes/MediaWiki/Unauthorized.html
111
- - doc/created.rid
112
- - doc/files/README.html
113
- - doc/files/lib/media_wiki/config_rb.html
114
- - doc/files/lib/media_wiki/exception_rb.html
115
- - doc/files/lib/media_wiki/gateway_rb.html
116
- - doc/files/lib/media_wiki/utils_rb.html
117
- - doc/files/script/create_page_rb.html
118
- - doc/files/script/delete_batch_rb.html
119
- - doc/files/script/export_xml_rb.html
120
- - doc/files/script/get_page_rb.html
121
- - doc/files/script/import_xml_rb.html
122
- - doc/files/script/run_fake_media_wiki_rb.html
123
- - doc/files/script/search_content_rb.html
124
- - doc/files/script/upload_commons_rb.html
125
- - doc/files/script/upload_file_rb.html
126
- - doc/fr_class_index.html
127
- - doc/fr_file_index.html
128
- - doc/fr_method_index.html
129
- - doc/index.html
130
- - doc/rdoc-style.css
131
105
  - lib/media_wiki.rb
132
106
  - lib/media_wiki/config.rb
133
107
  - lib/media_wiki/exception.rb
134
108
  - lib/media_wiki/gateway.rb
135
109
  - lib/media_wiki/utils.rb
136
110
  - mediawiki-gateway.gemspec
111
+ - script/README
137
112
  - script/create_page.rb
138
113
  - script/delete_batch.rb
114
+ - script/download_batch.rb
139
115
  - script/export_xml.rb
140
116
  - script/get_page.rb
141
117
  - script/import_xml.rb
@@ -1,381 +0,0 @@
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>Module: MediaWiki</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>Module</strong></td>
53
- <td class="class-name-in-header">MediaWiki</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/media_wiki/config_rb.html">
59
- lib/media_wiki/config.rb
60
- </a>
61
- <br />
62
- <a href="../files/lib/media_wiki/exception_rb.html">
63
- lib/media_wiki/exception.rb
64
- </a>
65
- <br />
66
- <a href="../files/lib/media_wiki/utils_rb.html">
67
- lib/media_wiki/utils.rb
68
- </a>
69
- <br />
70
- <a href="../files/lib/media_wiki/gateway_rb.html">
71
- lib/media_wiki/gateway.rb
72
- </a>
73
- <br />
74
- </td>
75
- </tr>
76
-
77
- </table>
78
- </div>
79
- <!-- banner header -->
80
-
81
- <div id="bodyContent">
82
-
83
-
84
-
85
- <div id="contextContent">
86
-
87
-
88
-
89
- </div>
90
-
91
- <div id="method-list">
92
- <h3 class="section-bar">Methods</h3>
93
-
94
- <div class="name-list">
95
- <a href="#M000001">get_base_name</a>&nbsp;&nbsp;
96
- <a href="#M000002">get_path_to_subpage</a>&nbsp;&nbsp;
97
- <a href="#M000003">get_subpage</a>&nbsp;&nbsp;
98
- <a href="#M000007">upcase_first_char</a>&nbsp;&nbsp;
99
- <a href="#M000004">uri_to_wiki</a>&nbsp;&nbsp;
100
- <a href="#M000006">version</a>&nbsp;&nbsp;
101
- <a href="#M000005">wiki_to_uri</a>&nbsp;&nbsp;
102
- </div>
103
- </div>
104
-
105
- </div>
106
-
107
-
108
- <!-- if includes -->
109
-
110
- <div id="section">
111
-
112
- <div id="class-list">
113
- <h3 class="section-bar">Classes and Modules</h3>
114
-
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 />
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 />
120
-
121
- </div>
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
- <!-- if method_list -->
130
- <div id="methods">
131
- <h3 class="section-bar">Public Class methods</h3>
132
-
133
- <div id="method-M000001" class="method-detail">
134
- <a name="M000001"></a>
135
-
136
- <div class="method-heading">
137
- <a href="#M000001" class="method-signature">
138
- <span class="method-name">get_base_name</span><span class="method-args">(title)</span>
139
- </a>
140
- </div>
141
-
142
- <div class="method-description">
143
- <p>
144
- Extract base name. If there are no subpages, return page name.
145
- </p>
146
- <p>
147
- Examples: <a
148
- href="MediaWiki.html#M000001">get_base_name</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
149
- -&gt; &quot;Namespace:Foo&quot; <a
150
- href="MediaWiki.html#M000001">get_base_name</a>(&quot;Namespace:Foo&quot;)
151
- -&gt; &quot;Namespace:Foo&quot;
152
- </p>
153
- <dl>
154
- <dt>title</dt><dd>Page name string in Wiki format
155
-
156
- </dd>
157
- </dl>
158
- <p><a class="source-toggle" href="#"
159
- onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
160
- <div class="method-source-code" id="M000001-source">
161
- <pre>
162
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 11</span>
163
- 11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_base_name</span>(<span class="ruby-identifier">title</span>)
164
- 12: <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">first</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">title</span>
165
- 13: <span class="ruby-keyword kw">end</span>
166
- </pre>
167
- </div>
168
- </div>
169
- </div>
170
-
171
- <div id="method-M000002" class="method-detail">
172
- <a name="M000002"></a>
173
-
174
- <div class="method-heading">
175
- <a href="#M000002" class="method-signature">
176
- <span class="method-name">get_path_to_subpage</span><span class="method-args">(title)</span>
177
- </a>
178
- </div>
179
-
180
- <div class="method-description">
181
- <p>
182
- Extract path leading up to subpage. If title does not contain a subpage,
183
- returns nil.
184
- </p>
185
- <p>
186
- Examples: <a
187
- href="MediaWiki.html#M000002">get_path_to_subpage</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
188
- -&gt; &quot;Namespace:Foo/Bar&quot; <a
189
- href="MediaWiki.html#M000002">get_path_to_subpage</a>(&quot;Namespace:Foo&quot;)
190
- -&gt; nil
191
- </p>
192
- <dl>
193
- <dt>title</dt><dd>Page name string in Wiki format
194
-
195
- </dd>
196
- </dl>
197
- <p><a class="source-toggle" href="#"
198
- onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
199
- <div class="method-source-code" id="M000002-source">
200
- <pre>
201
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 22</span>
202
- 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_path_to_subpage</span>(<span class="ruby-identifier">title</span>)
203
- 23: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">title</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">title</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">'/'</span>
204
- 24: <span class="ruby-identifier">parts</span> = <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\/([^\/]*)$/</span>).<span class="ruby-identifier">first</span>
205
- 25: <span class="ruby-keyword kw">end</span>
206
- </pre>
207
- </div>
208
- </div>
209
- </div>
210
-
211
- <div id="method-M000003" class="method-detail">
212
- <a name="M000003"></a>
213
-
214
- <div class="method-heading">
215
- <a href="#M000003" class="method-signature">
216
- <span class="method-name">get_subpage</span><span class="method-args">(title)</span>
217
- </a>
218
- </div>
219
-
220
- <div class="method-description">
221
- <p>
222
- Extract subpage name. If there is no hierarchy above, return page name.
223
- </p>
224
- <p>
225
- Examples: <a
226
- href="MediaWiki.html#M000003">get_subpage</a>(&quot;Namespace:Foo/Bar/Baz&quot;)
227
- -&gt; &quot;Baz&quot; <a
228
- href="MediaWiki.html#M000003">get_subpage</a>(&quot;Namespace:Foo&quot;)
229
- -&gt; &quot;Namespace:Foo&quot;
230
- </p>
231
- <dl>
232
- <dt>title</dt><dd>Page name string in Wiki format
233
-
234
- </dd>
235
- </dl>
236
- <p><a class="source-toggle" href="#"
237
- onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
238
- <div class="method-source-code" id="M000003-source">
239
- <pre>
240
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 34</span>
241
- 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_subpage</span>(<span class="ruby-identifier">title</span>)
242
- 35: <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">title</span>
243
- 36: <span class="ruby-keyword kw">end</span>
244
- </pre>
245
- </div>
246
- </div>
247
- </div>
248
-
249
- <div id="method-M000004" class="method-detail">
250
- <a name="M000004"></a>
251
-
252
- <div class="method-heading">
253
- <a href="#M000004" class="method-signature">
254
- <span class="method-name">uri_to_wiki</span><span class="method-args">(uri)</span>
255
- </a>
256
- </div>
257
-
258
- <div class="method-description">
259
- <p>
260
- Convert URL-ized page name (&quot;getting_there_%26_away&quot;) into Wiki
261
- display format page name (&quot;Getting there &amp; away&quot;). Also
262
- capitalizes first letter, replaces underscores with spaces and strips out
263
- any illegal characters (#&lt;&gt;[]|{}, cf. <a
264
- href="http://meta.wikimedia.org/wiki/Help:Page_name#Restrictions">meta.wikimedia.org/wiki/Help:Page_name#Restrictions</a>).
265
- </p>
266
- <dl>
267
- <dt>wiki</dt><dd>Page name string in URL
268
-
269
- </dd>
270
- </dl>
271
- <p><a class="source-toggle" href="#"
272
- onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
273
- <div class="method-source-code" id="M000004-source">
274
- <pre>
275
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 42</span>
276
- 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uri_to_wiki</span>(<span class="ruby-identifier">uri</span>)
277
- 43: <span class="ruby-identifier">upcase_first_char</span>(<span class="ruby-constant">CGI</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'_'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'#&lt;&gt;[]|{}'</span>, <span class="ruby-value str">''</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>
278
- 44: <span class="ruby-keyword kw">end</span>
279
- </pre>
280
- </div>
281
- </div>
282
- </div>
283
-
284
- <div id="method-M000006" class="method-detail">
285
- <a name="M000006"></a>
286
-
287
- <div class="method-heading">
288
- <a href="#M000006" class="method-signature">
289
- <span class="method-name">version</span><span class="method-args">()</span>
290
- </a>
291
- </div>
292
-
293
- <div class="method-description">
294
- <p>
295
- Return current <a href="MediaWiki.html#M000006">version</a> of <a
296
- href="MediaWiki/Gateway.html">MediaWiki::Gateway</a>
297
- </p>
298
- <p><a class="source-toggle" href="#"
299
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
300
- <div class="method-source-code" id="M000006-source">
301
- <pre>
302
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 54</span>
303
- 54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
304
- 55: <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>
305
- 56: <span class="ruby-keyword kw">end</span>
306
- </pre>
307
- </div>
308
- </div>
309
- </div>
310
-
311
- <div id="method-M000005" class="method-detail">
312
- <a name="M000005"></a>
313
-
314
- <div class="method-heading">
315
- <a href="#M000005" class="method-signature">
316
- <span class="method-name">wiki_to_uri</span><span class="method-args">(wiki)</span>
317
- </a>
318
- </div>
319
-
320
- <div class="method-description">
321
- <p>
322
- Convert a Wiki page name (&quot;Getting there &amp; away&quot;) to URI-safe
323
- format (&quot;Getting_there_%26_away&quot;), taking care not to mangle
324
- slashes or colons
325
- </p>
326
- <dl>
327
- <dt>wiki</dt><dd>Page name string in Wiki format
328
-
329
- </dd>
330
- </dl>
331
- <p><a class="source-toggle" href="#"
332
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
333
- <div class="method-source-code" id="M000005-source">
334
- <pre>
335
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 49</span>
336
- 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
337
- 50: <span class="ruby-identifier">wiki</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">chunk</span><span class="ruby-operator">|</span> <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>)) }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'%3A'</span>, <span class="ruby-value str">':'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wiki</span>
338
- 51: <span class="ruby-keyword kw">end</span>
339
- </pre>
340
- </div>
341
- </div>
342
- </div>
343
-
344
- <h3 class="section-bar">Private Class methods</h3>
345
-
346
- <div id="method-M000007" class="method-detail">
347
- <a name="M000007"></a>
348
-
349
- <div class="method-heading">
350
- <a href="#M000007" class="method-signature">
351
- <span class="method-name">upcase_first_char</span><span class="method-args">(str)</span>
352
- </a>
353
- </div>
354
-
355
- <div class="method-description">
356
- <p><a class="source-toggle" href="#"
357
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
358
- <div class="method-source-code" id="M000007-source">
359
- <pre>
360
- <span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 60</span>
361
- 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upcase_first_char</span>(<span class="ruby-identifier">str</span>)
362
- 61: [ <span class="ruby-constant">ActiveSupport</span><span class="ruby-operator">::</span><span class="ruby-constant">Multibyte</span><span class="ruby-operator">::</span><span class="ruby-constant">Chars</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">str</span>.<span class="ruby-identifier">mb_chars</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span>,<span class="ruby-value">1</span>)).<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">mb_chars</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>) ].<span class="ruby-identifier">join</span>
363
- 62: <span class="ruby-keyword kw">end</span>
364
- </pre>
365
- </div>
366
- </div>
367
- </div>
368
-
369
-
370
- </div>
371
-
372
-
373
- </div>
374
-
375
-
376
- <div id="validator-badges">
377
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
378
- </div>
379
-
380
- </body>
381
- </html>