Sha256: f00972cfe128ab5549144c38b4acdf8070987542b9b566f7540fa5fb884c72fc
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module OpenStreetMap class Client 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'] = 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
open_street_map-1.2.2 | lib/open_street_map/client/request.rb |