lib/geokit/geocoders.rb in andre-geokit-1.2.1 vs lib/geokit/geocoders.rb in andre-geokit-1.2.2

- old
+ new

@@ -8,34 +8,34 @@ module Inflector extend self def titleize(word) - humanize(underscore(word)).gsub(/\b([a-z])/) { $1.capitalize } + humanize(underscore(word)).gsub(/\b([a-z])/u) { $1.capitalize } end def underscore(camel_cased_word) camel_cased_word.to_s.gsub(/::/, '/'). - gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). - gsub(/([a-z\d])([A-Z])/,'\1_\2'). + gsub(/([A-Z]+)([A-Z][a-z])/u,'\1_\2'). + gsub(/([a-z\d])([A-Z])/u,'\1_\2'). tr("-", "_"). downcase end def humanize(lower_case_and_underscored_word) lower_case_and_underscored_word.to_s.gsub(/_id$/, "").gsub(/_/, " ").capitalize end def snake_case(s) - return s.downcase if s =~ /^[A-Z]+$/ - s.gsub(/([A-Z]+)(?=[A-Z][a-z]?)|\B[A-Z]/, '_\&') =~ /_*(.*)/ + return s.downcase if s =~ /^[A-Z]+$/u + s.gsub(/([A-Z]+)(?=[A-Z][a-z]?)|\B[A-Z]/u, '_\&') =~ /_*(.*)/ return $+.downcase end def url_escape(s) - s.gsub(/([^ a-zA-Z0-9_.-]+)/n) do + s.gsub(/([^ a-zA-Z0-9_.-]+)/nu) do '%' + $1.unpack('H2' * $1.size).join('%').upcase end.tr(' ', '+') end end # Contains a set of geocoders which can be used independently if desired. The list contains: @@ -209,15 +209,16 @@ private # Template method which does the reverse-geocode lookup. def self.do_reverse_geocode(latlng) - res = self.call_geocoder_service("http://maps.google.com/maps/geo?ll=#{Geokit::Inflector::url_escape(latlng)}&output=xml&key=#{Geokit::Geocoders::google}&oe=utf-8") + latlng=LatLng.normalize(latlng) + res = self.call_geocoder_service("http://maps.google.com/maps/geo?ll=#{Geokit::Inflector::url_escape(latlng.ll)}&output=xml&key=#{Geokit::Geocoders::google}&oe=utf-8") # res = Net::HTTP.get_response(URI.parse("http://maps.google.com/maps/geo?ll=#{Geokit::Inflector::url_escape(address_str)}&output=xml&key=#{Geokit::Geocoders::google}&oe=utf-8")) return GeoLoc.new if !res.is_a?(Net::HTTPSuccess) xml = res.body - logger.debug "Google reverse-geocoding. LL: #{latlng}. Result: #{xml}" + logger.debug "Google reverse-geocoding. LL: #{latlng.ll}. Result: #{xml}" return self.xml2GeoLoc(xml) end # Template method which does the geocode lookup. def self.do_geocode(address) @@ -480,6 +481,6 @@ # If we get here, we failed completely. GeoLoc.new end end end -end \ No newline at end of file +end