Class: GeoAPI::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/geoapi/query.rb

Class Method Summary collapse

Class Method Details

.build_url(resource_path, options = {}) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/geoapi/query.rb', line 25

def build_url(resource_path, options = {})

  options[:apikey] ||= GeoAPI.apikey
  query_string = build_query_params(options)

  "#{GeoAPI::API_URL}#{resource_path}#{query_string}"
end

.get(url) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/geoapi/query.rb', line 33

def get(url)
  RestClient.get(url)
rescue RestClient::RequestFailed
  raise BadRequest, "Parameter invalid"
rescue RestClient::ResourceNotFound
  raise NotFound, "GUID invalid"
end

.get_then_parse(url) ⇒ Object



21
22
23
# File 'lib/geoapi/query.rb', line 21

def get_then_parse(url)
  JSON.parse(get(url))
end

.query(query) ⇒ Object

Uses GeoAPI’s MQL query method



14
15
16
17
18
# File 'lib/geoapi/query.rb', line 14

def query(query)
  q = JSON.generate(query)
  url = build_url('q', {:q => URI.escape(q)})
  get_then_parse(url)     
end

.simple_search(lat, lon, options = {}) ⇒ Object

Uses GeoAPI’s simple search method



6
7
8
9
10
11
# File 'lib/geoapi/query.rb', line 6

def simple_search(lat, lon, options = {})
  options[:lat] = lat
  options[:lon] = lon
  url = build_url('search', options)
  get_then_parse(url)
end