class Terragona::GeoNames::API
Constants
- URL
Public Class Methods
new(args = {})
click to toggle source
Calls superclass method
Terragona::GeoNames::Base::new
# File lib/terragona/geonames.rb, line 77 def initialize(args = {}) super @username = args[:geonames_username] cache_expiration_time = args[:cache_expiration_time] || 7200 @cache = Diskcached.new('/tmp/cache',cache_expiration_time,true) @use_cache = args[:use_cache] end
Public Instance Methods
fetch_geonames(name,country,admin_code_type,admin_code)
click to toggle source
# File lib/terragona/geonames.rb, line 85 def fetch_geonames(name,country,admin_code_type,admin_code) admin_code_str = admin_code ? "&#{admin_code_type}=#{admin_code}" : '' name_str = name ? "q=#{name}&" : '' if @use_cache @cache.cache("geonames_name=#{name}&country=#{country}#{admin_code_str}&full666") do request(name_str,country,admin_code_str) end else request(name_str,country,admin_code_str) end end
request(name_str,country,admin_code_str)
click to toggle source
# File lib/terragona/geonames.rb, line 98 def request(name_str,country,admin_code_str) url = URI.escape(%Q{#{URL}?#{name_str}country=#{country}#{admin_code_str}&style=FULL&order_by=relevance&maxRows=1000&username=#{@username}}) request = HTTPI::Request.new(url) data = HTTPI.get(request) JSON.parse(data.body,:symbolize_names=>true)[:geonames] end