Module: Gdirections

Includes:
HTTParty
Defined in:
lib/gdirections.rb

Defined Under Namespace

Classes: Route

Class Method Summary collapse

Class Method Details

.get_directions(options = {}) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gdirections.rb', line 10

def self.get_directions(options = {})
  options = {
    :origin => nil,
    :destination => nil,
    :mode => :driving,
    :sensor => :false,
    :waypoints => nil,
    :optimize => true
  }.merge(options)
  
  raise ArgumentError, "Origin required" if options[:origin].nil?
  raise ArgumentError, "Destination required" if options[:destination].nil?
  
  if options[:waypoints] && options[:waypoints].is_a?(Array)
    options[:waypoints] = "optimize:#{(options.delete(:optimize) == true).to_s}|" + options[:waypoints].join('|')
  end
  
  result = get("/maps/api/directions/json", :query => options)
  if result
    Route.new(result.parsed_response)
  end
end