diff options
author | Jochen Topf <jochen@topf.org> | 2010-10-19 20:34:29 +0200 |
---|---|---|
committer | Jochen Topf <jochen@topf.org> | 2010-10-19 20:34:29 +0200 |
commit | 5bf9f8996e5157f9b431bb44a2d04a2695eb143d (patch) | |
tree | 8b95ab96496cd188f83a71da3a1eff841f771191 /web/lib | |
parent | 081af65ffa742e56e3d637bc9bc6a0c7e01680b8 (diff) | |
download | taginfo-5bf9f8996e5157f9b431bb44a2d04a2695eb143d.tar taginfo-5bf9f8996e5157f9b431bb44a2d04a2695eb143d.tar.gz |
fixed XAPI links
Diffstat (limited to 'web/lib')
-rw-r--r-- | web/lib/utils.rb | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/web/lib/utils.rb b/web/lib/utils.rb index 254055b..415553b 100644 --- a/web/lib/utils.rb +++ b/web/lib/utils.rb @@ -53,16 +53,28 @@ def title @title.join(' | ') end -def xapi_url(element, predicate) +# Escape tag key or value for XAPI according to +# http://wiki.openstreetmap.org/wiki/XAPI#Escaping +def xapi_escape(text) + text.gsub(/([|\[\]*\/=()\\])/, '\\\\\1') +end + +def xapi_url(element, key, value=nil) + predicate = xapi_escape(key) + '=' + if value.nil? + predicate += '*' + else + predicate += xapi_escape(value) + end "http://www.informationfreeway.org/api/0.6/#{ element }[#{ Rack::Utils::escape(predicate) }]" end -def xapi_link(element, predicate) - "<a id='xapi' href='#{ xapi_url(element, predicate) }'>XAPI</a>" +def xapi_link(element, key, value=nil) + "<a id='xapi' href='#{ xapi_url(element, key, value) }'>XAPI</a>" end -def josm_link(element, predicate) - "<a id='josm' href='http://localhost:8111/import?url=#{ xapi_url(element, predicate) }'>JOSM</a>" +def josm_link(element, key, value=nil) + "<a id='josm' href='http://localhost:8111/import?url=#{ xapi_url(element, key, value) }'>JOSM</a>" end def tagcloud_size(tag) |