Sha256: 422e816398d6662b22811dfa2fc910f14f36fd33ec1fc78c3910096fc2054ab5
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
module OpenStreetMap class Client # methods for request module Request private # make request to API def call(type, args) url = hostname(args[:hostname]) + type headers = { 'User-Agent' => user_agent(args[:user_agent]) } self.class.get(url, query: generate_body(type, args), headers: headers).parsed_response end # generate body from args def generate_body(type, args) args['accept-language'.to_sym] = args[:accept_language] if args.key?(:accept_language) args.select { |key, _| valid_args(type).include?(key) } end # get list of permitted args def valid_args(type) case type when 'search' then %i[q format addressdetails extratags namedetails viewbox bounded exclude_place_ids limit accept-language email] when 'reverse' then %i[format lat lon zoom addressdetails extratags namedetails accept-language email] else [] end end # select hostname for request def hostname(value) value || BASE_URI end # select user_agent for request def user_agent(value) value || DEFAULT_USER_AGENT end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
open_street_map-1.2.1 | lib/open_street_map/client/request.rb |
open_street_map-1.2.0 | lib/open_street_map/client/request.rb |