]> git.openstreetmap.org Git - rails.git/commitdiff
Update to use libxml 1.0.0 gem.
authorTom Hughes <tom@compton.nu>
Sun, 8 Mar 2009 11:34:46 +0000 (11:34 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 8 Mar 2009 11:34:46 +0000 (11:34 +0000)
app/controllers/api_controller.rb
app/models/node.rb
app/models/relation.rb
app/models/way.rb
config/initializers/libxml.rb
lib/osm.rb

index 6b36b41ae947e25fdfe035f5377e2cc652e0d3a5..7a0a45fc8a333f346499ba8c4764c91a1a6950d6 100644 (file)
@@ -54,7 +54,7 @@ class ApiController < ApplicationController
     points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => TRACEPOINTS_PER_PAGE, :order => "timestamp DESC" )
 
     doc = XML::Document.new
     points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => TRACEPOINTS_PER_PAGE, :order => "timestamp DESC" )
 
     doc = XML::Document.new
-    doc.encoding = 'UTF-8'
+    doc.encoding = XML::Encoding::UTF_8
     root = XML::Node.new 'gpx'
     root['version'] = '1.0'
     root['creator'] = 'OpenStreetMap.org'
     root = XML::Node.new 'gpx'
     root['version'] = '1.0'
     root['creator'] = 'OpenStreetMap.org'
index cec755f4765bfc35e9679256934512be093f74da..af88a117d83879ef0eb21d438a11d211cb670dc7 100644 (file)
@@ -57,8 +57,7 @@ class Node < ActiveRecord::Base
   # Read in xml as text and return it's Node object representation
   def self.from_xml(xml, create=false)
     begin
   # Read in xml as text and return it's Node object representation
   def self.from_xml(xml, create=false)
     begin
-      p = XML::Parser.new
-      p.string = xml
+      p = XML::Parser.string(xml)
       doc = p.parse
   
       node = Node.new
       doc = p.parse
   
       node = Node.new
index c8516b58a3441c9f3b0ec38262d7628c8888d00f..d9dba303fd8a6bbca4450dfa0260b8e4d4e8d4d9 100644 (file)
@@ -15,8 +15,7 @@ class Relation < ActiveRecord::Base
 
   def self.from_xml(xml, create=false)
     begin
 
   def self.from_xml(xml, create=false)
     begin
-      p = XML::Parser.new
-      p.string = xml
+      p = XML::Parser.string(xml)
       doc = p.parse
 
       relation = Relation.new
       doc = p.parse
 
       relation = Relation.new
index 958944200df628054c67c6c0eb8e60105d99bb38..6c3ea9e462dcda9b5d18b2a1d23e23a48d38ca0e 100644 (file)
@@ -17,8 +17,7 @@ class Way < ActiveRecord::Base
 
   def self.from_xml(xml, create=false)
     begin
 
   def self.from_xml(xml, create=false)
     begin
-      p = XML::Parser.new
-      p.string = xml
+      p = XML::Parser.string(xml)
       doc = p.parse
 
       way = Way.new
       doc = p.parse
 
       way = Way.new
index a1870dbab8b4aaaacfe5e5169bcb40e622f3dc11..f783cda1eef1a226053b2aa7a98feecd2ffe64a6 100644 (file)
@@ -1,7 +1,9 @@
 require 'rubygems'
 require 'rubygems'
-gem 'libxml-ruby', '>= 0.8.3'
+gem 'libxml-ruby', '>= 1.0.0'
 require 'libxml'
 
 require 'libxml'
 
-LibXML::XML::Parser.register_error_handler do |message|
+# This is required otherwise libxml writes out memory errors to
+# the standard output and exits uncleanly
+LibXML::XML::Error.set_handler do |message|
   raise message
 end
   raise message
 end
index 9c271607dc0160d1d7e5b2b78138dc04ed2dedf0..365ddf68ef080bc0aef2e72dce292584edfbbaab 100644 (file)
@@ -101,7 +101,7 @@ module OSM
   class GeoRSS
     def initialize(feed_title='OpenStreetMap GPS Traces', feed_description='OpenStreetMap GPS Traces', feed_url='http://www.openstreetmap.org/traces/')
       @doc = XML::Document.new
   class GeoRSS
     def initialize(feed_title='OpenStreetMap GPS Traces', feed_description='OpenStreetMap GPS Traces', feed_url='http://www.openstreetmap.org/traces/')
       @doc = XML::Document.new
-      @doc.encoding = 'UTF-8' 
+      @doc.encoding = XML::Encoding::UTF_8
 
       rss = XML::Node.new 'rss'
       @doc.root = rss
 
       rss = XML::Node.new 'rss'
       @doc.root = rss
@@ -187,7 +187,7 @@ module OSM
   class API
     def get_xml_doc
       doc = XML::Document.new
   class API
     def get_xml_doc
       doc = XML::Document.new
-      doc.encoding = 'UTF-8' 
+      doc.encoding = XML::Encoding::UTF_8
       root = XML::Node.new 'osm'
       root['version'] = API_VERSION
       root['generator'] = 'OpenStreetMap server'
       root = XML::Node.new 'osm'
       root['version'] = API_VERSION
       root['generator'] = 'OpenStreetMap server'