class GoogleDistanceMatrix::Route

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.

Constants

ATTRIBUTES
STATUSES

Public Class Methods

new(attributes = {}) click to toggle source
# File lib/google_distance_matrix/route.rb, line 24
def initialize(attributes = {})
  attributes = attributes.with_indifferent_access

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

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

  assign attributes if ok?
end

Public Instance Methods

inspect() click to toggle source
# File lib/google_distance_matrix/route.rb, line 35
def inspect
  attrs = ATTRIBUTES.reject do |a|
    public_send(a).blank?
  end

  inspection = attrs.map { |a| "#{a}: #{public_send(a).inspect}" }.join ', '

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

Private Instance Methods

assign(attributes) click to toggle source
# File lib/google_distance_matrix/route.rb, line 47
def assign(attributes)
  @distance_text = attributes[:distance][:text]
  @distance_in_meters = attributes[:distance][:value]
  @duration_text = attributes[:duration][:text]
  @duration_in_seconds = attributes[:duration][:value]

  return unless  attributes.key? :duration_in_traffic

  @duration_in_traffic_text = attributes[:duration_in_traffic][:text]
  @duration_in_traffic_in_seconds = attributes[:duration_in_traffic][:value]
end