Class: TripIt::AirObject

Inherits:
ReservationObject show all
Defined in:
lib/trip_it/classes/objects/air_object.rb

Instance Attribute Summary

Attributes inherited from BaseObject

#id, #is_client_traveler, #relative_url

Instance Method Summary collapse

Methods inherited from BaseObject

#save

Methods inherited from Base

#Boolean, #camelize, #chkAndPopulate, #chkObjAndPopulate, #convertDT, #to_hash, #to_json, #to_xml

Methods included from ParamUtil

#address_param, #airportcode_param, #array_param, #boolean_param, #boolean_read_param, #camelize, #date_param, #datetime_param, #exceptions, #float_param, #integer_param, #string_param, #time_param, #traveler_array_param, #traveler_param

Constructor Details

#initialize(client, obj_id = nil, source = nil) ⇒ AirObject

Returns a new instance of AirObject.



5
6
7
8
9
10
11
# File 'lib/trip_it/classes/objects/air_object.rb', line 5

def initialize(client, obj_id = nil, source = nil)
  @client = client
  unless obj_id.nil?
    @obj_id = obj_id
    populate(source)
  end
end

Instance Method Details

#populate(source) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/trip_it/classes/objects/air_object.rb', line 13

def populate(source)
  info = source || @client.get("/air", :id => @obj_id)["AirObject"]
  super(info)
  @segment   = []
  @traveler  = []
  chkAndPopulate(@segment, TripIt::AirSegment, info["Segment"])
  chkAndPopulate(@traveler, TripIt::Traveler, info["Traveler"])
end

#segmentObject



22
23
24
# File 'lib/trip_it/classes/objects/air_object.rb', line 22

def segment
  @segment
end

#segment=(val) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/trip_it/classes/objects/air_object.rb', line 25

def segment=(val)
  if val.is_a?(Array) && val.all? { |e| AirSegment === e }
    @segment = val
  else
    raise ArgumentError, "Segment must be an Array of AirSegments"
  end
end

#sequenceObject



33
34
35
36
# File 'lib/trip_it/classes/objects/air_object.rb', line 33

def sequence
  arr = super
  arr + ["@segment", "@traveler"]
end