earth 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. data/Gemfile +1 -0
  2. data/TODO +2 -0
  3. data/bin/earth_tester.rb +62 -9
  4. data/earth.gemspec +7 -4
  5. data/lib/earth.rb +18 -17
  6. data/lib/earth/air.rb +2 -0
  7. data/lib/earth/air/aircraft.rb +76 -19
  8. data/lib/earth/air/aircraft/data_miner.rb +1 -63
  9. data/lib/earth/air/aircraft_class.rb +48 -12
  10. data/lib/earth/air/aircraft_class/data_miner.rb +3 -46
  11. data/lib/earth/air/aircraft_fuel_use_equation.rb +11 -13
  12. data/lib/earth/air/aircraft_instance.rb +9 -0
  13. data/lib/earth/air/aircraft_instance_seat_class.rb +12 -0
  14. data/lib/earth/air/airline.rb +6 -8
  15. data/lib/earth/air/airline/data_miner.rb +3 -3
  16. data/lib/earth/air/airport.rb +8 -10
  17. data/lib/earth/air/airport/data_miner.rb +1 -1
  18. data/lib/earth/air/bts_aircraft.rb +3 -5
  19. data/lib/earth/air/flight_distance_class.rb +4 -6
  20. data/lib/earth/air/flight_seat_class.rb +5 -7
  21. data/lib/earth/air/flight_segment.rb +58 -42
  22. data/lib/earth/air/flight_segment/data_miner.rb +11 -26
  23. data/lib/earth/automobile.rb +1 -0
  24. data/lib/earth/automobile/automobile_fuel.rb +78 -25
  25. data/lib/earth/automobile/automobile_fuel/data_miner.rb +5 -72
  26. data/lib/earth/automobile/automobile_make.rb +14 -6
  27. data/lib/earth/automobile/automobile_make/data_miner.rb +20 -35
  28. data/lib/earth/automobile/automobile_make_fleet_year.rb +39 -10
  29. data/lib/earth/automobile/automobile_make_fleet_year/data_miner.rb +0 -29
  30. data/lib/earth/automobile/automobile_make_model.rb +30 -9
  31. data/lib/earth/automobile/automobile_make_model/data_miner.rb +11 -26
  32. data/lib/earth/automobile/automobile_make_model_year.rb +41 -12
  33. data/lib/earth/automobile/automobile_make_model_year/data_miner.rb +14 -34
  34. data/lib/earth/automobile/automobile_make_model_year_variant.rb +56 -38
  35. data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +15 -61
  36. data/lib/earth/automobile/automobile_make_year.rb +15 -8
  37. data/lib/earth/automobile/automobile_make_year/data_miner.rb +17 -51
  38. data/lib/earth/automobile/automobile_size_class.rb +78 -14
  39. data/lib/earth/automobile/automobile_size_class/data_miner.rb +0 -66
  40. data/lib/earth/automobile/automobile_size_class_year.rb +38 -10
  41. data/lib/earth/automobile/automobile_size_class_year/data_miner.rb +0 -30
  42. data/lib/earth/automobile/automobile_type_fuel_age.rb +60 -11
  43. data/lib/earth/automobile/automobile_type_fuel_age/data_miner.rb +10 -65
  44. data/lib/earth/automobile/automobile_type_fuel_control.rb +41 -10
  45. data/lib/earth/automobile/automobile_type_fuel_control/data_miner.rb +0 -33
  46. data/lib/earth/automobile/automobile_type_fuel_year.rb +60 -15
  47. data/lib/earth/automobile/automobile_type_fuel_year/data_miner.rb +1 -52
  48. data/lib/earth/automobile/automobile_type_fuel_year_age.rb +64 -12
  49. data/lib/earth/automobile/automobile_type_fuel_year_age/data_miner.rb +1 -59
  50. data/lib/earth/automobile/automobile_type_fuel_year_control.rb +31 -10
  51. data/lib/earth/automobile/automobile_type_fuel_year_control/data_miner.rb +2 -32
  52. data/lib/earth/automobile/automobile_type_year.rb +51 -10
  53. data/lib/earth/automobile/automobile_type_year/data_miner.rb +1 -43
  54. data/lib/earth/automobile/data_miner.rb +1 -0
  55. data/lib/earth/bus/bus_class.rb +108 -28
  56. data/lib/earth/bus/bus_class/data_miner.rb +0 -88
  57. data/lib/earth/bus/bus_fuel.rb +83 -15
  58. data/lib/earth/bus/bus_fuel/data_miner.rb +0 -76
  59. data/lib/earth/bus/bus_fuel_control.rb +8 -10
  60. data/lib/earth/bus/bus_fuel_year_control.rb +7 -9
  61. data/lib/earth/bus/bus_fuel_year_control/data_miner.rb +1 -5
  62. data/lib/earth/computation/computation_carrier.rb +11 -5
  63. data/lib/earth/computation/computation_carrier/data_miner.rb +0 -7
  64. data/lib/earth/computation/computation_carrier_instance_class.rb +25 -8
  65. data/lib/earth/computation/computation_carrier_instance_class/data_miner.rb +0 -18
  66. data/lib/earth/computation/computation_carrier_region.rb +5 -7
  67. data/lib/earth/diet/diet_class.rb +14 -16
  68. data/lib/earth/diet/food_group.rb +7 -9
  69. data/lib/earth/fuel/fuel.rb +14 -16
  70. data/lib/earth/fuel/fuel/data_miner.rb +7 -3
  71. data/lib/earth/fuel/fuel_price.rb +4 -6
  72. data/lib/earth/fuel/fuel_type.rb +12 -14
  73. data/lib/earth/fuel/fuel_year.rb +57 -16
  74. data/lib/earth/fuel/fuel_year/data_miner.rb +0 -43
  75. data/lib/earth/fuel/greenhouse_gas.rb +46 -9
  76. data/lib/earth/fuel/greenhouse_gas/data_miner.rb +0 -38
  77. data/lib/earth/hospitality/lodging_class.rb +10 -12
  78. data/lib/earth/industry/industry.rb +3 -5
  79. data/lib/earth/industry/industry_product.rb +6 -8
  80. data/lib/earth/industry/industry_product_line.rb +5 -7
  81. data/lib/earth/industry/industry_sector.rb +5 -7
  82. data/lib/earth/industry/merchant.rb +4 -6
  83. data/lib/earth/industry/merchant_category.rb +3 -5
  84. data/lib/earth/industry/merchant_category_industry.rb +5 -7
  85. data/lib/earth/industry/product_line.rb +5 -7
  86. data/lib/earth/industry/product_line_industry_product.rb +5 -7
  87. data/lib/earth/industry/sector.rb +5 -7
  88. data/lib/earth/locality/census_division.rb +21 -23
  89. data/lib/earth/locality/census_region.rb +3 -5
  90. data/lib/earth/locality/climate_division.rb +5 -7
  91. data/lib/earth/locality/country.rb +13 -15
  92. data/lib/earth/locality/egrid_region.rb +14 -5
  93. data/lib/earth/locality/egrid_region/data_miner.rb +0 -10
  94. data/lib/earth/locality/egrid_subregion.rb +71 -18
  95. data/lib/earth/locality/egrid_subregion/data_miner.rb +0 -59
  96. data/lib/earth/locality/petroleum_administration_for_defense_district.rb +6 -8
  97. data/lib/earth/locality/state.rb +6 -8
  98. data/lib/earth/locality/urbanity.rb +2 -4
  99. data/lib/earth/locality/urbanity/data_miner.rb +7 -3
  100. data/lib/earth/locality/zip_code.rb +8 -10
  101. data/lib/earth/pet/breed.rb +5 -7
  102. data/lib/earth/pet/breed_gender.rb +6 -8
  103. data/lib/earth/pet/gender.rb +2 -4
  104. data/lib/earth/pet/species.rb +15 -17
  105. data/lib/earth/rail/rail_class.rb +64 -14
  106. data/lib/earth/rail/rail_class/data_miner.rb +0 -51
  107. data/lib/earth/residence/air_conditioner_use.rb +4 -6
  108. data/lib/earth/residence/air_conditioner_use/data_miner.rb +7 -3
  109. data/lib/earth/residence/clothes_machine_use.rb +4 -6
  110. data/lib/earth/residence/clothes_machine_use/data_miner.rb +11 -9
  111. data/lib/earth/residence/dishwasher_use.rb +4 -6
  112. data/lib/earth/residence/dishwasher_use/data_miner.rb +11 -9
  113. data/lib/earth/residence/residence_appliance.rb +4 -6
  114. data/lib/earth/residence/residence_class.rb +2 -4
  115. data/lib/earth/residence/residence_class/data_miner.rb +7 -3
  116. data/lib/earth/residence/residence_fuel_price.rb +12 -14
  117. data/lib/earth/residence/residence_fuel_price/data_miner.rb +7 -0
  118. data/lib/earth/residence/residence_fuel_type.rb +6 -8
  119. data/lib/earth/residence/residential_energy_consumption_survey_response.rb +91 -93
  120. data/lib/earth/residence/residential_energy_consumption_survey_response/data_miner.rb +9 -8
  121. data/lib/earth/shipping/carrier.rb +57 -10
  122. data/lib/earth/shipping/carrier/data_miner.rb +0 -48
  123. data/lib/earth/shipping/carrier_mode.rb +41 -10
  124. data/lib/earth/shipping/carrier_mode/data_miner.rb +0 -33
  125. data/lib/earth/shipping/shipment_mode.rb +30 -7
  126. data/lib/earth/shipping/shipment_mode/data_miner.rb +0 -23
  127. data/lib/earth/utils.rb +45 -0
  128. data/lib/earth/version.rb +1 -1
  129. data/spec/earth/air/aircraft_spec.rb +1 -1
  130. data/vendor/clean_find_in_batches/init.rb +35 -0
  131. metadata +74 -47
@@ -17,93 +17,5 @@ BusClass.class_eval do
17
17
  store 'air_conditioning_emission_factor', :units_field_name => 'air_conditioning_emission_factor_units'
18
18
  store 'alternative_fuels_intensity', :units_field_name => 'alternative_fuels_intensity_units'
19
19
  end
20
-
21
- verify "Some attributes should be greater than zero" do
22
- BusClass.all.each do |bus_class|
23
- %w{ distance passengers speed diesel_intensity air_conditioning_emission_factor }.each do |attribute|
24
- value = bus_class.send(:"#{attribute}")
25
- unless value > 0
26
- puts "Invalid #{attribute.humanize.downcase} for BusClass #{bus_class.name}: #{value} (should be > 0)"
27
- fail
28
- end
29
- end
30
- end
31
- end
32
-
33
- verify "Some attributes should be zero or more" do
34
- BusClass.all.each do |bus_class|
35
- %w{ gasoline_intensity cng_intensity lng_intensity lpg_intensity methanol_intensity biodiesel_intensity electricity_intensity alternative_fuels_intensity }.each do |attribute|
36
- value = bus_class.send(:"#{attribute}")
37
- unless value >= 0
38
- puts "Invalid #{attribute.humanize.downcase} for BusClass #{bus_class.name}: #{value} (should be >= 0)"
39
- fail
40
- end
41
- end
42
- end
43
- end
44
-
45
- verify "Units should be correct" do
46
- BusClass.all.each do |bus_class|
47
- [["distance_units", "kilometres"],
48
- ["speed_units", "kilometres_per_hour"],
49
- ["diesel_intensity_units", "litres_per_kilometre"],
50
- ["gasoline_intensity_units", "litres_per_kilometre"],
51
- ["cng_intensity_units", "litres_per_kilometre"],
52
- ["lng_intensity_units", "litres_per_kilometre"],
53
- ["lpg_intensity_units", "litres_per_kilometre"],
54
- ["methanol_intensity_units", "litres_per_kilometre"],
55
- ["biodiesel_intensity_units", "litres_per_kilometre"],
56
- ["electricity_intensity_units", "kilowatt_hours_per_kilometre"],
57
- ["air_conditioning_emission_factor_units", "kilograms_co2e_per_kilometre"],
58
- ["alternative_fuels_intensity_units", "litres_per_kilometre"]].each do |pair|
59
- attribute = pair[0]
60
- proper_units = pair[1]
61
- units = bus_class.send(:"#{attribute}")
62
- unless units == proper_units
63
- puts "Invalid #{attribute.humanize.downcase} for BusClass #{bus_class.name}: #{units} (should be #{proper_units})"
64
- fail
65
- end
66
- end
67
- end
68
- end
69
-
70
- verify "Fallbacks should satisfy same constraints as data" do
71
- %w{ distance passengers speed diesel_intensity air_conditioning_emission_factor }.each do |attribute|
72
- value = BusClass.fallback.send(:"#{attribute}")
73
- unless value > 0
74
- puts "Invalid #{attribute.humanize.downcase} for fallback BusClass: #{value} (should be > 0)"
75
- fail
76
- end
77
- end
78
-
79
- %w{ gasoline_intensity cng_intensity lng_intensity lpg_intensity methanol_intensity biodiesel_intensity electricity_intensity alternative_fuels_intensity }.each do |attribute|
80
- value = BusClass.fallback.send(:"#{attribute}")
81
- unless value >= 0
82
- puts "Invalid #{attribute.humanize.downcase} for fallback BusClass: #{value} (should be >= 0)"
83
- fail
84
- end
85
- end
86
-
87
- [["distance_units", "kilometres"],
88
- ["speed_units", "kilometres_per_hour"],
89
- ["diesel_intensity_units", "litres_per_kilometre"],
90
- ["gasoline_intensity_units", "litres_per_kilometre"],
91
- ["cng_intensity_units", "litres_per_kilometre"],
92
- ["lng_intensity_units", "litres_per_kilometre"],
93
- ["lpg_intensity_units", "litres_per_kilometre"],
94
- ["methanol_intensity_units", "litres_per_kilometre"],
95
- ["biodiesel_intensity_units", "litres_per_kilometre"],
96
- ["electricity_intensity_units", "kilowatt_hours_per_kilometre"],
97
- ["air_conditioning_emission_factor_units", "kilograms_co2e_per_kilometre"],
98
- ["alternative_fuels_intensity_units", "litres_per_kilometre"]].each do |pair|
99
- attribute = pair[0]
100
- proper_units = pair[1]
101
- units = BusClass.fallback.send(:"#{attribute}")
102
- unless units == proper_units
103
- puts "Invalid #{attribute.humanize.downcase} for fallback BusClass: #{units} (should be #{proper_units})"
104
- fail
105
- end
106
- end
107
- end
108
20
  end
109
21
  end
@@ -8,18 +8,86 @@ class BusFuel < ActiveRecord::Base
8
8
  fuel_year_controls.where(:year => fuel_year_controls.maximum('year'))
9
9
  end
10
10
 
11
- force_schema do
12
- string 'name'
13
- string 'fuel_name'
14
- float 'energy_content'
15
- string 'energy_content_units'
16
- float 'co2_emission_factor'
17
- string 'co2_emission_factor_units'
18
- float 'co2_biogenic_emission_factor'
19
- string 'co2_biogenic_emission_factor_units'
20
- float 'ch4_emission_factor'
21
- string 'ch4_emission_factor_units'
22
- float 'n2o_emission_factor'
23
- string 'n2o_emission_factor_units'
24
- end
25
- end
11
+ col :name
12
+ col :fuel_name
13
+ col :energy_content, :type => :float
14
+ col :energy_content_units
15
+ col :co2_emission_factor, :type => :float
16
+ col :co2_emission_factor_units
17
+ col :co2_biogenic_emission_factor, :type => :float
18
+ col :co2_biogenic_emission_factor_units
19
+ col :ch4_emission_factor, :type => :float
20
+ col :ch4_emission_factor_units
21
+ col :n2o_emission_factor, :type => :float
22
+ col :n2o_emission_factor_units
23
+
24
+ # # FIXME TODO verify fuel_name appears in fuels
25
+ # verify "Fuel name should never be missing" do
26
+ # BusFuel.all.each do |fuel|
27
+ # value = fuel.send(:fuel_name)
28
+ # unless value.present?
29
+ # raise "Missing fuel name for BusFuel #{fuel.name}"
30
+ # end
31
+ # end
32
+ # end
33
+ #
34
+ # verify "Energy content should be greater than zero if present" do
35
+ # BusFuel.all.each do |fuel|
36
+ # value = fuel.send(:energy_content)
37
+ # if value.present?
38
+ # unless value > 0
39
+ # raise "Invalid energy content for BusFuel #{fuel.name}: #{value} (should be > 0)"
40
+ # end
41
+ # end
42
+ # end
43
+ # end
44
+ #
45
+ # %w{ co2_emission_factor co2_biogenic_emission_factor }.each do |attribute|
46
+ # verify "#{attribute.humanize} should be 0 or more" do
47
+ # BusFuel.all.each do |fuel|
48
+ # value = fuel.send(attribute)
49
+ # unless value >= 0
50
+ # raise "Invalid #{attribute.humanize.downcase} for BusFuel #{fuel.name}: #{value} (should be 0 or more)"
51
+ # end
52
+ # end
53
+ # end
54
+ # end
55
+ #
56
+ # %w{ ch4_emission_factor n2o_emission_factor }.each do |attribute|
57
+ # verify "#{attribute.humanize} should be > 0" do
58
+ # BusFuel.all.each do |fuel|
59
+ # value = fuel.send(attribute)
60
+ # unless value > 0
61
+ # raise "Invalid #{attribute.humanize.downcase} for BusFuel #{fuel.name}: #{value} (should be > 0)"
62
+ # end
63
+ # end
64
+ # end
65
+ # end
66
+ #
67
+ # verify "Energy content units should be megajoules per litre if present" do
68
+ # BusFuel.all.each do |fuel|
69
+ # units = fuel.send(:energy_content_units)
70
+ # if units.present?
71
+ # unless units == "megajoules_per_litre"
72
+ # raise "Invalid energy content units for BusFuel #{fuel.name}: #{units} (should be megajoules_per_litre)"
73
+ # end
74
+ # end
75
+ # end
76
+ # end
77
+ #
78
+ # [["co2_emission_factor_units", "kilograms_per_litre"],
79
+ # ["co2_biogenic_emission_factor_units", "kilograms_per_litre"],
80
+ # ["ch4_emission_factor_units", "kilograms_co2e_per_kilometre"],
81
+ # ["n2o_emission_factor_units", "kilograms_co2e_per_kilometre"]].each do |pair|
82
+ # attribute = pair[0]
83
+ # proper_units = pair[1]
84
+ # verify "#{attribute.humanize} should be #{proper_units.humanize.downcase}" do
85
+ # BusFuel.all.each do |fuel|
86
+ # units = fuel.send(:"#{attribute}")
87
+ # unless units == proper_units
88
+ # raise "Invalid #{attribute.humanize.downcase} for BusFuel #{fuel.name}: #{units} (should be #{proper_units})"
89
+ # end
90
+ # end
91
+ # end
92
+ # end
93
+ end
@@ -109,81 +109,5 @@ BusFuel.class_eval do
109
109
  bus_fuel.save!
110
110
  end
111
111
  end
112
-
113
- # FIXME TODO verify fuel_name appears in fuels
114
- verify "Fuel name should never be missing" do
115
- BusFuel.all.each do |fuel|
116
- value = fuel.send(:fuel_name)
117
- unless value.present?
118
- puts "Missing fuel name for BusFuel #{fuel.name}"
119
- fail
120
- end
121
- end
122
- end
123
-
124
- verify "Energy content should be greater than zero if present" do
125
- BusFuel.all.each do |fuel|
126
- value = fuel.send(:energy_content)
127
- if value.present?
128
- unless value > 0
129
- puts "Invalid energy content for BusFuel #{fuel.name}: #{value} (should be > 0)"
130
- fail
131
- end
132
- end
133
- end
134
- end
135
-
136
- %w{ co2_emission_factor co2_biogenic_emission_factor }.each do |attribute|
137
- verify "#{attribute.humanize} should be 0 or more" do
138
- BusFuel.all.each do |fuel|
139
- value = fuel.send(attribute)
140
- unless value >= 0
141
- puts "Invalid #{attribute.humanize.downcase} for BusFuel #{fuel.name}: #{value} (should be 0 or more)"
142
- fail
143
- end
144
- end
145
- end
146
- end
147
-
148
- %w{ ch4_emission_factor n2o_emission_factor }.each do |attribute|
149
- verify "#{attribute.humanize} should be > 0" do
150
- BusFuel.all.each do |fuel|
151
- value = fuel.send(attribute)
152
- unless value > 0
153
- puts "Invalid #{attribute.humanize.downcase} for BusFuel #{fuel.name}: #{value} (should be > 0)"
154
- fail
155
- end
156
- end
157
- end
158
- end
159
-
160
- verify "Energy content units should be megajoules per litre if present" do
161
- BusFuel.all.each do |fuel|
162
- units = fuel.send(:energy_content_units)
163
- if units.present?
164
- unless units == "megajoules_per_litre"
165
- puts "Invalid energy content units for BusFuel #{fuel.name}: #{units} (should be megajoules_per_litre)"
166
- fail
167
- end
168
- end
169
- end
170
- end
171
-
172
- [["co2_emission_factor_units", "kilograms_per_litre"],
173
- ["co2_biogenic_emission_factor_units", "kilograms_per_litre"],
174
- ["ch4_emission_factor_units", "kilograms_co2e_per_kilometre"],
175
- ["n2o_emission_factor_units", "kilograms_co2e_per_kilometre"]].each do |pair|
176
- attribute = pair[0]
177
- proper_units = pair[1]
178
- verify "#{attribute.humanize} should be #{proper_units.humanize.downcase}" do
179
- BusFuel.all.each do |fuel|
180
- units = fuel.send(:"#{attribute}")
181
- unless units == proper_units
182
- puts "Invalid #{attribute.humanize.downcase} for BusFuel #{fuel.name}: #{units} (should be #{proper_units})"
183
- fail
184
- end
185
- end
186
- end
187
- end
188
112
  end
189
113
  end
@@ -1,12 +1,10 @@
1
1
  class BusFuelControl < ActiveRecord::Base
2
2
  set_primary_key :name
3
- force_schema do
4
- string 'name'
5
- string 'bus_fuel_name'
6
- string 'control'
7
- float 'ch4_emission_factor'
8
- string 'ch4_emission_factor_units'
9
- float 'n2o_emission_factor'
10
- string 'n2o_emission_factor_units'
11
- end
12
- end
3
+ col :name
4
+ col :bus_fuel_name
5
+ col :control
6
+ col :ch4_emission_factor, :type => :float
7
+ col :ch4_emission_factor_units
8
+ col :n2o_emission_factor, :type => :float
9
+ col :n2o_emission_factor_units
10
+ end
@@ -3,12 +3,10 @@ class BusFuelYearControl < ActiveRecord::Base
3
3
 
4
4
  belongs_to :fuel_control, :class_name => 'BusFuelControl', :foreign_key => 'bus_fuel_control_name'
5
5
 
6
- force_schema do
7
- string 'name'
8
- string 'bus_fuel_name'
9
- integer 'year'
10
- string 'control'
11
- string 'bus_fuel_control_name'
12
- float 'total_travel_percent'
13
- end
14
- end
6
+ col :name
7
+ col :bus_fuel_name
8
+ col :year, :type => :integer
9
+ col :control
10
+ col :bus_fuel_control_name
11
+ col :total_travel_percent, :type => :float
12
+ end
@@ -14,11 +14,7 @@ BusFuelYearControl.class_eval do
14
14
  end
15
15
 
16
16
  process "Derive bus fuel control name for association with BusFuelControl" do
17
- if ActiveRecord::Base.connection.adapter_name.downcase == 'sqlite'
18
- update_all "bus_fuel_control_name = bus_fuel_name || ' ' || control"
19
- else
20
- update_all "bus_fuel_control_name = CONCAT(bus_fuel_name, ' ', control)"
21
- end
17
+ update_all "bus_fuel_control_name = bus_fuel_name || ' ' || control"
22
18
  end
23
19
 
24
20
  # FIXME TODO verify that for any year the percentages sum to 1
@@ -4,8 +4,14 @@ class ComputationCarrier < ActiveRecord::Base
4
4
  falls_back_on :name => 'fallback',
5
5
  :power_usage_effectiveness => lambda { ComputationCarrier.maximum('power_usage_effectiveness') }
6
6
 
7
- force_schema do
8
- string 'name'
9
- float 'power_usage_effectiveness'
10
- end
11
- end
7
+ col :name
8
+ col :power_usage_effectiveness, :type => :float
9
+
10
+ # verify "Power usage effectiveness should be one or more" do
11
+ # ComputationCarrier.all.each do |carrier|
12
+ # unless carrier.power_usage_effectiveness >= 1.0
13
+ # raise "Invalid power usage effectiveness for ComputationCarrier #{carrier.name}: #{carrier.power_usage_effectiveness} (should be >= 1.0)"
14
+ # end
15
+ # end
16
+ # end
17
+ end
@@ -6,12 +6,5 @@ ComputationCarrier.class_eval do
6
6
  store 'power_usage_effectiveness'
7
7
  end
8
8
 
9
- verify "Power usage effectiveness should be one or more" do
10
- ComputationCarrier.all.each do |carrier|
11
- unless carrier.power_usage_effectiveness >= 1.0
12
- raise "Invalid power usage effectiveness for ComputationCarrier #{carrier.name}: #{carrier.power_usage_effectiveness} (should be >= 1.0)"
13
- end
14
- end
15
- end
16
9
  end
17
10
  end
@@ -7,11 +7,28 @@ class ComputationCarrierInstanceClass < ActiveRecord::Base
7
7
  :electricity_intensity => lambda { ComputationCarrierInstanceClass.find_by_name('Amazon m1.small').electricity_intensity },
8
8
  :electricity_intensity_units => lambda { ComputationCarrierInstanceClass.find_by_name('Amazon m1.small').electricity_intensity_units }
9
9
 
10
- force_schema do
11
- string 'name'
12
- string 'computation_carrier_name'
13
- string 'instance_class'
14
- float 'electricity_intensity'
15
- string 'electricity_intensity_units'
16
- end
17
- end
10
+ col :name
11
+ col :computation_carrier_name
12
+ col :instance_class
13
+ col :electricity_intensity, :type => :float
14
+ col :electricity_intensity_units
15
+
16
+ # FIXME TODO verify that computation carrier name appears in computation_carriers
17
+
18
+ # verify "Electricity intensity should be more than zero" do
19
+ # ComputationCarrierInstanceClass.all.each do |instance_class|
20
+ # unless instance_class.electricity_intensity > 0
21
+ # raise "Invalid electricity intensity for ComputationCarrierInstanceClass #{instance_class.name}: #{instance_class.electricity_intensity} (should be > 0)"
22
+ # end
23
+ # end
24
+ # end
25
+ #
26
+ # verify "Electricity intensity units should be kilowatts" do
27
+ # ComputationCarrierInstanceClass.all.each do |instance_class|
28
+ # unless instance_class.electricity_intensity_units == 'kilowatts'
29
+ # raise "Invalid electricity intensity units for ComputationCarrierInstanceClass #{instance_class.name}: #{instance_class.electricity_intensity_units} (should be kilowatts)"
30
+ # end
31
+ # end
32
+ # end
33
+
34
+ end
@@ -7,23 +7,5 @@ ComputationCarrierInstanceClass.class_eval do
7
7
  store 'instance_class'
8
8
  store 'electricity_intensity', :units_field_name => 'electricity_intensity_units'
9
9
  end
10
-
11
- # FIXME TODO verify that computation carrier name appears in computation_carriers
12
-
13
- verify "Electricity intensity should be more than zero" do
14
- ComputationCarrierInstanceClass.all.each do |instance_class|
15
- unless instance_class.electricity_intensity > 0
16
- raise "Invalid electricity intensity for ComputationCarrierInstanceClass #{instance_class.name}: #{instance_class.electricity_intensity} (should be > 0)"
17
- end
18
- end
19
- end
20
-
21
- verify "Electricity intensity units should be kilowatts" do
22
- ComputationCarrierInstanceClass.all.each do |instance_class|
23
- unless instance_class.electricity_intensity_units == 'kilowatts'
24
- raise "Invalid electricity intensity units for ComputationCarrierInstanceClass #{instance_class.name}: #{instance_class.electricity_intensity_units} (should be kilowatts)"
25
- end
26
- end
27
- end
28
10
  end
29
11
  end
@@ -3,10 +3,8 @@ class ComputationCarrierRegion < ActiveRecord::Base
3
3
 
4
4
  belongs_to :egrid_subregion, :foreign_key => 'egrid_subregion_abbreviation'
5
5
 
6
- force_schema do
7
- string 'name'
8
- string 'computation_carrier_name'
9
- string 'region'
10
- string 'egrid_subregion_abbreviation'
11
- end
12
- end
6
+ col :name
7
+ col :computation_carrier_name
8
+ col :region
9
+ col :egrid_subregion_abbreviation
10
+ end
@@ -7,19 +7,17 @@ class DietClass < ActiveRecord::Base
7
7
  end
8
8
  end
9
9
 
10
- force_schema do
11
- string 'name'
12
- float 'intensity'
13
- string 'intensity_units'
14
- float 'red_meat_share'
15
- float 'poultry_share'
16
- float 'fish_share'
17
- float 'eggs_share'
18
- float 'nuts_share'
19
- float 'dairy_share'
20
- float 'cereals_and_grains_share'
21
- float 'fruit_share'
22
- float 'vegetables_share'
23
- float 'oils_and_sugars_share'
24
- end
25
- end
10
+ col :name
11
+ col :intensity, :type => :float
12
+ col :intensity_units
13
+ col :red_meat_share, :type => :float
14
+ col :poultry_share, :type => :float
15
+ col :fish_share, :type => :float
16
+ col :eggs_share, :type => :float
17
+ col :nuts_share, :type => :float
18
+ col :dairy_share, :type => :float
19
+ col :cereals_and_grains_share, :type => :float
20
+ col :fruit_share, :type => :float
21
+ col :vegetables_share, :type => :float
22
+ col :oils_and_sugars_share, :type => :float
23
+ end