]> git.openstreetmap.org Git - rails.git/blobdiff - lib/potlatch.rb
Add a C implementation of QuadTile.iterate_tiles_for_area
[rails.git] / lib / potlatch.rb
index b2f8eb479cffe025b98518528cd135321ffc322a..29ab4535a1f399b8c5fe7fa1325adf9c635b1b11 100644 (file)
@@ -83,7 +83,7 @@ module Potlatch
       when 'Hash'
         a=3.chr
         n.each do |k,v|
-          a+=encodestring(k)+encodevalue(v)
+          a+=encodestring(k.to_s)+encodevalue(v)
         end
         a+0.chr+0.chr+9.chr
       when 'String'
@@ -92,6 +92,10 @@ module Potlatch
         0.chr+encodedouble(n)
       when 'NilClass'
         5.chr
+         when 'TrueClass'
+        0.chr+encodedouble(1)
+         when 'FalseClass'
+        0.chr+encodedouble(0)
       else
         RAILS_DEFAULT_LOGGER.error("Unexpected Ruby type for AMF conversion: "+n.class.to_s)
       end
@@ -143,7 +147,7 @@ module Potlatch
             presetcategory=$2
             presetmenus[presettype].push(presetcategory)
             presetnames[presettype][presetcategory]=["(no preset)"]
-          elsif (t=~/^(.+):\s?(.+)$/) then
+          elsif (t=~/^([\w\s]+):\s?(.+)$/) then
             pre=$1; kv=$2
             presetnames[presettype][presetcategory].push(pre)
             presets[pre]={}
@@ -168,12 +172,37 @@ module Potlatch
         }
       end
 
+      # Read relations colours/styling
+      relcolours={}; relalphas={}; relwidths={}
+      File.open("#{RAILS_ROOT}/config/potlatch/relation_colours.txt") do |file|
+        file.each_line {|line|
+          t=line.chomp
+          if (t=~/(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/) then
+            tag=$1
+            if ($2!='-') then relcolours[tag]=$2.hex end
+            if ($3!='-') then relalphas[tag]=$3.to_i end
+            if ($4!='-') then relwidths[tag]=$4.to_i end
+          end
+        }
+      end
+
+      # Read POI presets
+      icon_list=[]; icon_tags={};
+      File.open("#{RAILS_ROOT}/config/potlatch/icon_presets.txt") do |file|
+        file.each_line {|line|
+          (icon,tags)=line.chomp.split("\t")
+          icon_list.push(icon)
+          icon_tags[icon]=Hash[*tags.scan(/([^;=]+)=([^;=]+)/).flatten]
+        }
+      end
+      icon_list.reverse!
+      
       # Read auto-complete
       autotags={}; autotags['point']={}; autotags['way']={}; autotags['POI']={};
       File.open("#{RAILS_ROOT}/config/potlatch/autocomplete.txt") do |file|
         file.each_line {|line|
           t=line.chomp
-          if (t=~/^(\w+)\/(\w+)\s+(.+)$/) then
+          if (t=~/^([\w:]+)\/(\w+)\s+(.+)$/) then
             tag=$1; type=$2; values=$3
             if values=='-' then autotags[type][tag]=[]
             else autotags[type][tag]=values.split(',').sort.reverse end
@@ -181,7 +210,7 @@ module Potlatch
         }
       end
 
-      [presets,presetmenus,presetnames,colours,casing,areas,autotags]
+      [presets,presetmenus,presetnames,colours,casing,areas,autotags,relcolours,relalphas,relwidths,icon_list,{},icon_tags]
     end
   end