class Rome2rio::Segment

Attributes

distance[R]
duration[R]
indicativePrice[R]
isImperial[R]
isMajor[R]
itineraries[R]
kind[R]
path[R]
sCode[R]
sName[R]
sPos[R]
subkind[R]
tCode[R]
tName[R]
tPos[R]

Public Class Methods

new(json) click to toggle source
# File lib/rome2rio/response/segment.rb, line 5
def initialize(json)
  # Possible kinds: walk, car, train, bus, ferry, flight
  @kind = json["kind"]
  @isMajor = json["isMajor"] == 1
  @distance = json["distance"]
  @duration = json["duration"]
  @indicativePrice = IndicativePrice.new(json["indicativePrice"])

  if @kind != "flight" then
    @isImperial = json["isImperial"] == 1
    @sName = json["sName"]
    @sPos = Position.parse(json["sPos"])
    @tName = json["tName"]
    @tPos = Position.parse(json["tPos"])
    @path = json["path"]
  else
    @sCode = json["sCode"]
    @tCode = json["tCode"]
    @itineraries = []
    json["itineraries"].each { |itinerary| @itineraries << FlightItinerary.new(itinerary) }
  end

  if [ "train", "bus", "ferry" ].include?(@kind) then
    @subkind = json["subkind"]
    @itineraries = []
    json["itineraries"].each { |itinerary| @itineraries << TransitItinerary.new(itinerary) }
  end
end