lib/media_wiki/utils.rb in mediawiki-gateway-0.3.4 vs lib/media_wiki/utils.rb in mediawiki-gateway-0.3.5
- old
+ new
@@ -33,27 +33,33 @@
# [title] Page name string in Wiki format
def get_subpage(title)
title.split('/').last if title
end
- # Convert URL-ized page name ("getting_there_%26_away") into Wiki display format page name ("getting there & away").
- # Also strips out any illegal characters (#<>[]|{}, cf. http://meta.wikimedia.org/wiki/Help:Page_name#Restrictions).
+ # Convert URL-ized page name ("getting_there_%26_away") into Wiki display format page name ("Getting there & away").
+ # Also capitalizes first letter, replaces underscores with spaces and strips out any illegal characters (#<>[]|{}, cf. http://meta.wikimedia.org/wiki/Help:Page_name#Restrictions).
#
# [wiki] Page name string in URL
def uri_to_wiki(uri)
- CGI.unescape(uri).tr('_', ' ').tr('#<>[]|{}', '') if uri
+ upcase_first_char(CGI.unescape(uri).tr('_', ' ').tr('#<>[]|{}', '')) if uri
end
- # Convert a Wiki page name ("getting there & away") to URI-safe format ("getting_there_%26_away"),
+ # Convert a Wiki page name ("Getting there & away") to URI-safe format ("Getting_there_%26_away"),
# taking care not to mangle slashes or colons
# [wiki] Page name string in Wiki format
def wiki_to_uri(wiki)
wiki.to_s.split('/').map {|chunk| CGI.escape(chunk.tr(' ', '_')) }.join('/').gsub('%3A', ':') if wiki
end
# Return current version of MediaWiki::Gateway
def version
MediaWiki::VERSION
+ end
+
+ private
+
+ def upcase_first_char(str)
+ [ ActiveSupport::Multibyte::Chars.new(str.mb_chars.slice(0,1)).upcase.to_s, str.mb_chars.slice(1..-1) ].join
end
end
end