browse_helper: Correctly link to wiki pages whose keys or values contain spaces
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 17 Jun 2010 13:33:01 +0000 (13:33 +0000)
committerÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 17 Jun 2010 13:33:01 +0000 (13:33 +0000)
The update-wiki-pages script normalizes " " to "_" (since MediaWiki
does it by design), but I didn't normalize it back in the
browse_helper.

Consequently objects with tags like "source=Isle of Man Government
aerial imagery (2001)" were never linked to the wiki correctly.

app/helpers/browse_helper.rb

index 090d1e9c3a13cd7c275bef2dfa4b20ab2ab16e22..a41b39a3deac07a9c7165648b1946a885b1bae18 100644 (file)
@@ -56,9 +56,15 @@ private
   def wiki_link(type, lookup)
     locale = I18n.locale.to_s
 
-    if page = WIKI_PAGES[locale][type][lookup] rescue nil
+    # update-wiki-pages does s/ /_/g on keys before saving them, we
+    # have to replace spaces with underscore so we'll link
+    # e.g. `source=Isle of Man Government aerial imagery (2001)' to
+    # the correct page.
+    lookup_us = lookup.tr(" ", "_")
+
+    if page = WIKI_PAGES[locale][type][lookup_us] rescue nil
       url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
-    elsif page = WIKI_PAGES["en"][type][lookup] rescue nil
+    elsif page = WIKI_PAGES["en"][type][lookup_us] rescue nil
       url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
     end