lib/gds_api/mapit.rb
require_relative 'base' require_relative 'exceptions' class GdsApi::Mapit < GdsApi::Base def location_for_postcode(postcode) response = get_json("#{base_url}/postcode/#{CGI.escape postcode}.json") Location.new(response) unless response.nil? end def areas_for_type(type) get_json("#{base_url}/areas/#{type}.json") end def area_for_code(code_type, code) get_json("#{base_url}/code/#{code_type}/#{code}.json") end class Location attr_reader :response def initialize(response) @response = response end def lat @response['wgs84_lat'] end def lon @response['wgs84_lon'] end def areas @response['areas'].map {|i, area| OpenStruct.new(area) } end def postcode @response['postcode'] end end private def base_url endpoint end end