Class: GoogleDistanceMatrix::Route

Inherits:
Object
  • Object
show all
Defined in:
lib/google_distance_matrix/route.rb

Overview

Public: Thin wrapper class for an element in the matrix.

The route has the data the element contains, pluss it references it’s origin and destination.

Constant Summary collapse

STATUSES =
%w[ok zero_results not_found]
ATTRIBUTES =
%w[
  origin destination
  status distance_text distance_in_meters duration_text duration_in_seconds
]

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ Route

Returns a new instance of Route.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/google_distance_matrix/route.rb', line 20

def initialize(attributes = {})
  attributes = attributes.with_indifferent_access

  @origin = attributes[:origin]
  @destination = attributes[:destination]

  @status = ActiveSupport::StringInquirer.new attributes[:status].downcase

  if ok?
    @distance_text = attributes[:distance][:text]
    @distance_in_meters = attributes[:distance][:value]
    @duration_text = attributes[:duration][:text]
    @duration_in_seconds = attributes[:duration][:value]
  end
end

Instance Method Details

#inspectObject



38
39
40
41
42
# File 'lib/google_distance_matrix/route.rb', line 38

def inspect
  inspection = ATTRIBUTES.reject { |a| public_send(a).blank? }.map { |a| "#{a}: #{public_send(a).inspect}" }.join ', '

  "#<#{self.class} #{inspection}>"
end