X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2af0840ff314f9d1e0265a4a1b50fc6db4af9047..0e6d4f18dabf9ccf00567886d8e373dbef1f6966:/lib/potlatch.rb diff --git a/lib/potlatch.rb b/lib/potlatch.rb index 27ee0253b..165e37b0c 100644 --- a/lib/potlatch.rb +++ b/lib/potlatch.rb @@ -24,15 +24,13 @@ module Potlatch # Return eight-byte double-precision float def self.getdouble(s) - a = s.read(8).unpack("G") # G big-endian, E little-endian + a = s.read(8).unpack("G") # G big-endian, E little-endian a[0] end # Return numeric array def self.getarray(s) - getlong(s).times.collect do - getvalue(s) - end + Array.new(getlong(s)) { getvalue(s) } end # Return object/hash @@ -42,23 +40,22 @@ module Potlatch break if key == "" arr[key] = getvalue(s) end - s.getbyte # skip the 9 'end of object' value + s.getbyte # skip the 9 'end of object' value arr end # Parse and get value def self.getvalue(s) case s.getbyte - when 0 then return getdouble(s) # number - when 1 then return s.getbyte # boolean - when 2 then return getstring(s) # string - when 3 then return getobject(s) # object/hash - when 5 then return nil # null - when 6 then return nil # undefined - when 8 then s.read(4) # mixedArray - return getobject(s) # | - when 10 then return getarray(s) # array - else return nil # error + when 0 then getdouble(s) # number + when 1 then s.getbyte # boolean + when 2 then getstring(s) # string + when 3 then getobject(s) # object/hash + when 5 then nil # null + when 6 then nil # undefined + when 8 then s.read(4) # mixedArray + getobject(s) # | + when 10 then getarray(s) # array end end @@ -181,20 +178,20 @@ module Potlatch presetcategory = "" # StringIO.open(txt) do |file| File.open("#{Rails.root}/config/potlatch/presets.txt") do |file| - file.each_line do|line| + file.each_line do |line| t = line.chomp if t =~ %r{(\w+)/(\w+)} - presettype = $1 - presetcategory = $2 + presettype = Regexp.last_match(1) + presetcategory = Regexp.last_match(2) presetmenus[presettype].push(presetcategory) presetnames[presettype][presetcategory] = ["(no preset)"] elsif t =~ /^([\w\s]+):\s?(.+)$/ - pre = $1 - kv = $2 + pre = Regexp.last_match(1) + kv = Regexp.last_match(2) presetnames[presettype][presetcategory].push(pre) presets[pre] = {} - kv.split(",").each do|a| - presets[pre][$1] = $2 if a =~ /^(.+)=(.*)$/ + kv.split(",").each do |a| + presets[pre][Regexp.last_match(1)] = Regexp.last_match(2) if a =~ /^(.+)=(.*)$/ end end end @@ -208,10 +205,10 @@ module Potlatch file.each_line do |line| next unless line.chomp =~ /(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/ - tag = $1 - colours[tag] = $2.hex if $2 != "-" - casing[tag] = $3.hex if $3 != "-" - areas[tag] = $4.hex if $4 != "-" + tag = Regexp.last_match(1) + colours[tag] = Regexp.last_match(2).hex if Regexp.last_match(2) != "-" + casing[tag] = Regexp.last_match(3).hex if Regexp.last_match(3) != "-" + areas[tag] = Regexp.last_match(4).hex if Regexp.last_match(4) != "-" end end @@ -223,10 +220,10 @@ module Potlatch file.each_line do |line| next unless line.chomp =~ /(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/ - tag = $1 - relcolours[tag] = $2.hex if $2 != "-" - relalphas[tag] = $3.to_i if $3 != "-" - relwidths[tag] = $4.to_i if $4 != "-" + tag = Regexp.last_match(1) + relcolours[tag] = Regexp.last_match(2).hex if Regexp.last_match(2) != "-" + relalphas[tag] = Regexp.last_match(3).to_i if Regexp.last_match(3) != "-" + relwidths[tag] = Regexp.last_match(4).to_i if Regexp.last_match(4) != "-" end end @@ -245,17 +242,17 @@ module Potlatch # Read auto-complete autotags = { "point" => {}, "way" => {}, "POI" => {} } File.open("#{Rails.root}/config/potlatch/autocomplete.txt") do |file| - file.each_line do|line| + file.each_line do |line| next unless line.chomp =~ %r{^([\w:]+)/(\w+)\s+(.+)$} - tag = $1 - type = $2 - values = $3 - if values == "-" - autotags[type][tag] = [] - else - autotags[type][tag] = values.split(",").sort.reverse - end + tag = Regexp.last_match(1) + type = Regexp.last_match(2) + values = Regexp.last_match(3) + autotags[type][tag] = if values == "-" + [] + else + values.split(",").sort.reverse + end end end