Class: What3Words::API

Inherits:
Object
  • Object
show all
Defined in:
lib/what3words/api.rb

Defined Under Namespace

Classes: Error, ResponseError, WordError

Constant Summary collapse

REGEX_3_WORD_ADDRESS =
/^\p{L}+\.\p{L}+\.\p{L}+$/u
REGEX_STRICT =
/^\p{L}{4,}+\.\p{L}{4,}+\.\p{L}{4,}+$/u
BASE_URL =
"https://api.what3words.com/v2/"
ENDPOINTS =
{
  :forward => "forward",
  :reverse => "reverse",
  :languages => "languages",
  :autosuggest => "autosuggest",
  :standardblend => "standardblend",
  :grid => "grid"
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ API

Returns a new instance of API.



26
27
28
# File 'lib/what3words/api.rb', line 26

def initialize(params)
  @key = params.fetch(:key)
end

Instance Attribute Details

#keyObject (readonly)

Returns the value of attribute key.



30
31
32
# File 'lib/what3words/api.rb', line 30

def key
  @key
end

Instance Method Details

#autosuggest(addr, lang, focus = {}, clip = {}, params = {}) ⇒ Object



57
58
59
60
61
# File 'lib/what3words/api.rb', line 57

def autosuggest(addr, lang, focus = {}, clip = {}, params = {})
  request_params = assemble_autosuggest_request_params(addr, lang, focus, clip, params)
  response = request! :autosuggest, request_params
  response
end

#deep_symbolize_keys(i) ⇒ Object



155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/what3words/api.rb', line 155

def deep_symbolize_keys(i)
  if i.kind_of? Hash
    ni = {}
    i.each {|k,v| ni[k.respond_to?(:to_sym) ? k.to_sym : k] = deep_symbolize_keys(v) }
  elsif i.kind_of? Array
    ni = i.map(&method(:deep_symbolize_keys))
  else
    ni = i
  end

  ni
end

#endpoint(name) ⇒ Object



173
174
175
# File 'lib/what3words/api.rb', line 173

def endpoint(name)
  return base_url() + ENDPOINTS.fetch(name)
end

#forward(words, params = {}) ⇒ Object



32
33
34
35
36
37
# File 'lib/what3words/api.rb', line 32

def forward(words, params = {})
  words_string = get_words_string words
  request_params = assemble_forward_request_params(words_string, params)
  response = request! :forward, request_params
  response
end

#grid(bbox, params = {}) ⇒ Object



45
46
47
48
49
# File 'lib/what3words/api.rb', line 45

def grid(bbox, params = {})
  request_params = assemble_grid_request_params(bbox, params)
  response = request! :grid, request_params
  response
end

#languagesObject



51
52
53
54
55
# File 'lib/what3words/api.rb', line 51

def languages()
  request_params = assemble_common_request_params({})
  response = request! :languages, request_params
  response
end

#reverse(position, params = {}) ⇒ Object



39
40
41
42
43
# File 'lib/what3words/api.rb', line 39

def reverse(position, params = {})
  request_params = assemble_reverse_request_params(position, params)
  response = request! :reverse, request_params
  response
end

#standardblend(addr, lang, focus = {}, params = {}) ⇒ Object



63
64
65
66
67
# File 'lib/what3words/api.rb', line 63

def standardblend(addr, lang, focus = {}, params = {})
  request_params = assemble_standardblend_request_params(addr, lang, focus, params)
  response = request! :standardblend, request_params
  response
end