X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/0a81411e68102cd8a755744bd4a1e2f6eafad549..62e571a4aaa7324fe56c6c58a0dca5f943e7f9ee:/app/controllers/amf_controller.rb diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 078823cbb..96d3602a9 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -66,7 +66,10 @@ class AmfController < ApplicationController end bodies=AMF.getint(req) # Read number of bodies - render :content_type => "application/x-amf", :text => proc { |response, output| + + self.status = :ok + self.content_type = Mime::AMF + self.response_body = proc { |response, output| a,b=bodies.divmod(256) output.write 0.chr+0.chr+0.chr+0.chr+a.chr+b.chr bodies.times do # Read each body @@ -114,7 +117,10 @@ class AmfController < ApplicationController end bodies=AMF.getint(req) # Read number of bodies - render :content_type => "application/x-amf", :text => proc { |response, output| + + self.status = :ok + self.content_type = Mime::AMF + self.response_body = proc { |response, output| a,b=bodies.divmod(256) output.write 0.chr+0.chr+0.chr+0.chr+a.chr+b.chr bodies.times do # Read each body @@ -265,14 +271,14 @@ class AmfController < ApplicationController loaded_lang = 'en' # Load English defaults - en = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/locales/en.yml"))["en"] + en = YAML::load(File.open("#{Rails.root}/config/potlatch/locales/en.yml"))["en"] if lang == 'en' return [loaded_lang, en] else # Use English as a fallback begin - other = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/locales/#{lang}.yml"))[lang] + other = YAML::load(File.open("#{Rails.root}/config/potlatch/locales/#{lang}.yml"))[lang] loaded_lang = lang rescue other = en @@ -314,7 +320,7 @@ class AmfController < ApplicationController relations = sql_find_relations_in_area_and_ways(xmin, ymin, xmax, ymax, ways.collect {|x| x[0]}) else # find the way ids in an area - nodes_in_area = Node.find_by_area(ymin, xmin, ymax, xmax, :conditions => ["current_nodes.visible = ?", true], :include => :ways) + nodes_in_area = Node.bbox(ymin, xmin, ymax, xmax).visible.includes(:ways) ways = nodes_in_area.inject([]) { |sum, node| visible_ways = node.ways.select { |w| w.visible? } sum + visible_ways.collect { |w| [w.id,w.version] } @@ -326,8 +332,8 @@ class AmfController < ApplicationController points = nodes_not_used_in_area.collect { |n| [n.id, n.lon, n.lat, n.tags, n.version] }.uniq # find the relations used by those nodes and ways - relations = Relation.find_for_nodes(nodes_in_area.collect { |n| n.id }, :conditions => {:visible => true}) + - Relation.find_for_ways(ways.collect { |w| w[0] }, :conditions => {:visible => true}) + relations = Relation.nodes(nodes_in_area.collect { |n| n.id }).visible + + Relation.ways(ways.collect { |w| w[0] }).visible relations = relations.collect { |relation| [relation.id,relation.version] }.uniq end @@ -348,8 +354,8 @@ class AmfController < ApplicationController # see /config/application.yml check_boundaries(xmin, ymin, xmax, ymax) - nodes_in_area = Node.find_by_area(ymin, xmin, ymax, xmax, :conditions => ["current_ways.visible = ?", false], :include => :ways_via_history) - way_ids = nodes_in_area.collect { |node| node.ways_via_history_ids }.flatten.uniq + nodes_in_area = Node.bbox(ymin, xmin, ymax, xmax).joins(:ways_via_history).where(:current_ways => { :visible => false }) + way_ids = nodes_in_area.collect { |node| node.ways_via_history.invisible.collect { |way| way.id } }.flatten.uniq [0,'',way_ids] end @@ -916,7 +922,7 @@ class AmfController < ApplicationController end def getlocales - Dir.glob("#{RAILS_ROOT}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") } + Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") } end ##