Class: FlightSegment

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/earth/air/flight_segment.rb

Class Method Summary collapse

Class Method Details

.update_averages!Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/earth/air/flight_segment.rb', line 31

def update_averages!
  # Derive load factor, which is passengers divided by available seats
  where('seats > 0').update_all 'load_factor = 1.0 * passengers / seats'
  
  # Assume a load factor of 1 where passengers > available seats
  where('passengers > seats AND seats > 0').update_all 'load_factor = 1'
  
  # Derive freight share as a fraction of the total weight carried -- assume 90.718474 kg (200 lbs) per passenger (includes checked baggage)
  # FIXME TODO assume 100 kg per passenger?
  where('(freight + mail + passengers) > 0').update_all 'freight_share = 1.0 * (freight + mail) / (freight + mail + (passengers * 90.718474))'
  
  # Derive average seats per flight
  where('flights > 0').update_all 'seats_per_flight = 1.0 * seats / flights'
end