X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/ab3df6fc56a2a16c6af65ac429505d682153a60d..c5df0e1e3b5ae6d74b2cd2a99bba398c9b7102f3:/lib/potlatch.rb diff --git a/lib/potlatch.rb b/lib/potlatch.rb index 898a5a07f..4d9fd1c23 100644 --- a/lib/potlatch.rb +++ b/lib/potlatch.rb @@ -24,7 +24,7 @@ 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 @@ -38,9 +38,10 @@ module Potlatch arr = {} while (key = getstring(s)) 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 @@ -85,7 +86,7 @@ module Potlatch a + 0.chr + 0.chr + 9.chr when String 2.chr + encodestring(n) - when Numeric + when Numeric, GeoRecord::Coord 0.chr + encodedouble(n) when NilClass 5.chr @@ -107,7 +108,7 @@ module Potlatch # Encode number as eight-byte double precision float def self.encodedouble(n) - [n].pack("G") + [n.to_f].pack("G") end # Encode number as four-byte long @@ -119,7 +120,7 @@ module Potlatch # The Dispatcher class handles decoding a series of RPC calls # from the request, dispatching them, and encoding the response class Dispatcher - def initialize(request, &_block) + def initialize(request, &block) # Get stream for request data @request = StringIO.new(request + 0.chr) @@ -134,7 +135,7 @@ module Potlatch end # Capture the dispatch routine - @dispatch = Proc.new + @dispatch = block end def each(&_block) @@ -143,7 +144,7 @@ module Potlatch # Output response header a, b = bodies.divmod(256) - yield 0.chr + 0.chr + 0.chr + 0.chr + a.chr + b.chr + yield 0.chr * 4 + a.chr + b.chr # Process the bodies bodies.times do # Read each body @@ -162,11 +163,11 @@ module Potlatch # The Potlatch class is a helper for Potlatch class Potlatch # ----- getpresets - # in: none - # does: reads tag preset menus, colours, and autocomplete config files - # out: [0] presets, [1] presetmenus, [2] presetnames, - # [3] colours, [4] casing, [5] areas, [6] autotags - # (all hashes) + # in: none + # does: reads tag preset menus, colours, and autocomplete config files + # out: [0] presets, [1] presetmenus, [2] presetnames, + # [3] colours, [4] casing, [5] areas, [6] autotags + # (all hashes) def self.get_presets Rails.logger.info(" Message: getpresets") @@ -176,16 +177,16 @@ module Potlatch presetnames = { "point" => {}, "way" => {}, "POI" => {} } presettype = "" presetcategory = "" - # StringIO.open(txt) do |file| - File.open(Rails.root.join("config", "potlatch", "presets.txt")) do |file| + # StringIO.open(txt) do |file| + File.open(Rails.root.join("config/potlatch/presets.txt")) do |file| file.each_line do |line| - t = line.chomp - if t =~ %r{(\w+)/(\w+)} + case line.chomp + when %r{(\w+)/(\w+)} presettype = Regexp.last_match(1) presetcategory = Regexp.last_match(2) presetmenus[presettype].push(presetcategory) presetnames[presettype][presetcategory] = ["(no preset)"] - elsif t =~ /^([\w\s]+):\s?(.+)$/ + when /^([\w\s]+):\s?(.+)$/ pre = Regexp.last_match(1) kv = Regexp.last_match(2) presetnames[presettype][presetcategory].push(pre) @@ -201,7 +202,7 @@ module Potlatch colours = {} casing = {} areas = {} - File.open(Rails.root.join("config", "potlatch", "colours.txt")) do |file| + File.open(Rails.root.join("config/potlatch/colours.txt")) do |file| file.each_line do |line| next unless line.chomp =~ /(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/ @@ -216,7 +217,7 @@ module Potlatch relcolours = {} relalphas = {} relwidths = {} - File.open(Rails.root.join("config", "potlatch", "relation_colours.txt")) do |file| + File.open(Rails.root.join("config/potlatch/relation_colours.txt")) do |file| file.each_line do |line| next unless line.chomp =~ /(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/ @@ -230,7 +231,7 @@ module Potlatch # Read POI presets icon_list = [] icon_tags = {} - File.open(Rails.root.join("config", "potlatch", "icon_presets.txt")) do |file| + File.open(Rails.root.join("config/potlatch/icon_presets.txt")) do |file| file.each_line do |line| (icon, tags) = line.chomp.split("\t") icon_list.push(icon) @@ -241,7 +242,7 @@ module Potlatch # Read auto-complete autotags = { "point" => {}, "way" => {}, "POI" => {} } - File.open(Rails.root.join("config", "potlatch", "autocomplete.txt")) do |file| + File.open(Rails.root.join("config/potlatch/autocomplete.txt")) do |file| file.each_line do |line| next unless line.chomp =~ %r{^([\w:]+)/(\w+)\s+(.+)$}