earth 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
data/earth.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.add_runtime_dependency 'fixed_width-multibyte'
37
37
  s.add_runtime_dependency 'geokit-rails'
38
38
  s.add_runtime_dependency 'loose_tight_dictionary', '>=0.2.3'
39
- s.add_runtime_dependency 'weighted_average', '>=1'
39
+ s.add_runtime_dependency 'weighted_average', '>=1.0.1'
40
40
  s.add_runtime_dependency 'mini_record-compat' # need https://github.com/DAddYE/mini_record/pull/7
41
41
  s.add_runtime_dependency 'activesupport'
42
42
  s.add_runtime_dependency 'activerecord'
@@ -28,10 +28,10 @@ class AircraftClass < ActiveRecord::Base
28
28
  AircraftFuelUseEquation.run_data_miner!
29
29
  find_each do |aircraft_class|
30
30
  cumulative_passengers = 0
31
- aircraft_class.m3 = 0
32
- aircraft_class.m2 = 0
33
- aircraft_class.m1 = 0
34
- aircraft_class.b = 0
31
+ aircraft_class.m3 = 0.0
32
+ aircraft_class.m2 = 0.0
33
+ aircraft_class.m1 = 0.0
34
+ aircraft_class.b = 0.0
35
35
 
36
36
  aircraft_class.aircraft.where('passengers > 0 AND fuel_use_code IS NOT NULL').each do |a|
37
37
  cumulative_passengers += a.passengers
@@ -50,13 +50,10 @@ class AircraftClass < ActiveRecord::Base
50
50
 
51
51
  aircraft_class.seats = aircraft_class.aircraft.weighted_average(:seats, :weighted_by => :passengers)
52
52
 
53
- aircraft_class.m3_units = 'kilograms_per_cubic_nautical_mile'
54
- aircraft_class.m2_units = 'kilograms_per_square_nautical_mile'
55
- aircraft_class.m1_units = 'kilograms_per_nautical_mile'
56
- aircraft_class.b_units = 'kilograms'
57
-
58
53
  aircraft_class.save!
59
54
  end
55
+
56
+ update_all :m3_units => 'kilograms_per_cubic_nautical_mile', :m2_units => 'kilograms_per_square_nautical_mile', :m1_units => 'kilograms_per_nautical_mile', :b_units => 'kilograms'
60
57
  end
61
58
  end
62
59
  end
@@ -62,17 +62,17 @@ class FlightSegment < ActiveRecord::Base
62
62
 
63
63
  def self.update_averages!
64
64
  # Derive load factor, which is passengers divided by available seats
65
- update_all 'load_factor = passengers / seats', 'seats > 0'
65
+ update_all 'load_factor = 1.0 * passengers / seats', 'seats > 0'
66
66
 
67
67
  # Assume a load factor of 1 where passengers > available seats
68
68
  update_all 'load_factor = 1', 'passengers > seats AND seats > 0'
69
69
 
70
70
  # TODO: what is 90.718474
71
71
  # Derive freight share as a fraction of the total weight carried
72
- update_all 'freight_share = (freight + mail) / (freight + mail + (passengers * 90.718474))', '(freight + mail + passengers) > 0'
72
+ update_all 'freight_share = 1.0 * (freight + mail) / (freight + mail + (passengers * 90.718474))', '(freight + mail + passengers) > 0'
73
73
 
74
74
  # Derive average seats per flight
75
- update_all 'seats_per_flight = seats / flights', 'flights > 0'
75
+ update_all 'seats_per_flight = 1.0 * seats / flights', 'flights > 0'
76
76
 
77
77
  # Add a useful date field
78
78
  update_all %{approximate_date = DATE(year || '-' || month || '-' || '14')}, 'month IS NOT NULL'
@@ -172,7 +172,7 @@ FlightSegment.class_eval do
172
172
  def self.form_data_per_month(year_range)
173
173
  months = {}
174
174
  year_range.each do |year|
175
- (1..12).each do |month|
175
+ (1..1).each do |month|
176
176
  time = ::Time.gm year, month
177
177
  form_data = FORM_DATA.dup
178
178
  form_data.gsub! '__YEAR__', time.year.to_s
@@ -185,7 +185,7 @@ FlightSegment.class_eval do
185
185
  end
186
186
 
187
187
  data_miner do
188
- form_data_per_month(2009..2011).each do |month, form_data|
188
+ form_data_per_month(2009..2009).each do |month, form_data|
189
189
  import "T100 flight segment data for #{month.strftime('%B %Y')}",
190
190
  :url => URL,
191
191
  :form_data => form_data,
@@ -83,12 +83,12 @@ class AutomobileFuel < ActiveRecord::Base
83
83
  latest_year = AutomobileTypeFuelYear.maximum('year')
84
84
  gas_use = AutomobileTypeFuelYear.where(:year => latest_year, :fuel_common_name => 'gasoline').sum('fuel_consumption')
85
85
  diesel_use = AutomobileTypeFuelYear.where(:year => latest_year, :fuel_common_name => 'diesel').sum('fuel_consumption')
86
- diesel_use / (gas_use + diesel_use)
86
+ diesel_use.to_f / (gas_use + diesel_use)
87
87
  end
88
88
 
89
89
  def fallback_co2_emission_factor
90
- (Fuel.find_by_name("Motor Gasoline").co2_emission_factor * (1 - AutomobileFuel.fallback_blend_portion)) +
91
- (Fuel.find_by_name("Distillate Fuel Oil No. 2").co2_emission_factor * AutomobileFuel.fallback_blend_portion)
90
+ (Fuel.find_by_name("Motor Gasoline").co2_emission_factor.to_f * (1 - AutomobileFuel.fallback_blend_portion)) +
91
+ (Fuel.find_by_name("Distillate Fuel Oil No. 2").co2_emission_factor.to_f * AutomobileFuel.fallback_blend_portion)
92
92
  end
93
93
 
94
94
  def fallback_co2_emission_factor_units
@@ -109,7 +109,7 @@ class AutomobileFuel < ActiveRecord::Base
109
109
  end
110
110
 
111
111
  def fallback_ch4_emission_factor
112
- fallback_latest_type_fuel_years.weighted_average(:ch4_emission_factor, :weighted_by => :total_travel) * GreenhouseGas[:ch4].global_warming_potential
112
+ fallback_latest_type_fuel_years.weighted_average(:ch4_emission_factor, :weighted_by => :total_travel).to_f * GreenhouseGas[:ch4].global_warming_potential
113
113
  end
114
114
 
115
115
  def fallback_ch4_emission_factor_units
@@ -119,7 +119,7 @@ class AutomobileFuel < ActiveRecord::Base
119
119
  end
120
120
 
121
121
  def fallback_n2o_emission_factor
122
- fallback_latest_type_fuel_years.weighted_average(:n2o_emission_factor, :weighted_by => :total_travel) * GreenhouseGas[:n2o].global_warming_potential
122
+ fallback_latest_type_fuel_years.weighted_average(:n2o_emission_factor, :weighted_by => :total_travel).to_f * GreenhouseGas[:n2o].global_warming_potential
123
123
  end
124
124
 
125
125
  def fallback_n2o_emission_factor_units
@@ -130,7 +130,7 @@ class AutomobileFuel < ActiveRecord::Base
130
130
 
131
131
  def fallback_hfc_emission_factor
132
132
  fallback_latest_type_fuel_years.map do |tfy|
133
- tfy.total_travel * tfy.type_year.hfc_emission_factor
133
+ tfy.total_travel.to_f * tfy.type_year.hfc_emission_factor
134
134
  end.sum / fallback_latest_type_fuel_years.sum('total_travel')
135
135
  end
136
136
 
@@ -39,8 +39,8 @@ AutomobileFuel.class_eval do
39
39
  process "Derive co2 emission factor and co2 biogenic emission factors" do
40
40
  find_each do |record|
41
41
  if record.blend_fuel.present?
42
- record.co2_emission_factor = (record.base_fuel.co2_emission_factor * (1 - record.blend_portion)) + (record.blend_fuel.co2_emission_factor * record.blend_portion)
43
- record.co2_biogenic_emission_factor = (record.base_fuel.co2_biogenic_emission_factor * (1 - record.blend_portion)) + (record.blend_fuel.co2_biogenic_emission_factor * record.blend_portion)
42
+ record.co2_emission_factor = (record.base_fuel.co2_emission_factor.to_f * (1 - record.blend_portion)) + (record.blend_fuel.co2_emission_factor.to_f * record.blend_portion)
43
+ record.co2_biogenic_emission_factor = (record.base_fuel.co2_biogenic_emission_factor.to_f * (1 - record.blend_portion)) + (record.blend_fuel.co2_biogenic_emission_factor.to_f * record.blend_portion)
44
44
  else
45
45
  record.co2_emission_factor = record.base_fuel.co2_emission_factor
46
46
  record.co2_biogenic_emission_factor = record.base_fuel.co2_biogenic_emission_factor
@@ -55,18 +55,18 @@ AutomobileFuel.class_eval do
55
55
  find_each do |record|
56
56
  scope = record.type_fuel_years.where(:year => record.type_fuel_years.maximum('year'))
57
57
 
58
- record.ch4_emission_factor = scope.weighted_average(:ch4_emission_factor, :weighted_by => :total_travel) * GreenhouseGas[:ch4].global_warming_potential
58
+ record.ch4_emission_factor = scope.weighted_average(:ch4_emission_factor, :weighted_by => :total_travel).to_f * GreenhouseGas[:ch4].global_warming_potential
59
59
  ch4_prefix = scope.first.ch4_emission_factor_units.split("_per_")[0]
60
60
  ch4_suffix = scope.first.ch4_emission_factor_units.split("_per_")[1]
61
61
  record.ch4_emission_factor_units = ch4_prefix + "_co2e_per_" + ch4_suffix
62
62
 
63
- record.n2o_emission_factor = scope.weighted_average(:n2o_emission_factor, :weighted_by => :total_travel) * GreenhouseGas[:n2o].global_warming_potential
63
+ record.n2o_emission_factor = scope.weighted_average(:n2o_emission_factor, :weighted_by => :total_travel).to_f * GreenhouseGas[:n2o].global_warming_potential
64
64
  n2o_prefix = scope.first.n2o_emission_factor_units.split("_per_")[0]
65
65
  n2o_suffix = scope.first.n2o_emission_factor_units.split("_per_")[1]
66
66
  record.n2o_emission_factor_units = n2o_prefix + "_co2e_per_" + n2o_suffix
67
67
 
68
68
  record.hfc_emission_factor = scope.map do |tfy|
69
- tfy.total_travel * tfy.type_year.hfc_emission_factor
69
+ tfy.total_travel.to_f * tfy.type_year.hfc_emission_factor
70
70
  end.sum / scope.sum('total_travel')
71
71
  record.hfc_emission_factor_units = scope.first.type_year.hfc_emission_factor_units
72
72
 
@@ -415,15 +415,15 @@ AutomobileMakeModelYearVariant.class_eval do
415
415
  # Note: need to divide by 0.425143707 b/c equation is designed for miles / gallon not km / l
416
416
  # Note: EPA seems to adjust differently for plug-in hybrid electric vehicles (e.g. Leaf and Volt)
417
417
  process "Calculate adjusted fuel efficiency using the latest EPA equations from EPA Fuel Economy Trends report Appendix A including conversion from miles per gallon to kilometres per litre" do
418
- update_all 'fuel_efficiency_city = 1 / ((0.003259 / 0.425143707) + (1.1805 / raw_fuel_efficiency_city))', 'raw_fuel_efficiency_city > 0'
419
- update_all 'fuel_efficiency_highway = 1 / ((0.001376 / 0.425143707) + (1.3466 / raw_fuel_efficiency_highway))', 'raw_fuel_efficiency_highway > 0'
418
+ update_all 'fuel_efficiency_city = 1.0 / ((0.003259 / 0.425143707) + (1.1805 / raw_fuel_efficiency_city))', 'raw_fuel_efficiency_city > 0'
419
+ update_all 'fuel_efficiency_highway = 1.0 / ((0.001376 / 0.425143707) + (1.3466 / raw_fuel_efficiency_highway))', 'raw_fuel_efficiency_highway > 0'
420
420
  end
421
421
 
422
422
  # This will be useful later for calculating MakeModel and Make fuel efficiency based on Variant
423
423
  # NOTE: we use a 43/57 city/highway weighting per the latest EPA analysis of real-world driving behavior
424
424
  # This results in a deviation from EPA fuel economy label values which use a historical 55/45 weighting
425
425
  process "Calculate combined adjusted fuel efficiency using the latest EPA equation" do
426
- update_all "fuel_efficiency = 1 / ((0.43 / fuel_efficiency_city) + (0.57 / fuel_efficiency_highway))"
426
+ update_all "fuel_efficiency = 1.0 / ((0.43 / fuel_efficiency_city) + (0.57 / fuel_efficiency_highway))"
427
427
  end
428
428
 
429
429
  process "Set units" do
@@ -123,7 +123,7 @@ AutomobileTypeFuelAge.class_eval do
123
123
 
124
124
  process "Convert annual distance from miles to kilometres" do
125
125
  conversion_factor = 1.miles.to(:kilometres)
126
- update_all "annual_distance = annual_distance * #{conversion_factor}"
126
+ update_all "annual_distance = 1.0 * annual_distance * #{conversion_factor}"
127
127
  update_all "annual_distance_units = 'kilometres'"
128
128
  end
129
129
 
@@ -142,7 +142,7 @@ AutomobileTypeFuelAge.class_eval do
142
142
  t1.year = #{max_year}
143
143
  AND t1.type_name = #{quoted_table_name}.type_name
144
144
  AND t1.fuel_common_name = #{quoted_table_name}.fuel_common_name )
145
- * #{quoted_table_name}.total_travel_percent / #{quoted_table_name}.annual_distance
145
+ * 1.0 * #{quoted_table_name}.total_travel_percent / #{quoted_table_name}.annual_distance
146
146
  }
147
147
  end
148
148
  end
@@ -52,7 +52,7 @@ AutomobileTypeFuelYear.class_eval do
52
52
  conversion_factor = 1_000_000_000.miles.to(:kilometres)
53
53
  connection.execute %{
54
54
  UPDATE automobile_type_fuel_years
55
- SET total_travel = total_travel * #{conversion_factor},
55
+ SET total_travel = 1.0 * total_travel * #{conversion_factor},
56
56
  total_travel_units = 'kilometres'
57
57
  WHERE total_travel_units = 'billion_miles'
58
58
  }
@@ -76,11 +76,11 @@ AutomobileTypeFuelYear.class_eval do
76
76
  process "Calculate CH4 and N2O emision factors from AutomobileTypeFuelYearControl and AutomobileTypeFuelControl" do
77
77
  AutomobileTypeFuelYear.all.each do |record|
78
78
  record.ch4_emission_factor = record.year_controls.map do |year_control|
79
- year_control.total_travel_percent * year_control.control.ch4_emission_factor
79
+ year_control.total_travel_percent.to_f * year_control.control.ch4_emission_factor
80
80
  end.sum * record.total_travel / record.fuel_consumption
81
81
 
82
82
  record.n2o_emission_factor = record.year_controls.map do |year_control|
83
- year_control.total_travel_percent * year_control.control.n2o_emission_factor
83
+ year_control.total_travel_percent.to_f * year_control.control.n2o_emission_factor
84
84
  end.sum * record.total_travel / record.fuel_consumption
85
85
 
86
86
  record.ch4_emission_factor_units = 'kilograms_per_litre'
@@ -92,7 +92,7 @@ AutomobileTypeFuelYearAge.class_eval do
92
92
  conversion_factor = 1.miles.to(:kilometres)
93
93
  connection.execute %{
94
94
  UPDATE automobile_type_fuel_year_ages
95
- SET annual_distance = annual_distance * #{conversion_factor},
95
+ SET annual_distance = 1.0 * annual_distance * #{conversion_factor},
96
96
  annual_distance_units = 'kilometres'
97
97
  WHERE annual_distance_units = 'miles'
98
98
  }
@@ -109,7 +109,7 @@ AutomobileTypeFuelYearAge.class_eval do
109
109
  process "Calculate number of vehicles from total travel percent and AutomobileTypeFuelYear" do
110
110
  total_travel = "(SELECT t1.total_travel FROM #{AutomobileTypeFuelYear.quoted_table_name} AS t1 WHERE t1.name = #{quoted_table_name}.type_fuel_year_name)"
111
111
  update_all(
112
- %{vehicles = total_travel_percent * #{total_travel} / annual_distance},
112
+ %{vehicles = 1.0 * total_travel_percent * #{total_travel} / annual_distance},
113
113
  %{annual_distance > 0}
114
114
  )
115
115
  end
@@ -19,7 +19,7 @@ AutomobileTypeYear.class_eval do
19
19
  process "Calculate HFC emission factor from AutomobileTypeFuelYear" do
20
20
  total_fuel_consumption = "(SELECT SUM(src.fuel_consumption) FROM #{AutomobileTypeFuelYear.quoted_table_name} AS src WHERE src.type_year_name = #{quoted_table_name}.name)"
21
21
  update_all(
22
- %{hfc_emission_factor = hfc_emissions / #{total_fuel_consumption}},
22
+ %{hfc_emission_factor = 1.0 * hfc_emissions / #{total_fuel_consumption}},
23
23
  %{#{total_fuel_consumption} > 0}
24
24
  )
25
25
  end
@@ -31,7 +31,7 @@ BusFuel.class_eval do
31
31
  gwp_ch4 = GreenhouseGas[:ch4].global_warming_potential
32
32
  connection.execute %{
33
33
  UPDATE bus_fuels
34
- SET ch4_emission_factor = ch4_emission_factor * #{conversion_factor} * #{gwp_ch4},
34
+ SET ch4_emission_factor = 1.0 * ch4_emission_factor * #{conversion_factor} * #{gwp_ch4},
35
35
  ch4_emission_factor_units = 'kilograms_co2e_per_kilometre'
36
36
  WHERE ch4_emission_factor_units = 'grams_per_mile'
37
37
  }
@@ -39,7 +39,7 @@ BusFuel.class_eval do
39
39
  gwp_n2o = GreenhouseGas[:n2o].global_warming_potential
40
40
  connection.execute %{
41
41
  UPDATE bus_fuels
42
- SET n2o_emission_factor = n2o_emission_factor * #{conversion_factor} * #{gwp_n2o},
42
+ SET n2o_emission_factor = 1.0 * n2o_emission_factor * #{conversion_factor} * #{gwp_n2o},
43
43
  n2o_emission_factor_units = 'kilograms_co2e_per_kilometre'
44
44
  WHERE n2o_emission_factor_units = 'grams_per_mile'
45
45
  }
@@ -49,7 +49,7 @@ BusFuel.class_eval do
49
49
  conversion_factor = (1 / 947.81712) * (1 / 3.78541178) # Google: 1 MJ / 947.81712 btu * 1 gallon / 3.78541178 l
50
50
  connection.execute %{
51
51
  UPDATE bus_fuels
52
- SET energy_content = energy_content * #{conversion_factor},
52
+ SET energy_content = 1.0 * energy_content * #{conversion_factor},
53
53
  energy_content_units = 'megajoules_per_litre'
54
54
  WHERE energy_content_units = 'btu_per_gallon'
55
55
  }
@@ -59,14 +59,14 @@ BusFuel.class_eval do
59
59
  BusFuel.all.each do |bus_fuel|
60
60
  fuel = bus_fuel.fuel
61
61
  if bus_fuel.energy_content.present?
62
- co2_factor = (bus_fuel.energy_content * fuel.carbon_content * fuel.oxidation_factor * (1 - fuel.biogenic_fraction))
62
+ co2_factor = (bus_fuel.energy_content.to_f * fuel.carbon_content * fuel.oxidation_factor * (1 - fuel.biogenic_fraction))
63
63
  bus_fuel.co2_emission_factor = co2_factor.grams.to(:kilograms).carbon.to(:co2)
64
64
 
65
65
  co2_prefix = fuel.co2_emission_factor_units.split("_per_")[0]
66
66
  co2_suffix = bus_fuel.energy_content_units.split("_per_")[1]
67
67
  bus_fuel.co2_emission_factor_units = co2_prefix + "_per_" + co2_suffix
68
68
 
69
- co2_biogenic_factor = (bus_fuel.energy_content * fuel.carbon_content * fuel.oxidation_factor * fuel.biogenic_fraction)
69
+ co2_biogenic_factor = (bus_fuel.energy_content.to_f * fuel.carbon_content * fuel.oxidation_factor * fuel.biogenic_fraction)
70
70
  bus_fuel.co2_biogenic_emission_factor = co2_biogenic_factor.grams.to(:kilograms).carbon.to(:co2)
71
71
 
72
72
  co2_biogenic_prefix = fuel.co2_biogenic_emission_factor_units.split("_per_")[0]
@@ -88,7 +88,7 @@ BusFuel.class_eval do
88
88
  BusFuel.all.each do |bus_fuel|
89
89
  if bus_fuel.latest_fuel_year_controls.present?
90
90
  ch4_factors_by_year = bus_fuel.latest_fuel_year_controls.map do |fyc|
91
- fyc.total_travel_percent * fyc.fuel_control.ch4_emission_factor
91
+ fyc.total_travel_percent.to_f * fyc.fuel_control.ch4_emission_factor
92
92
  end
93
93
  bus_fuel.ch4_emission_factor = ch4_factors_by_year.sum * GreenhouseGas[:ch4].global_warming_potential
94
94
 
@@ -97,7 +97,7 @@ BusFuel.class_eval do
97
97
  bus_fuel.ch4_emission_factor_units = ch4_prefix + "_co2e_per_" + ch4_suffix
98
98
 
99
99
  n2o_factors_by_year = bus_fuel.latest_fuel_year_controls.map do |fyc|
100
- fyc.total_travel_percent * fyc.fuel_control.n2o_emission_factor
100
+ fyc.total_travel_percent.to_f * fyc.fuel_control.n2o_emission_factor
101
101
  end
102
102
  bus_fuel.n2o_emission_factor = n2o_factors_by_year.sum * GreenhouseGas[:n2o].global_warming_potential
103
103
 
@@ -13,14 +13,14 @@ BusFuelControl.class_eval do
13
13
  conversion_factor = (1 / 1.609344) * (1.0 / 1_000.0 ) # Google: 1 mile / 1.609344 km * 1 kg / 1000 g
14
14
  connection.execute %{
15
15
  UPDATE bus_fuel_controls
16
- SET ch4_emission_factor = ch4_emission_factor * #{conversion_factor},
16
+ SET ch4_emission_factor = 1.0 * ch4_emission_factor * #{conversion_factor},
17
17
  ch4_emission_factor_units = 'kilograms_per_kilometre'
18
18
  WHERE ch4_emission_factor_units = 'grams_per_mile'
19
19
  }
20
20
 
21
21
  connection.execute %{
22
22
  UPDATE bus_fuel_controls
23
- SET n2o_emission_factor = n2o_emission_factor * #{conversion_factor},
23
+ SET n2o_emission_factor = 1.0 * n2o_emission_factor * #{conversion_factor},
24
24
  n2o_emission_factor_units = 'kilograms_per_kilometre'
25
25
  WHERE n2o_emission_factor_units = 'grams_per_mile'
26
26
  }
@@ -33,7 +33,7 @@ Fuel.class_eval do
33
33
  conversion_factor = (1_055.05585 / 1.0) * (1.0 / 158.987295) # Google: 1_055.05585 MJ / 1 MMBtu * 1 barrel / 158.987295 l
34
34
  connection.execute %{
35
35
  UPDATE fuels
36
- SET energy_content = energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_litre'
36
+ SET energy_content = 1.0 * energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_litre'
37
37
  WHERE energy_content_units = 'million_btu_per_barrel'
38
38
  }
39
39
  end
@@ -42,7 +42,7 @@ Fuel.class_eval do
42
42
  conversion_factor = (1.0 / 947.81712) * (35.3146667 / 1.0) # Google: 1.0 MJ / 947.81712 Btu * 35.3146667 cubic feet / 1 cubic m
43
43
  connection.execute %{
44
44
  UPDATE fuels
45
- SET energy_content = energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_cubic_metre'
45
+ SET energy_content = 1.0 * energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_cubic_metre'
46
46
  WHERE energy_content_units = 'btu_per_cubic_foot'
47
47
  }
48
48
  end
@@ -51,7 +51,7 @@ Fuel.class_eval do
51
51
  conversion_factor = (1_000_000_000_000.0 / 1.0) * (1.0 / 1_055_055_852_620.0) # Google: 1e12 g / Tg * 1 QBtu / 1.055e12 MJ
52
52
  connection.execute %{
53
53
  UPDATE fuels
54
- SET carbon_content = carbon_content * #{conversion_factor}, carbon_content_units = 'grams_per_megajoule'
54
+ SET carbon_content = 1.0 * carbon_content * #{conversion_factor}, carbon_content_units = 'grams_per_megajoule'
55
55
  WHERE carbon_content_units = 'teragrams_per_quadrillion_btu'
56
56
  }
57
57
  end
@@ -60,8 +60,8 @@ Fuel.class_eval do
60
60
  conversion_factor = (1.0 / 1_000.0) * (44.0 / 12.0) # Google: 1 kg / 1e3 g * 44 CO2 / 12 C
61
61
  connection.execute %{
62
62
  UPDATE fuels
63
- SET co2_emission_factor = carbon_content * energy_content * oxidation_factor * (1 - biogenic_fraction) * #{conversion_factor},
64
- co2_biogenic_emission_factor = carbon_content * energy_content * oxidation_factor * biogenic_fraction * #{conversion_factor}
63
+ SET co2_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * (1 - biogenic_fraction) * #{conversion_factor},
64
+ co2_biogenic_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * biogenic_fraction * #{conversion_factor}
65
65
  }
66
66
  end
67
67
 
@@ -15,7 +15,7 @@ FuelYear.class_eval do
15
15
  conversion_factor = (1_055.05585 / 1.0) * (1.0 / 907.18474) # Google: 1_055.05585 MJ / 1 MMBtu * 1 short ton / 907.18474 kg
16
16
  connection.execute %{
17
17
  UPDATE fuel_years
18
- SET energy_content = energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_kilogram'
18
+ SET energy_content = 1.0 * energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_kilogram'
19
19
  WHERE energy_content_units = 'million_btu_per_short_ton'
20
20
  }
21
21
  end
@@ -24,7 +24,7 @@ FuelYear.class_eval do
24
24
  conversion_factor = (1_055.05585 / 1.0) * (1.0 / 158.987295) # Google: 1_055.05585 MJ / 1 MMBtu * 1 barrel / 158.987295 l
25
25
  connection.execute %{
26
26
  UPDATE fuel_years
27
- SET energy_content = energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_litre'
27
+ SET energy_content = 1.0 * energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_litre'
28
28
  WHERE energy_content_units = 'million_btu_per_barrel'
29
29
  }
30
30
  end
@@ -33,7 +33,7 @@ FuelYear.class_eval do
33
33
  conversion_factor = (1.0 / 947.81712) * (35.3146667 / 1.0) # Google: 1.0 MJ / 947.81712 Btu * 35.3146667 cubic feet / 1 cubic m
34
34
  connection.execute %{
35
35
  UPDATE fuel_years
36
- SET energy_content = energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_cubic_metre'
36
+ SET energy_content = 1.0 * energy_content * #{conversion_factor}, energy_content_units = 'megajoules_per_cubic_metre'
37
37
  WHERE energy_content_units = 'btu_per_cubic_foot'
38
38
  }
39
39
  end
@@ -42,7 +42,7 @@ FuelYear.class_eval do
42
42
  conversion_factor = (1_000_000_000_000.0 / 1.0) * (1.0 / 1_055_055_852_620.0) # Google: 1e12 g / Tg * 1 QBtu / 1.055e12 MJ
43
43
  connection.execute %{
44
44
  UPDATE fuel_years
45
- SET carbon_content = carbon_content * #{conversion_factor}, carbon_content_units = 'grams_per_megajoule'
45
+ SET carbon_content = 1.0 * carbon_content * #{conversion_factor}, carbon_content_units = 'grams_per_megajoule'
46
46
  WHERE carbon_content_units = 'teragrams_per_quadrillion_btu'
47
47
  }
48
48
  end
@@ -51,8 +51,8 @@ FuelYear.class_eval do
51
51
  conversion_factor = (1.0 / 1_000.0) * (44.0 / 12.0) # Google: 1 kg / 1e3 g * 44 CO2 / 12 C
52
52
  connection.execute %{
53
53
  UPDATE fuel_years
54
- SET co2_emission_factor = carbon_content * energy_content * oxidation_factor * (1 - biogenic_fraction) * #{conversion_factor},
55
- co2_biogenic_emission_factor = carbon_content * energy_content * oxidation_factor * biogenic_fraction * #{conversion_factor}
54
+ SET co2_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * (1 - biogenic_fraction) * #{conversion_factor},
55
+ co2_biogenic_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * biogenic_fraction * #{conversion_factor}
56
56
  }
57
57
  end
58
58
 
@@ -11,20 +11,20 @@ LodgingClass.class_eval do
11
11
 
12
12
  process "Convert natural gas intensities to metric units" do
13
13
  conversion_factor = 2.83168466 # Google: 2.83168466 cubic m / 100 cubic ft
14
- update_all "natural_gas_intensity = natural_gas_intensity * #{conversion_factor} WHERE natural_gas_intensity_units = 'hundred_cubic_feet_per_room_night'"
15
- update_all "natural_gas_intensity_units = 'cubic_metres_per_room_night' WHERE natural_gas_intensity_units = 'hundred_cubic_feet_per_room_night'"
14
+ update_all "natural_gas_intensity = 1.0 * natural_gas_intensity * #{conversion_factor}", :natural_gas_intensity_units => 'hundred_cubic_feet_per_room_night'
15
+ update_all({:natural_gas_intensity_units => 'cubic_metres_per_room_night'}, :natural_gas_intensity_units => 'hundred_cubic_feet_per_room_night')
16
16
  end
17
17
 
18
18
  process "Convert fuel oil intensities to metric units" do
19
19
  conversion_factor = 3.78541178 # Google: 3.78541178 l / gal
20
- update_all "fuel_oil_intensity = fuel_oil_intensity * #{conversion_factor} WHERE fuel_oil_intensity_units = 'gallons_per_room_night'"
21
- update_all "fuel_oil_intensity_units = 'litres_per_room_night' WHERE fuel_oil_intensity_units = 'gallons_per_room_night'"
20
+ update_all "fuel_oil_intensity = 1.0 * fuel_oil_intensity * #{conversion_factor}", :fuel_oil_intensity_units => 'gallons_per_room_night'
21
+ update_all({:fuel_oil_intensity_units => 'litres_per_room_night'}, :fuel_oil_intensity_units => 'gallons_per_room_night')
22
22
  end
23
23
 
24
24
  process "Convert district heat intensities to metric units" do
25
25
  conversion_factor = 1.05505585 # Google: 1.05505585 MJ / 1000 Btu
26
- update_all "district_heat_intensity = district_heat_intensity * #{conversion_factor} WHERE district_heat_intensity_units = 'thousand_btu_per_room_night'"
27
- update_all "district_heat_intensity_units = 'megajoules_per_room_night' WHERE district_heat_intensity_units = 'thousand_btu_per_room_night'"
26
+ update_all "district_heat_intensity = 1.0 * district_heat_intensity * #{conversion_factor}", :district_heat_intensity_units => 'thousand_btu_per_room_night'
27
+ update_all({:district_heat_intensity_units => 'megajoules_per_room_night'}, :district_heat_intensity_units => 'thousand_btu_per_room_night')
28
28
  end
29
29
  end
30
30
  end
@@ -10,7 +10,7 @@ class Industry < ActiveRecord::Base
10
10
  has_many :sectors, :through => :industry_sectors
11
11
 
12
12
  col :naics_code
13
- col :description
13
+ col :description, :type => :text
14
14
 
15
15
  def trade_industry?
16
16
  prefix = naics_code.to_s[0,2]
@@ -6,7 +6,7 @@ class IndustryProduct < ActiveRecord::Base
6
6
  belongs_to :industry, :foreign_key => 'naics_code'
7
7
 
8
8
  col :naics_product_code
9
- col :description
9
+ col :description, :type => :text
10
10
  col :value, :type => :float
11
11
  col :value_units
12
12
  col :naics_code
@@ -9,5 +9,5 @@ class MerchantCategory < ActiveRecord::Base
9
9
  end
10
10
 
11
11
  col :mcc
12
- col :description
12
+ col :description, :type => :text
13
13
  end
@@ -7,7 +7,7 @@ class ProductLine < ActiveRecord::Base
7
7
  has_many :industry_products, :through => :product_line_industry_products
8
8
 
9
9
  col :ps_code
10
- col :description
10
+ col :description, :type => :text
11
11
  col :broadline # FIXME TODO do we need this?
12
12
  col :parent # FIXME TODO do we need this?
13
13
  end
@@ -4,7 +4,7 @@ class Sector < ActiveRecord::Base
4
4
  has_many :industry_sectors, :foreign_key => 'io_code'
5
5
 
6
6
  col :io_code
7
- col :description
7
+ col :description, :type => :text
8
8
  col :value, :type => :float
9
9
  col :value_units
10
10
  end
@@ -32,7 +32,7 @@ Country.class_eval do
32
32
  # FIXME TODO eventually need to do this for all countries
33
33
  process "Derive US average automobile fuel efficiency from AutomobileTypeFuelYear" do
34
34
  scope = AutomobileTypeFuelYear.where(:year => AutomobileTypeFuelYear.maximum(:year))
35
- fe = scope.sum(:total_travel) / scope.sum(:fuel_consumption)
35
+ fe = scope.sum(:total_travel).to_f / scope.sum(:fuel_consumption)
36
36
  units = scope.first.total_travel_units + '_per_' + scope.first.fuel_consumption_units.singularize
37
37
 
38
38
  connection.execute %{
@@ -47,7 +47,7 @@ Country.class_eval do
47
47
  conversion_factor = 1.miles.to(:kilometres)
48
48
  connection.execute %{
49
49
  UPDATE countries
50
- SET automobile_city_speed = automobile_city_speed * #{conversion_factor},
50
+ SET automobile_city_speed = 1.0 * automobile_city_speed * #{conversion_factor},
51
51
  automobile_city_speed_units = 'kilometres_per_hour'
52
52
  WHERE automobile_city_speed_units = 'miles_per_hour'
53
53
  }
@@ -57,7 +57,7 @@ Country.class_eval do
57
57
  conversion_factor = 1.miles.to(:kilometres)
58
58
  connection.execute %{
59
59
  UPDATE countries
60
- SET automobile_highway_speed = automobile_highway_speed * #{conversion_factor},
60
+ SET automobile_highway_speed = 1.0 * automobile_highway_speed * #{conversion_factor},
61
61
  automobile_highway_speed_units = 'kilometres_per_hour'
62
62
  WHERE automobile_highway_speed_units = 'miles_per_hour'
63
63
  }
@@ -67,7 +67,7 @@ Country.class_eval do
67
67
  conversion_factor = 1.miles.to(:kilometres)
68
68
  connection.execute %{
69
69
  UPDATE countries
70
- SET automobile_trip_distance = automobile_trip_distance * #{conversion_factor},
70
+ SET automobile_trip_distance = 1.0 * automobile_trip_distance * #{conversion_factor},
71
71
  automobile_trip_distance_units = 'kilometres'
72
72
  WHERE automobile_trip_distance_units = 'miles'
73
73
  }
@@ -29,7 +29,7 @@ class Species < ActiveRecord::Base
29
29
  end
30
30
 
31
31
  def marginal_dietary_requirement_fallback
32
- total_diet_size = thoroughly_researched.map(&:weighted_diet_size).sum
32
+ total_diet_size = thoroughly_researched.map(&:weighted_diet_size).sum.to_f
33
33
  total_population = thoroughly_researched.sum(:population)
34
34
  return 0.0 unless total_population > 0.0
35
35
  average_weight = thoroughly_researched.weighted_average(:weight, :weighted_by => :population)
@@ -40,12 +40,12 @@ class Species < ActiveRecord::Base
40
40
 
41
41
  def diet_size
42
42
  return unless weight and marginal_dietary_requirement and fixed_dietary_requirement
43
- weight * marginal_dietary_requirement + fixed_dietary_requirement
43
+ weight.to_f * marginal_dietary_requirement + fixed_dietary_requirement
44
44
  end
45
45
 
46
46
  def weighted_diet_size
47
47
  return unless _diet_size = diet_size and _population = population
48
- _diet_size * _population
48
+ _diet_size.to_f * _population
49
49
  end
50
50
 
51
51
  def to_s
@@ -142,24 +142,24 @@ ResidentialEnergyConsumptionSurveyResponse.class_eval do
142
142
  [ 'annual_energy_from_electricity_for_heating_water', :kbtus, :joules ],
143
143
  [ 'annual_energy_from_electricity_for_other_appliances', :kbtus, :joules ],
144
144
  ].each do |attr_name, from_units, to_units|
145
- update_all "#{attr_name} = #{attr_name} * #{Conversions::Unit.exchange_rate from_units, to_units}"
145
+ update_all "#{attr_name} = 1.0 * #{attr_name} * #{Conversions::Unit.exchange_rate from_units, to_units}"
146
146
  end
147
147
  end
148
148
 
149
149
  process 'Add a new field "rooms" that estimates how many rooms are in the house' do
150
- update_all 'rooms = total_rooms + full_bathrooms/2 + half_bathrooms/4 + heated_garage*(attached_1car_garage + detached_1car_garage + 2*(attached_2car_garage + detached_2car_garage) + 3*(attached_3car_garage + detached_3car_garage))'
150
+ update_all 'rooms = total_rooms + full_bathrooms/2.0 + half_bathrooms/4.0 + 1.0*heated_garage*(attached_1car_garage + detached_1car_garage + 2.0*(attached_2car_garage + detached_2car_garage) + 3.0*(attached_3car_garage + detached_3car_garage))'
151
151
  end
152
152
 
153
153
  process 'Add a new field "bathrooms" that synthesizes half and full bathrooms into one number' do
154
- update_all 'bathrooms = full_bathrooms + 0.5 * half_bathrooms'
154
+ update_all 'bathrooms = full_bathrooms + 0.5*half_bathrooms'
155
155
  end
156
156
 
157
157
  process 'Add a new field "lighting_use" that estimates how many hours light bulbs are turned on in the house' do
158
- update_all 'lighting_use = 2*(lights_on_1_to_4_hours + efficient_lights_on_1_to_4_hours) + 8*(lights_on_4_to_12_hours + efficient_lights_on_4_to_12_hours) + 16*(lights_on_over_12_hours + efficient_lights_on_over_12_hours) + 12*(outdoor_all_night_lights + outdoor_all_night_gas_lights)'
158
+ update_all 'lighting_use = 2.0*(lights_on_1_to_4_hours + efficient_lights_on_1_to_4_hours) + 8.0*(lights_on_4_to_12_hours + efficient_lights_on_4_to_12_hours) + 16.0*(lights_on_over_12_hours + efficient_lights_on_over_12_hours) + 12.0*(outdoor_all_night_lights + outdoor_all_night_gas_lights)'
159
159
  end
160
160
 
161
161
  process 'Add a new field "lighting_efficiency" that estimates what percentage of light bulbs in a house are energy-efficient' do
162
- update_all 'lighting_efficiency = (2*efficient_lights_on_1_to_4_hours + 8*efficient_lights_on_4_to_12_hours + 16*efficient_lights_on_over_12_hours) / lighting_use', 'lighting_use > 0'
162
+ update_all 'lighting_efficiency = (2.0*efficient_lights_on_1_to_4_hours + 8.0*efficient_lights_on_4_to_12_hours + 16.0*efficient_lights_on_over_12_hours) / lighting_use', 'lighting_use > 0'
163
163
  end
164
164
 
165
165
  process "synthesize air conditioner use from central AC and window AC use" do
data/lib/earth/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Earth
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: earth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -15,7 +15,7 @@ date: 2011-06-06 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: data_miner
18
- requirement: &2168492720 !ruby/object:Gem::Requirement
18
+ requirement: &2164719040 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '1.3'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *2168492720
26
+ version_requirements: *2164719040
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: to_regexp
29
- requirement: &2168492300 !ruby/object:Gem::Requirement
29
+ requirement: &2164718620 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '0'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *2168492300
37
+ version_requirements: *2164718620
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: cohort_scope
40
- requirement: &2168491840 !ruby/object:Gem::Requirement
40
+ requirement: &2164718100 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *2168491840
48
+ version_requirements: *2164718100
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: table_warnings
51
- requirement: &2168491340 !ruby/object:Gem::Requirement
51
+ requirement: &2164717600 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: 0.0.6
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *2168491340
59
+ version_requirements: *2164717600
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: remote_table
62
- requirement: &2168490840 !ruby/object:Gem::Requirement
62
+ requirement: &2164717020 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: 1.2.3
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *2168490840
70
+ version_requirements: *2164717020
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: falls_back_on
73
- requirement: &2168490460 !ruby/object:Gem::Requirement
73
+ requirement: &2164716640 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :runtime
80
80
  prerelease: false
81
- version_requirements: *2168490460
81
+ version_requirements: *2164716640
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: fixed_width-multibyte
84
- requirement: &2168490000 !ruby/object:Gem::Requirement
84
+ requirement: &2164716160 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
- version_requirements: *2168490000
92
+ version_requirements: *2164716160
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: geokit-rails
95
- requirement: &2168489580 !ruby/object:Gem::Requirement
95
+ requirement: &2164715700 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ! '>='
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: '0'
101
101
  type: :runtime
102
102
  prerelease: false
103
- version_requirements: *2168489580
103
+ version_requirements: *2164715700
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: loose_tight_dictionary
106
- requirement: &2168489080 !ruby/object:Gem::Requirement
106
+ requirement: &2164693640 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,21 +111,21 @@ dependencies:
111
111
  version: 0.2.3
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *2168489080
114
+ version_requirements: *2164693640
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: weighted_average
117
- requirement: &2168488580 !ruby/object:Gem::Requirement
117
+ requirement: &2164693060 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ! '>='
121
121
  - !ruby/object:Gem::Version
122
- version: '1'
122
+ version: 1.0.1
123
123
  type: :runtime
124
124
  prerelease: false
125
- version_requirements: *2168488580
125
+ version_requirements: *2164693060
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: mini_record-compat
128
- requirement: &2168488200 !ruby/object:Gem::Requirement
128
+ requirement: &2164692660 !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ! '>='
@@ -133,10 +133,10 @@ dependencies:
133
133
  version: '0'
134
134
  type: :runtime
135
135
  prerelease: false
136
- version_requirements: *2168488200
136
+ version_requirements: *2164692660
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: activesupport
139
- requirement: &2168487740 !ruby/object:Gem::Requirement
139
+ requirement: &2164692160 !ruby/object:Gem::Requirement
140
140
  none: false
141
141
  requirements:
142
142
  - - ! '>='
@@ -144,10 +144,10 @@ dependencies:
144
144
  version: '0'
145
145
  type: :runtime
146
146
  prerelease: false
147
- version_requirements: *2168487740
147
+ version_requirements: *2164692160
148
148
  - !ruby/object:Gem::Dependency
149
149
  name: activerecord
150
- requirement: &2168487320 !ruby/object:Gem::Requirement
150
+ requirement: &2164691740 !ruby/object:Gem::Requirement
151
151
  none: false
152
152
  requirements:
153
153
  - - ! '>='
@@ -155,10 +155,10 @@ dependencies:
155
155
  version: '0'
156
156
  type: :runtime
157
157
  prerelease: false
158
- version_requirements: *2168487320
158
+ version_requirements: *2164691740
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: bundler
161
- requirement: &2168486900 !ruby/object:Gem::Requirement
161
+ requirement: &2164691300 !ruby/object:Gem::Requirement
162
162
  none: false
163
163
  requirements:
164
164
  - - ! '>='
@@ -166,10 +166,10 @@ dependencies:
166
166
  version: '0'
167
167
  type: :development
168
168
  prerelease: false
169
- version_requirements: *2168486900
169
+ version_requirements: *2164691300
170
170
  - !ruby/object:Gem::Dependency
171
171
  name: bueller
172
- requirement: &2168486480 !ruby/object:Gem::Requirement
172
+ requirement: &2164690840 !ruby/object:Gem::Requirement
173
173
  none: false
174
174
  requirements:
175
175
  - - ! '>='
@@ -177,10 +177,10 @@ dependencies:
177
177
  version: '0'
178
178
  type: :development
179
179
  prerelease: false
180
- version_requirements: *2168486480
180
+ version_requirements: *2164690840
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: cucumber
183
- requirement: &2160161960 !ruby/object:Gem::Requirement
183
+ requirement: &2164690420 !ruby/object:Gem::Requirement
184
184
  none: false
185
185
  requirements:
186
186
  - - ! '>='
@@ -188,10 +188,10 @@ dependencies:
188
188
  version: '0'
189
189
  type: :development
190
190
  prerelease: false
191
- version_requirements: *2160161960
191
+ version_requirements: *2164690420
192
192
  - !ruby/object:Gem::Dependency
193
193
  name: rake
194
- requirement: &2160161540 !ruby/object:Gem::Requirement
194
+ requirement: &2164689940 !ruby/object:Gem::Requirement
195
195
  none: false
196
196
  requirements:
197
197
  - - ! '>='
@@ -199,10 +199,10 @@ dependencies:
199
199
  version: '0'
200
200
  type: :development
201
201
  prerelease: false
202
- version_requirements: *2160161540
202
+ version_requirements: *2164689940
203
203
  - !ruby/object:Gem::Dependency
204
204
  name: rdoc
205
- requirement: &2160161120 !ruby/object:Gem::Requirement
205
+ requirement: &2164689520 !ruby/object:Gem::Requirement
206
206
  none: false
207
207
  requirements:
208
208
  - - ! '>='
@@ -210,10 +210,10 @@ dependencies:
210
210
  version: '0'
211
211
  type: :development
212
212
  prerelease: false
213
- version_requirements: *2160161120
213
+ version_requirements: *2164689520
214
214
  - !ruby/object:Gem::Dependency
215
215
  name: rspec
216
- requirement: &2160160700 !ruby/object:Gem::Requirement
216
+ requirement: &2164689100 !ruby/object:Gem::Requirement
217
217
  none: false
218
218
  requirements:
219
219
  - - ! '>='
@@ -221,10 +221,10 @@ dependencies:
221
221
  version: '0'
222
222
  type: :development
223
223
  prerelease: false
224
- version_requirements: *2160160700
224
+ version_requirements: *2164689100
225
225
  - !ruby/object:Gem::Dependency
226
226
  name: sqlite3-ruby
227
- requirement: &2160160280 !ruby/object:Gem::Requirement
227
+ requirement: &2164688620 !ruby/object:Gem::Requirement
228
228
  none: false
229
229
  requirements:
230
230
  - - ! '>='
@@ -232,10 +232,10 @@ dependencies:
232
232
  version: '0'
233
233
  type: :development
234
234
  prerelease: false
235
- version_requirements: *2160160280
235
+ version_requirements: *2164688620
236
236
  - !ruby/object:Gem::Dependency
237
237
  name: mysql
238
- requirement: &2160159860 !ruby/object:Gem::Requirement
238
+ requirement: &2164688140 !ruby/object:Gem::Requirement
239
239
  none: false
240
240
  requirements:
241
241
  - - ! '>='
@@ -243,10 +243,10 @@ dependencies:
243
243
  version: '0'
244
244
  type: :development
245
245
  prerelease: false
246
- version_requirements: *2160159860
246
+ version_requirements: *2164688140
247
247
  - !ruby/object:Gem::Dependency
248
248
  name: pg
249
- requirement: &2160159440 !ruby/object:Gem::Requirement
249
+ requirement: &2164687720 !ruby/object:Gem::Requirement
250
250
  none: false
251
251
  requirements:
252
252
  - - ! '>='
@@ -254,7 +254,7 @@ dependencies:
254
254
  version: '0'
255
255
  type: :development
256
256
  prerelease: false
257
- version_requirements: *2160159440
257
+ version_requirements: *2164687720
258
258
  description: An earth-simulation environment with ActiveRecord models and data
259
259
  email: andy@rossmeissl.net
260
260
  executables: