module OpenStreetMap::Client::Request
methods for request
Private Instance Methods
call(type, args)
click to toggle source
make request to API
# File lib/open_street_map/client/request.rb, line 8 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(type, args)
click to toggle source
generate body from args
# File lib/open_street_map/client/request.rb, line 15 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
hostname(value)
click to toggle source
select hostname for request
# File lib/open_street_map/client/request.rb, line 30 def hostname(value) value || BASE_URI end
user_agent(value)
click to toggle source
select user_agent
for request
# File lib/open_street_map/client/request.rb, line 35 def user_agent(value) value || DEFAULT_USER_AGENT end
valid_args(type)
click to toggle source
get list of permitted args
# File lib/open_street_map/client/request.rb, line 21 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