Sha256: 41bdd802e4edef8aa6b0d9b677b988cfff54e199ebf78d814216781f84360d47
Contents?: true
Size: 1002 Bytes
Versions: 1
Compression:
Stored size: 1002 Bytes
Contents
module OpenStreetMap class Client # Search objects by query module Search def search(args = {}) response = RestClient.get("#{args[:hostname] || BASE_URI}search?#{search_arg(args[:q])}&#{search_args_to_url(args)}", user_agent: args[:user_agent] || DEFAULT_USER_AGENT) sleep(REQUEST_TIMEOUT) args[:format] == 'xml' ? response.body : JSON.parse(response.body) rescue { 'errors' => 'Bad request' } end private def search_arg(arg) "q=#{arg.gsub(/\s+/, '+')}" end def search_args_to_url(args, result = []) valid_search_args(args).each do |key, value| key = 'accept-language' if key == :accept_language result << "#{key}=#{value}" end result.join('&') end def valid_search_args(args) args.slice(:format, :addressdetails, :extratags, :namedetails, :viewbox, :bounded, :exclude_place_ids, :limit, :accept_language, :email) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
open_street_map-1.1 | lib/open_street_map/client/search.rb |