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'
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
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]={}
}
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_names={}; icon_tags={};
+ File.open("#{RAILS_ROOT}/config/potlatch/icon_presets.txt") do |file|
+ file.each_line {|line|
+ (icon,name,tags)=line.chomp.split("\t")
+ icon_list.push(icon)
+ icon_names[icon]=name
+ 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
}
end
- [presets,presetmenus,presetnames,colours,casing,areas,autotags]
+ [presets,presetmenus,presetnames,colours,casing,areas,autotags,relcolours,relalphas,relwidths,icon_list,icon_names,icon_tags]
end
end