earth 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/earth.gemspec +1 -1
  2. data/features/automobile_fuel.feature +144 -144
  3. data/features/automobile_make.feature +24 -24
  4. data/features/automobile_make_fleet_year.feature +34 -34
  5. data/features/automobile_make_model.feature +24 -24
  6. data/features/automobile_make_model_year.feature +34 -34
  7. data/features/automobile_make_model_year_variant.feature +46 -46
  8. data/features/automobile_make_year.feature +34 -34
  9. data/features/automobile_size_class.feature +59 -59
  10. data/features/automobile_size_class_year.feature +34 -34
  11. data/features/automobile_type_fuel_age.feature +55 -55
  12. data/features/automobile_type_fuel_control.feature +34 -34
  13. data/features/automobile_type_fuel_year.feature +124 -124
  14. data/features/automobile_type_fuel_year_age.feature +94 -94
  15. data/features/automobile_type_fuel_year_control.feature +74 -74
  16. data/features/automobile_type_year.feature +64 -64
  17. data/features/bus_class.feature +39 -39
  18. data/features/bus_fuel.feature +114 -114
  19. data/features/carrier.feature +64 -64
  20. data/features/carrier_mode.feature +64 -64
  21. data/features/computation_carrier.feature +14 -14
  22. data/features/computation_carrier_instance_class.feature +24 -24
  23. data/features/egrid_region.feature +20 -20
  24. data/features/egrid_subregion.feature +134 -134
  25. data/features/fuel_year.feature +54 -54
  26. data/features/greenhouse_gas.feature +44 -44
  27. data/features/rail_class.feature +64 -64
  28. data/features/shipment_mode.feature +34 -34
  29. data/lib/earth/air.rb +1 -0
  30. data/lib/earth/air/data_miner.rb +1 -0
  31. data/lib/earth/air/flight_distance_class.rb +10 -0
  32. data/lib/earth/air/flight_distance_class/data_miner.rb +18 -2
  33. data/lib/earth/air/flight_distance_class_seat_class.rb +10 -0
  34. data/lib/earth/air/flight_distance_class_seat_class/data_miner.rb +13 -0
  35. data/lib/earth/air/flight_seat_class.rb +6 -5
  36. data/lib/earth/air/flight_seat_class/data_miner.rb +18 -6
  37. data/lib/earth/version.rb +1 -1
  38. data/spec/earth_spec.rb +2 -2
  39. metadata +187 -173
@@ -1,54 +1,54 @@
1
- Feature: Data import for FuelYear
2
- As a data user
3
- I want to import FuelYear data
4
- So that I can perform fuel year control-based calculations
5
-
6
- Scenario: Successfully verifying that fuel name is never missing
7
- Given a "FuelYear" data import fetches results listed in "fuel_year_good"
8
- When a data import verifies "Fuel name should never be missing"
9
- Then the verification should be successful
10
-
11
- Scenario: Successfully verifying that year is from 1990 to 2008
12
- Given a "FuelYear" data import fetches results listed in "fuel_year_good"
13
- When a data import verifies "Year should be from 1990 to 2008"
14
- Then the verification should be successful
15
-
16
- Scenario: Successfully verifying that carbon content and energy content are greater than zero
17
- Given a "FuelYear" data import fetches results listed in "fuel_year_good"
18
- When a data import verifies "Carbon content and energy content should be greater than zero"
19
- Then the verification should be successful
20
-
21
- Scenario: Successfully verifying that emission factors are zero or more
22
- Given a "FuelYear" data import fetches results listed in "fuel_year_good"
23
- When a data import verifies "Emission factors should be zero or more"
24
- Then the verification should be successful
25
-
26
- # Scenario: Successfully verifying that units are correct
27
- # Given a "FuelYear" data import fetches results listed in "fuel_year_good"
28
- # When a data import verifies "Units should be correct"
29
- # Then the verification should be successful
30
- #
31
- Scenario: Failing to verify that fuel name is never missing
32
- Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
33
- When a data import verifies "Fuel name should never be missing"
34
- Then the verification should not be successful
35
-
36
- Scenario: Failing to verify that year is from 1990 to 2008
37
- Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
38
- When a data import verifies "Year should be from 1990 to 2008"
39
- Then the verification should not be successful
40
-
41
- Scenario: Failing to verify that carbon content and energy content are greater than zero
42
- Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
43
- When a data import verifies "Carbon content and energy content should be greater than zero"
44
- Then the verification should not be successful
45
-
46
- Scenario: Failing to verify that emission factors are zero or more
47
- Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
48
- When a data import verifies "Emission factors should be zero or more"
49
- Then the verification should not be successful
50
-
51
- # Scenario: Failing to verify that units are correct
52
- # Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
53
- # When a data import verifies "Units should be correct"
54
- # Then the verification should not be successful
1
+ # Feature: Data import for FuelYear
2
+ # As a data user
3
+ # I want to import FuelYear data
4
+ # So that I can perform fuel year control-based calculations
5
+ #
6
+ # Scenario: Successfully verifying that fuel name is never missing
7
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_good"
8
+ # When a data import verifies "Fuel name should never be missing"
9
+ # Then the verification should be successful
10
+ #
11
+ # Scenario: Successfully verifying that year is from 1990 to 2008
12
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_good"
13
+ # When a data import verifies "Year should be from 1990 to 2008"
14
+ # Then the verification should be successful
15
+ #
16
+ # Scenario: Successfully verifying that carbon content and energy content are greater than zero
17
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_good"
18
+ # When a data import verifies "Carbon content and energy content should be greater than zero"
19
+ # Then the verification should be successful
20
+ #
21
+ # Scenario: Successfully verifying that emission factors are zero or more
22
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_good"
23
+ # When a data import verifies "Emission factors should be zero or more"
24
+ # Then the verification should be successful
25
+ #
26
+ # # Scenario: Successfully verifying that units are correct
27
+ # # Given a "FuelYear" data import fetches results listed in "fuel_year_good"
28
+ # # When a data import verifies "Units should be correct"
29
+ # # Then the verification should be successful
30
+ # #
31
+ # Scenario: Failing to verify that fuel name is never missing
32
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
33
+ # When a data import verifies "Fuel name should never be missing"
34
+ # Then the verification should not be successful
35
+ #
36
+ # Scenario: Failing to verify that year is from 1990 to 2008
37
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
38
+ # When a data import verifies "Year should be from 1990 to 2008"
39
+ # Then the verification should not be successful
40
+ #
41
+ # Scenario: Failing to verify that carbon content and energy content are greater than zero
42
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
43
+ # When a data import verifies "Carbon content and energy content should be greater than zero"
44
+ # Then the verification should not be successful
45
+ #
46
+ # Scenario: Failing to verify that emission factors are zero or more
47
+ # Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
48
+ # When a data import verifies "Emission factors should be zero or more"
49
+ # Then the verification should not be successful
50
+ #
51
+ # # Scenario: Failing to verify that units are correct
52
+ # # Given a "FuelYear" data import fetches results listed in "fuel_year_bad"
53
+ # # When a data import verifies "Units should be correct"
54
+ # # Then the verification should not be successful
@@ -1,44 +1,44 @@
1
- Feature: Data import for GreenhouseGas
2
- As a data user
3
- I want to import GreenhouseGas data
4
- So that I can perform global warming potential-based calculations
5
-
6
- Scenario: Successfully verifying that abbreviation and IPCC report are never missing
7
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
8
- When a data import verifies "Abbreviation and IPCC report should never be missing"
9
- Then the verification should be successful
10
-
11
- Scenario: Successfully verifying that time horizon is 100
12
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
13
- When a data import verifies "Time horizon should be 100"
14
- Then the verification should be successful
15
-
16
- Scenario: Successfully verifying that time horizon units are years
17
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
18
- When a data import verifies "Time horizon units should be years"
19
- Then the verification should be successful
20
-
21
- Scenario: Successfully verifying that global warming potential is one or more
22
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
23
- When a data import verifies "Global warming potential should be one or more"
24
- Then the verification should be successful
25
-
26
- Scenario: Failing to verify that abbreviation and IPCC report are never missing
27
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
28
- When a data import verifies "Abbreviation and IPCC report should never be missing"
29
- Then the verification should not be successful
30
-
31
- Scenario: Failing to verify that time horizon is 100
32
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
33
- When a data import verifies "Time horizon should be 100"
34
- Then the verification should not be successful
35
-
36
- Scenario: Failing to verify that time horizon units are years
37
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
38
- When a data import verifies "Time horizon units should be years"
39
- Then the verification should not be successful
40
-
41
- Scenario: Failing to verify that global warming potential is one or more
42
- Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
43
- When a data import verifies "Global warming potential should be one or more"
44
- Then the verification should not be successful
1
+ # Feature: Data import for GreenhouseGas
2
+ # As a data user
3
+ # I want to import GreenhouseGas data
4
+ # So that I can perform global warming potential-based calculations
5
+ #
6
+ # Scenario: Successfully verifying that abbreviation and IPCC report are never missing
7
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
8
+ # When a data import verifies "Abbreviation and IPCC report should never be missing"
9
+ # Then the verification should be successful
10
+ #
11
+ # Scenario: Successfully verifying that time horizon is 100
12
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
13
+ # When a data import verifies "Time horizon should be 100"
14
+ # Then the verification should be successful
15
+ #
16
+ # Scenario: Successfully verifying that time horizon units are years
17
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
18
+ # When a data import verifies "Time horizon units should be years"
19
+ # Then the verification should be successful
20
+ #
21
+ # Scenario: Successfully verifying that global warming potential is one or more
22
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_good"
23
+ # When a data import verifies "Global warming potential should be one or more"
24
+ # Then the verification should be successful
25
+ #
26
+ # Scenario: Failing to verify that abbreviation and IPCC report are never missing
27
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
28
+ # When a data import verifies "Abbreviation and IPCC report should never be missing"
29
+ # Then the verification should not be successful
30
+ #
31
+ # Scenario: Failing to verify that time horizon is 100
32
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
33
+ # When a data import verifies "Time horizon should be 100"
34
+ # Then the verification should not be successful
35
+ #
36
+ # Scenario: Failing to verify that time horizon units are years
37
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
38
+ # When a data import verifies "Time horizon units should be years"
39
+ # Then the verification should not be successful
40
+ #
41
+ # Scenario: Failing to verify that global warming potential is one or more
42
+ # Given a "GreenhouseGas" data import fetches results listed in "greenhouse_gas_bad"
43
+ # When a data import verifies "Global warming potential should be one or more"
44
+ # Then the verification should not be successful
@@ -1,64 +1,64 @@
1
- Feature: Data import for RailClass
2
- As a data user
3
- I want to import RailClass data
4
- So that I can perform rail class-based calculations
5
-
6
- Scenario: Successfully verifying that passengers, distance, speed, and electricity intensity are greater than zero
7
- Given a "RailClass" data import fetches results listed in "rail_class_good"
8
- When a data import verifies "Passengers, distance, speed, and electricity intensity should be greater than zero"
9
- Then the verification should be successful
10
-
11
- Scenario: Successfully verifying that distance units are kilometres
12
- Given a "RailClass" data import fetches results listed in "rail_class_good"
13
- When a data import verifies "Distance units should be kilometres"
14
- Then the verification should be successful
15
-
16
- Scenario: Successfully verifying that speed units are kilometres per hour
17
- Given a "RailClass" data import fetches results listed in "rail_class_good"
18
- When a data import verifies "Speed units should be kilometres per hour"
19
- Then the verification should be successful
20
-
21
- Scenario: Successfully verifying that electricity intensity units are kilowatt hours per kilometre
22
- Given a "RailClass" data import fetches results listed in "rail_class_good"
23
- When a data import verifies "Electricity intensity units should be kilowatt hours per kilometre"
24
- Then the verification should be successful
25
-
26
- Scenario: Successfully verifying that diesel intensity is zero or more
27
- Given a "RailClass" data import fetches results listed in "rail_class_good"
28
- When a data import verifies "Diesel intensity should be zero or more"
29
- Then the verification should be successful
30
-
31
- Scenario: Successfully verifying that diesel intensity units are litres per kilometre
32
- Given a "RailClass" data import fetches results listed in "rail_class_good"
33
- When a data import verifies "Diesel intensity units should be litres per kilometre"
34
- Then the verification should be successful
35
-
36
- Scenario: Failing to verify that passengers, distance, speed, and electricity intensity are greater than zero
37
- Given a "RailClass" data import fetches results listed in "rail_class_bad"
38
- When a data import verifies "Passengers, distance, speed, and electricity intensity should be greater than zero"
39
- Then the verification should not be successful
40
-
41
- Scenario: Failing to verify that distance units are kilometres
42
- Given a "RailClass" data import fetches results listed in "rail_class_bad"
43
- When a data import verifies "Distance units should be kilometres"
44
- Then the verification should not be successful
45
-
46
- Scenario: Failing to verify that speed units are kilometres per hour
47
- Given a "RailClass" data import fetches results listed in "rail_class_bad"
48
- When a data import verifies "Speed units should be kilometres per hour"
49
- Then the verification should not be successful
50
-
51
- Scenario: Failing to verify that electricity intensity units are kilowatt hours per kilometre
52
- Given a "RailClass" data import fetches results listed in "rail_class_bad"
53
- When a data import verifies "Electricity intensity units should be kilowatt hours per kilometre"
54
- Then the verification should not be successful
55
-
56
- Scenario: Failing to verify that diesel intensity is zero or more
57
- Given a "RailClass" data import fetches results listed in "rail_class_bad"
58
- When a data import verifies "Diesel intensity should be zero or more"
59
- Then the verification should not be successful
60
-
61
- Scenario: Failing to verify that diesel intensity units are litres per kilometre
62
- Given a "RailClass" data import fetches results listed in "rail_class_bad"
63
- When a data import verifies "Diesel intensity units should be litres per kilometre"
64
- Then the verification should not be successful
1
+ # Feature: Data import for RailClass
2
+ # As a data user
3
+ # I want to import RailClass data
4
+ # So that I can perform rail class-based calculations
5
+ #
6
+ # Scenario: Successfully verifying that passengers, distance, speed, and electricity intensity are greater than zero
7
+ # Given a "RailClass" data import fetches results listed in "rail_class_good"
8
+ # When a data import verifies "Passengers, distance, speed, and electricity intensity should be greater than zero"
9
+ # Then the verification should be successful
10
+ #
11
+ # Scenario: Successfully verifying that distance units are kilometres
12
+ # Given a "RailClass" data import fetches results listed in "rail_class_good"
13
+ # When a data import verifies "Distance units should be kilometres"
14
+ # Then the verification should be successful
15
+ #
16
+ # Scenario: Successfully verifying that speed units are kilometres per hour
17
+ # Given a "RailClass" data import fetches results listed in "rail_class_good"
18
+ # When a data import verifies "Speed units should be kilometres per hour"
19
+ # Then the verification should be successful
20
+ #
21
+ # Scenario: Successfully verifying that electricity intensity units are kilowatt hours per kilometre
22
+ # Given a "RailClass" data import fetches results listed in "rail_class_good"
23
+ # When a data import verifies "Electricity intensity units should be kilowatt hours per kilometre"
24
+ # Then the verification should be successful
25
+ #
26
+ # Scenario: Successfully verifying that diesel intensity is zero or more
27
+ # Given a "RailClass" data import fetches results listed in "rail_class_good"
28
+ # When a data import verifies "Diesel intensity should be zero or more"
29
+ # Then the verification should be successful
30
+ #
31
+ # Scenario: Successfully verifying that diesel intensity units are litres per kilometre
32
+ # Given a "RailClass" data import fetches results listed in "rail_class_good"
33
+ # When a data import verifies "Diesel intensity units should be litres per kilometre"
34
+ # Then the verification should be successful
35
+ #
36
+ # Scenario: Failing to verify that passengers, distance, speed, and electricity intensity are greater than zero
37
+ # Given a "RailClass" data import fetches results listed in "rail_class_bad"
38
+ # When a data import verifies "Passengers, distance, speed, and electricity intensity should be greater than zero"
39
+ # Then the verification should not be successful
40
+ #
41
+ # Scenario: Failing to verify that distance units are kilometres
42
+ # Given a "RailClass" data import fetches results listed in "rail_class_bad"
43
+ # When a data import verifies "Distance units should be kilometres"
44
+ # Then the verification should not be successful
45
+ #
46
+ # Scenario: Failing to verify that speed units are kilometres per hour
47
+ # Given a "RailClass" data import fetches results listed in "rail_class_bad"
48
+ # When a data import verifies "Speed units should be kilometres per hour"
49
+ # Then the verification should not be successful
50
+ #
51
+ # Scenario: Failing to verify that electricity intensity units are kilowatt hours per kilometre
52
+ # Given a "RailClass" data import fetches results listed in "rail_class_bad"
53
+ # When a data import verifies "Electricity intensity units should be kilowatt hours per kilometre"
54
+ # Then the verification should not be successful
55
+ #
56
+ # Scenario: Failing to verify that diesel intensity is zero or more
57
+ # Given a "RailClass" data import fetches results listed in "rail_class_bad"
58
+ # When a data import verifies "Diesel intensity should be zero or more"
59
+ # Then the verification should not be successful
60
+ #
61
+ # Scenario: Failing to verify that diesel intensity units are litres per kilometre
62
+ # Given a "RailClass" data import fetches results listed in "rail_class_bad"
63
+ # When a data import verifies "Diesel intensity units should be litres per kilometre"
64
+ # Then the verification should not be successful
@@ -1,34 +1,34 @@
1
- Feature: Data import for ShipmentMode
2
- As a data user
3
- I want to import ShipmentMode data
4
- So that I can perform shipment mode-based calculations
5
-
6
- Scenario: Successfully verifying that route inefficiency factor >= 1
7
- Given a "ShipmentMode" data import fetches results listed in "shipment_mode_good"
8
- When a data import verifies "Route inefficiency factor should be one or more"
9
- Then the verification should be successful
10
-
11
- Scenario: Failing to verify that route inefficiency factor >= 1
12
- Given a "ShipmentMode" data import fetches results listed in "shipment_mode_bad"
13
- When a data import verifies "Route inefficiency factor should be one or more"
14
- Then the verification should not be successful
15
-
16
- Scenario: Successfully verifying that transport emission factor > 0
17
- Given a "ShipmentMode" data import fetches results listed in "shipment_mode_good"
18
- When a data import verifies "Transport emission factor should be greater than zero"
19
- Then the verification should be successful
20
-
21
- Scenario: Failing to verify that transport emission factor > 0
22
- Given a "ShipmentMode" data import fetches results listed in "shipment_mode_bad"
23
- When a data import verifies "Transport emission factor should be greater than zero"
24
- Then the verification should not be successful
25
-
26
- Scenario: Successfully verifying that transport emission factor units is never missing
27
- Given a "ShipmentMode" data import fetches results listed in "shipment_mode_good"
28
- When a data import verifies "Transport emission factor units should never be missing"
29
- Then the verification should be successful
30
-
31
- Scenario: Failing to verify that transport emission factor units is never missing
32
- Given a "ShipmentMode" data import fetches results listed in "shipment_mode_bad"
33
- When a data import verifies "Transport emission factor units should never be missing"
34
- Then the verification should not be successful
1
+ # Feature: Data import for ShipmentMode
2
+ # As a data user
3
+ # I want to import ShipmentMode data
4
+ # So that I can perform shipment mode-based calculations
5
+ #
6
+ # Scenario: Successfully verifying that route inefficiency factor >= 1
7
+ # Given a "ShipmentMode" data import fetches results listed in "shipment_mode_good"
8
+ # When a data import verifies "Route inefficiency factor should be one or more"
9
+ # Then the verification should be successful
10
+ #
11
+ # Scenario: Failing to verify that route inefficiency factor >= 1
12
+ # Given a "ShipmentMode" data import fetches results listed in "shipment_mode_bad"
13
+ # When a data import verifies "Route inefficiency factor should be one or more"
14
+ # Then the verification should not be successful
15
+ #
16
+ # Scenario: Successfully verifying that transport emission factor > 0
17
+ # Given a "ShipmentMode" data import fetches results listed in "shipment_mode_good"
18
+ # When a data import verifies "Transport emission factor should be greater than zero"
19
+ # Then the verification should be successful
20
+ #
21
+ # Scenario: Failing to verify that transport emission factor > 0
22
+ # Given a "ShipmentMode" data import fetches results listed in "shipment_mode_bad"
23
+ # When a data import verifies "Transport emission factor should be greater than zero"
24
+ # Then the verification should not be successful
25
+ #
26
+ # Scenario: Successfully verifying that transport emission factor units is never missing
27
+ # Given a "ShipmentMode" data import fetches results listed in "shipment_mode_good"
28
+ # When a data import verifies "Transport emission factor units should never be missing"
29
+ # Then the verification should be successful
30
+ #
31
+ # Scenario: Failing to verify that transport emission factor units is never missing
32
+ # Given a "ShipmentMode" data import fetches results listed in "shipment_mode_bad"
33
+ # When a data import verifies "Transport emission factor units should never be missing"
34
+ # Then the verification should not be successful
data/lib/earth/air.rb CHANGED
@@ -7,6 +7,7 @@ require 'earth/air/airline'
7
7
  require 'earth/air/airport'
8
8
  require 'earth/air/bts_aircraft'
9
9
  require 'earth/air/flight_distance_class'
10
+ require 'earth/air/flight_distance_class_seat_class'
10
11
  require 'earth/air/flight_seat_class'
11
12
  require 'earth/air/flight_segment'
12
13
 
@@ -5,6 +5,7 @@ require 'earth/air/airline/data_miner'
5
5
  require 'earth/air/airport/data_miner'
6
6
  require 'earth/air/bts_aircraft/data_miner'
7
7
  require 'earth/air/flight_distance_class/data_miner'
8
+ require 'earth/air/flight_distance_class_seat_class/data_miner'
8
9
  require 'earth/air/flight_seat_class/data_miner'
9
10
  require 'earth/air/flight_segment/data_miner'
10
11
 
@@ -1,6 +1,16 @@
1
1
  class FlightDistanceClass < ActiveRecord::Base
2
2
  set_primary_key :name
3
+
4
+ def self.find_by_distance(distance)
5
+ FlightDistanceClass.where('min_distance <= ? AND max_distance > ?', distance, distance)[0]
6
+ end
7
+
3
8
  col :name
4
9
  col :distance, :type => :float
5
10
  col :distance_units
11
+ col :min_distance, :type => :float
12
+ col :min_distance_units
13
+ col :max_distance, :type => :float
14
+ col :max_distance_units
15
+ col :passengers, :type => :float
6
16
  end
@@ -1,9 +1,25 @@
1
1
  FlightDistanceClass.class_eval do
2
2
  data_miner do
3
- import "a list of distance classes taken from the WRI business travel tool and UK DEFRA/DECC GHG Conversion Factors for Company Reporting",
3
+ import "distance classes from the WRI business travel tool and UK DEFRA/DECC GHG Conversion Factors for Company Reporting",
4
4
  :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFBKM0xWaUhKVkxDRmdBVkE3VklxY2c&hl=en&gid=0&output=csv' do
5
5
  key 'name'
6
- store 'distance', :units_field_name => 'distance_units'
6
+ store 'distance', :units_field_name => 'distance_units'
7
+ store 'min_distance', :units_field_name => 'min_distance_units', :nullify => true
8
+ store 'max_distance', :units_field_name => 'max_distance_units', :nullify => true
9
+ end
10
+
11
+ # FIXME TODO verify that min_distance >= 0
12
+ # FIXME TODO verify that max_distance > 0
13
+ # FIXME TODO verify that distance class distance bounds don't overlap
14
+
15
+ process "Ensure FlightSegment is populated" do
16
+ FlightSegment.run_data_miner!
17
+ end
18
+
19
+ process "Calculate passengers for each distance class" do
20
+ FlightDistanceClass.find_each do |distance_class|
21
+ distance_class.passengers = FlightSegment.where('distance >= ? AND distance < ?', distance_class.min_distance, distance_class.max_distance).sum(:passengers)
22
+ end
7
23
  end
8
24
 
9
25
  # FIXME TODO verify this