earth 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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