lib/media_wiki/utils.rb in mediawiki-gateway-0.2.1 vs lib/media_wiki/utils.rb in mediawiki-gateway-0.2.2

- old
+ new

@@ -1,25 +1,46 @@ module MediaWiki - class << self - # TODO sync this automatically with Gem version - def version - "0.2.1" + # Extract path leading up to subpage. If title does not contain a subpage, returns nil. + # + # Examples: + # get_path_to_subpage("Namespace:Foo/Bar/Baz") -> "Namespace:Foo/Bar" + # get_path_to_subpage("Namespace:Foo") -> nil + # + # [title] Page name string in Wiki format + def get_path_to_subpage(title) + return nil unless title and title.include? '/' + parts = title.split(/\/([^\/]*)$/).first end + + # Extract subpage name. If there is no hierarchy above, return page name. + # + # Examples: + # get_subpage("Namespace:Foo/Bar/Baz") -> "Baz" + # get_subpage("Namespace:Foo") -> "Namespace:Foo" + # + # [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") + # [wiki] Page name string in URL + def uri_to_wiki(uri) + CGI.unescape(uri).tr('_', ' ') if uri + end # Convert a Wiki page name ("getting there & away") to URI-safe format ("getting_there_%26_away"), # taking care not to mangle slashes # [wiki] Page name string in Wiki format def wiki_to_uri(wiki) wiki.to_s.split('/').map {|chunk| CGI.escape(chunk.tr(' ', '_')) }.join('/') if wiki end - # Convert URL-ized page name ("getting_there_%26_away") into Wiki display format page name ("getting there & away") - # [wiki] Page name string in URL - def uri_to_wiki(uri) - CGI.unescape(uri).tr('_', ' ') if uri + # Return current version of MediaWiki::Gateway + def version + MediaWiki::VERSION end - end end