earth 0.4.4 → 0.4.5

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 (59) hide show
  1. data/README.markdown +1 -1
  2. data/Rakefile +44 -16
  3. data/earth.gemspec +4 -8
  4. data/features/automobile_make_model_year_variant.feature +4 -4
  5. data/features/step_definitions/data_steps.rb +32 -0
  6. data/features/support/env.rb +6 -3
  7. data/features/support/imports/automobile_make_model_year_variant_bad.csv +1 -1
  8. data/features/support/imports/automobile_make_model_year_variant_good.csv +1 -1
  9. data/lib/earth/air/aircraft/data_miner.rb +1 -1
  10. data/lib/earth/air/aircraft_class/data_miner.rb +1 -1
  11. data/lib/earth/air/flight_distance_class/data_miner.rb +1 -1
  12. data/lib/earth/air/flight_seat_class/data_miner.rb +2 -2
  13. data/lib/earth/automobile/automobile_fuel/data_miner.rb +9 -2
  14. data/lib/earth/automobile/automobile_make/data_miner.rb +1 -1
  15. data/lib/earth/automobile/automobile_make_fleet_year/data_miner.rb +1 -1
  16. data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +2 -16
  17. data/lib/earth/automobile/automobile_make_model_year_variant.rb +0 -1
  18. data/lib/earth/automobile/automobile_size_class/data_miner.rb +2 -2
  19. data/lib/earth/automobile/automobile_size_class_year/data_miner.rb +1 -1
  20. data/lib/earth/automobile/automobile_type_fuel_control/data_miner.rb +1 -1
  21. data/lib/earth/automobile/automobile_type_fuel_year/data_miner.rb +1 -1
  22. data/lib/earth/automobile/automobile_type_fuel_year_control/data_miner.rb +1 -1
  23. data/lib/earth/automobile/automobile_type_year/data_miner.rb +1 -1
  24. data/lib/earth/automobile/data_miner.rb +0 -1
  25. data/lib/earth/automobile.rb +0 -1
  26. data/lib/earth/bus/bus_class/data_miner.rb +1 -1
  27. data/lib/earth/bus/bus_fuel/data_miner.rb +3 -3
  28. data/lib/earth/bus/bus_fuel_control/data_miner.rb +1 -1
  29. data/lib/earth/bus/bus_fuel_year_control/data_miner.rb +1 -1
  30. data/lib/earth/computation/computation_platform/data_miner.rb +1 -1
  31. data/lib/earth/computation/data_center_company/data_miner.rb +1 -1
  32. data/lib/earth/computation/server_type/data_miner.rb +1 -1
  33. data/lib/earth/computation/server_type_alias/data_miner.rb +1 -1
  34. data/lib/earth/diet/food_group/data_miner.rb +1 -1
  35. data/lib/earth/fuel/fuel/data_miner.rb +2 -2
  36. data/lib/earth/fuel/fuel_price/data_miner.rb +1 -1
  37. data/lib/earth/fuel/fuel_type/data_miner.rb +1 -1
  38. data/lib/earth/fuel/fuel_year/data_miner.rb +1 -1
  39. data/lib/earth/fuel/greenhouse_gas/data_miner.rb +1 -1
  40. data/lib/earth/hospitality/lodging_class/data_miner.rb +1 -1
  41. data/lib/earth/locality/census_division/data_miner.rb +2 -2
  42. data/lib/earth/locality/country/data_miner.rb +1 -1
  43. data/lib/earth/locality/egrid_subregion/data_miner.rb +1 -1
  44. data/lib/earth/locality/petroleum_administration_for_defense_district/data_miner.rb +1 -1
  45. data/lib/earth/locality/state/data_miner.rb +1 -1
  46. data/lib/earth/rail/rail_class/data_miner.rb +1 -1
  47. data/lib/earth/residence/air_conditioner_use/data_miner.rb +1 -1
  48. data/lib/earth/residence/residence_fuel_type/data_miner.rb +1 -1
  49. data/lib/earth/shipping/carrier/data_miner.rb +1 -1
  50. data/lib/earth/shipping/carrier_mode/data_miner.rb +1 -1
  51. data/lib/earth/shipping/shipment_mode/data_miner.rb +1 -1
  52. data/lib/earth/version.rb +1 -1
  53. data/spec/earth_spec.rb +2 -2
  54. metadata +38 -116
  55. data/features/automobile_fuel_type.feature +0 -34
  56. data/features/support/imports/automobile_fuel_type_bad.csv +0 -3
  57. data/features/support/imports/automobile_fuel_type_good.csv +0 -3
  58. data/lib/earth/automobile/automobile_fuel_type/data_miner.rb +0 -115
  59. data/lib/earth/automobile/automobile_fuel_type.rb +0 -17
data/README.markdown CHANGED
@@ -8,7 +8,7 @@ The data that these models represent can be pulled from http://data.brighterplan
8
8
 
9
9
  require 'earth'
10
10
  Earth.init :automobile, :locality
11
- ft = AutomobileFuelType.first
11
+ ft = AutomobileFuel.first
12
12
  ...
13
13
 
14
14
  You can also run data imports via the data_miner gem.
data/Rakefile CHANGED
@@ -5,23 +5,51 @@ Bundler::GemHelper.install_tasks
5
5
  require 'bueller'
6
6
  Bueller::Tasks.new
7
7
 
8
- begin
9
- require 'rake/rdoctask'
10
- Rake::RDocTask.new do |rdoc|
11
- rdoc.rdoc_dir = 'rdoc'
12
- rdoc.title = 'emitter'
13
- rdoc.options << '--line-numbers' << '--inline-source'
14
- rdoc.rdoc_files.include('README*')
15
- rdoc.rdoc_files.include('lib/**/*.rb')
8
+ task :console do
9
+ Earth.init :all
10
+
11
+ require 'irb'
12
+ ARGV.clear
13
+ IRB.start
14
+ end
15
+
16
+ desc 'Run all cucumber tests'
17
+ Cucumber::Rake::Task.new(:features) do |t|
18
+ if ENV['CUCUMBER_FORMAT']
19
+ t.cucumber_opts = "features --format #{ENV['CUCUMBER_FORMAT']}"
20
+ else
21
+ t.cucumber_opts = 'features --format pretty'
16
22
  end
17
- rescue LoadError
18
- puts "Rdoc is not available"
19
23
  end
20
24
 
21
- require 'sniff'
22
- require 'sniff/rake_tasks'
23
- Sniff::RakeTasks.define_tasks do |t|
24
- t.earth_domains = :all
25
- t.cucumber = true
26
- t.rspec = true
25
+ desc "Run cucumber tests with RCov"
26
+ Cucumber::Rake::Task.new(:features_with_coverage) do |t|
27
+ t.cucumber_opts = "features --format pretty"
28
+ t.rcov = true
29
+ t.rcov_opts = ['--exclude', 'features']
30
+ end
31
+
32
+ require 'rspec/core/rake_task'
33
+
34
+ desc "Run all examples"
35
+ RSpec::Core::RakeTask.new(:examples) do |c|
36
+ c.rspec_opts = '-Ispec'
37
+ end
38
+
39
+ desc "Run specs with RCov"
40
+ RSpec::Core::RakeTask.new(:examples_with_coverage) do |t|
41
+ t.rcov = true
42
+ t.rcov_opts = ['--exclude', 'spec']
43
+ t.rspec_opts = '-Ispec'
44
+ end
45
+
46
+ task :test => [:features, :examples]
47
+ task :default => :test
48
+
49
+ require 'earth/version'
50
+ Rake::RDocTask.new do |rdoc|
51
+ rdoc.rdoc_dir = 'rdoc'
52
+ rdoc.title = "#{gemname} #{Earth::VERSION}"
53
+ rdoc.rdoc_files.include('README*')
54
+ rdoc.rdoc_files.include('lib/**/*.rb')
27
55
  end
data/earth.gemspec CHANGED
@@ -4,8 +4,8 @@ require "earth/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "earth"
7
- s.version = "0.4.4"
8
- s.date = "2011-02-25"
7
+ s.version = Earth::VERSION
8
+ s.date = "2011-03-04"
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.authors = ["Seamus Abshere", "Derek Kastner", "Andy Rossmeissl"]
11
11
  s.email = %q{andy@rossmeissl.net}
@@ -28,14 +28,10 @@ Gem::Specification.new do |s|
28
28
  s.rubygems_version = %q{1.3.7}
29
29
 
30
30
  s.add_runtime_dependency 'activerecord', '~> 3'
31
+ s.add_runtime_dependency 'cohort_scope', '>= 0.0.7'
31
32
  s.add_runtime_dependency 'data_miner', '~> 1.1.1'
32
- s.add_runtime_dependency 'errata'
33
33
  s.add_runtime_dependency 'falls_back_on', '>= 0.0.3'
34
- s.add_runtime_dependency 'geokit', '>= 1.5.0'
35
34
  s.add_runtime_dependency 'geokit-rails'
36
- s.add_runtime_dependency 'cohort_scope', '>= 0.0.7'
37
- s.add_runtime_dependency 'conversions', '>= 1.4.5'
38
- s.add_runtime_dependency 'weighted_average', '>= 0.0.4'
39
35
  s.add_runtime_dependency 'loose_tight_dictionary', '>= 0.0.8'
40
- s.add_development_dependency 'sniff', '~> 0.6.1'
36
+ s.add_runtime_dependency 'weighted_average', '>= 0.0.4'
41
37
  end
@@ -9,9 +9,9 @@ Feature: Data import for AutomobileMakeModelYearVariant
9
9
  Then the verification should be successful
10
10
 
11
11
  # FIXME TODO
12
- # Scenario: Successfully verifying that fuel type code is found in AutomobileFuelType
12
+ # Scenario: Successfully verifying that fuel type code is found in AutomobileFuel
13
13
  # Given a "AutomobileMakeModelYearVariant" data import fetches results listed in "automobile_make_model_year_variant_good"
14
- # When a data import verifies "Fuel type code should be found in AutomobileFuelType"
14
+ # When a data import verifies "Fuel type code should be found in AutomobileFuel"
15
15
  # Then the verification should be successful
16
16
 
17
17
  Scenario: Successfully verifying that fuel efficiencies are greater than zero
@@ -30,9 +30,9 @@ Feature: Data import for AutomobileMakeModelYearVariant
30
30
  Then the verification should not be successful
31
31
 
32
32
  # FIXME TODO
33
- # Scenario: Failing to verify that fuel type code is found in AutomobileFuelType
33
+ # Scenario: Failing to verify that fuel type code is found in AutomobileFuel
34
34
  # Given a "AutomobileMakeModelYearVariant" data import fetches results listed in "automobile_make_model_year_variant_bad"
35
- # When a data import verifies "Fuel type code should be found in AutomobileFuelType"
35
+ # When a data import verifies "Fuel type code should be found in AutomobileFuel"
36
36
  # Then the verification should not be successful
37
37
 
38
38
  Scenario: Failing to verify that fuel efficiencies are greater than zero
@@ -0,0 +1,32 @@
1
+ Given /^a "([^\"]*)" data import fetches results listed in "(.*)"$/ do |model, file_name|
2
+ @data_import_model = model.constantize
3
+ table_name = @data_import_model.table_name
4
+
5
+ fixture_path = File.expand_path("features/support/imports/#{file_name}", Dir.pwd)
6
+
7
+ fixture = Fixtures.new @data_import_model.connection, table_name, model, fixture_path
8
+
9
+ @data_import_model.connection.transaction(:requires_new => true) do
10
+ fixture.delete_existing_fixtures
11
+ fixture.insert_fixtures
12
+ end
13
+ end
14
+
15
+ When /^a data import verifies "(.*)"$/ do |verification_step_name|
16
+ @verification = @data_import_model.data_miner_config.steps.find { |f|
17
+ f.respond_to?(:description) and f.description == verification_step_name
18
+ }
19
+ @verification_result = begin
20
+ @verification.run
21
+ true
22
+ rescue => e
23
+ false
24
+ end
25
+ end
26
+
27
+ Then /^the verification should be successful$/ do
28
+ @verification_result.should be_true
29
+ end
30
+ Then /^the verification should not be successful$/ do
31
+ @verification_result.should be_false
32
+ end
@@ -4,7 +4,10 @@ require 'bundler'
4
4
  Bundler.setup
5
5
 
6
6
  require 'data_miner'
7
- DataMiner.logger = Logger.new(nil)
7
+ DataMiner.logger = Logger.new nil
8
8
 
9
- require 'sniff'
10
- Sniff.init File.expand_path('../..', File.dirname(__FILE__)), :earth => :all, :cucumber => true
9
+ require 'active_record'
10
+ require 'sqlite3'
11
+ ActiveRecord::Base.logger = Logger.new nil
12
+ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
13
+ Earth.init :all, :apply_schemas => true
@@ -1,3 +1,3 @@
1
- row_hash,year,fuel_type_code,fuel_efficiency,fuel_efficiency_city,fuel_efficiency_highway,fuel_efficiency_units,fuel_efficiency_city_units,fuel_efficiency_highway_units
1
+ row_hash,year,fuel_code,fuel_efficiency,fuel_efficiency_city,fuel_efficiency_highway,fuel_efficiency_units,fuel_efficiency_city_units,fuel_efficiency_highway_units
2
2
  a1,2000,D,12.0,10.0,15.0,kilometres_per_litre,kilometres_per_litre,kilometres_per_litre
3
3
  b2,2011,P,0,-10,0,foo,bar
@@ -1,3 +1,3 @@
1
- row_hash,year,fuel_type_code,fuel_efficiency,fuel_efficiency_city,fuel_efficiency_highway,fuel_efficiency_units,fuel_efficiency_city_units,fuel_efficiency_highway_units
1
+ row_hash,year,fuel_code,fuel_efficiency,fuel_efficiency_city,fuel_efficiency_highway,fuel_efficiency_units,fuel_efficiency_city_units,fuel_efficiency_highway_units
2
2
  a1,2000,D,12.0,10.0,15.0,kilometres_per_litre,kilometres_per_litre,kilometres_per_litre
3
3
  b2,2010,X,20.5,20.0,21.0,kilometres_per_litre,kilometres_per_litre,kilometres_per_litre
@@ -108,7 +108,7 @@ Aircraft.class_eval do
108
108
  end
109
109
 
110
110
  import "a curated list of aircraft",
111
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDJFblR4MDE1RGtnLVM1S2JHRGZpT3c&hl=en&single=true&gid=0&output=csv' do
111
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDJFblR4MDE1RGtnLVM1S2JHRGZpT3c&hl=en&gid=0&output=csv' do
112
112
  key 'bp_code'
113
113
  store 'icao_code', :nullify => true
114
114
  store 'bts_code', :nullify => true
@@ -11,7 +11,7 @@ AircraftClass.class_eval do
11
11
  end
12
12
 
13
13
  import "a list of Brighter Planet-defined aircraft classes",
14
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGNBbHFibmxJUFprQkUwZHp6VU51Smc&hl=en&single=true&gid=0&output=csv' do
14
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGNBbHFibmxJUFprQkUwZHp6VU51Smc&hl=en&gid=0&output=csv' do
15
15
  key 'code', :field_name => 'aircraft_class_code'
16
16
  store 'name'
17
17
  end
@@ -7,7 +7,7 @@ FlightDistanceClass.class_eval do
7
7
  end
8
8
 
9
9
  import "a list of distance classes taken from the WRI business travel tool and UK DEFRA/DECC GHG Conversion Factors for Company Reporting",
10
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFBKM0xWaUhKVkxDRmdBVkE3VklxY2c&hl=en&single=true&gid=0&output=csv' do
10
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFBKM0xWaUhKVkxDRmdBVkE3VklxY2c&hl=en&gid=0&output=csv' do
11
11
  key 'name'
12
12
  store 'distance', :units_field_name => 'distance_units'
13
13
  end
@@ -7,8 +7,8 @@ FlightSeatClass.class_eval do
7
7
  float 'multiplier'
8
8
  end
9
9
 
10
- import "a list of Brighter Planet-defined seat classes and pre-calculated multipliers",
11
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdG5zSER1QmFVVkhNcTM2cmhCMEJtWVE&hl=en&single=true&gid=0&output=csv' do
10
+ import "seat classes used in the WRI GHG Protocol calculation tools",
11
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdG5zSER1QmFVVkhNcTM2cmhCMEJtWVE&hl=en&gid=0&output=csv' do
12
12
  key 'name'
13
13
  store 'distance_class_name'
14
14
  store 'seat_class_name'
@@ -20,10 +20,12 @@ AutomobileFuel.class_eval do
20
20
  string 'n2o_emission_factor_units'
21
21
  float 'hfc_emission_factor'
22
22
  string 'hfc_emission_factor_units'
23
+ float 'emission_factor' # DEPRECATED but motorcycle needs this
24
+ string 'emission_factor_units' # DEPRECATED but motorcycle needs this
23
25
  end
24
26
 
25
27
  import "a list of pure automobile fuels",
26
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdE9xTEdueFM2R0diNTgxUlk1QXFSb2c&output=csv' do
28
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdE9xTEdueFM2R0diNTgxUlk1QXFSb2c&gid=0&output=html' do
27
29
  key 'name'
28
30
  store 'code'
29
31
  store 'base_fuel_name'
@@ -32,7 +34,7 @@ AutomobileFuel.class_eval do
32
34
  end
33
35
 
34
36
  import "a list of blended automobile fuels",
35
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEswNGIxM0U4U0N1UUppdWw2ejJEX0E&output=csv' do
37
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEswNGIxM0U4U0N1UUppdWw2ejJEX0E&gid=0&output=csv' do
36
38
  key 'name'
37
39
  store 'code'
38
40
  store 'base_fuel_name'
@@ -96,6 +98,11 @@ AutomobileFuel.class_eval do
96
98
  end
97
99
  end
98
100
 
101
+ process "Derive emission factor" do
102
+ update_all "emission_factor = co2_emission_factor + ch4_emission_factor + n2o_emission_factor + hfc_emission_factor,
103
+ emission_factor_units = 'kilograms_co2e_per_litre'"
104
+ end
105
+
99
106
  # FIXME TODO verify code somehow
100
107
 
101
108
  %w{ base_fuel_name distance_key ef_key }.each do |attribute|
@@ -23,7 +23,7 @@ AutomobileMake.class_eval do
23
23
  # sabshere 1/31/11 add Avanti, DaimlerChrysler, IHC, Tesla, etc.
24
24
  process "Derive extra manufacturer names from CAFE data" do
25
25
  AutomobileMakeFleetYear.run_data_miner!
26
- INSERT IGNORE %{INTO automobile_makes(name)
26
+ INSERT_IGNORE %{INTO automobile_makes(name)
27
27
  SELECT DISTINCT automobile_make_fleet_years.make_name
28
28
  FROM automobile_make_fleet_years
29
29
  }
@@ -12,7 +12,7 @@ AutomobileMakeFleetYear.class_eval do
12
12
  end
13
13
 
14
14
  import "annual corporate average fuel economy data for domestic and imported vehicle fleets from the NHTSA",
15
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEdXWXB6dkVLWkowLXhYSFVUT01sS2c&hl=en&single=true&gid=0&output=csv',
15
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEdXWXB6dkVLWkowLXhYSFVUT01sS2c&hl=en&gid=0&output=csv',
16
16
  :errata => { 'url' => 'http://static.brighterplanet.com/science/data/transport/automobiles/make_fleet_years/errata.csv' },
17
17
  :select => lambda { |row| row['volume'].to_i > 0 } do
18
18
  key 'name', :synthesize => lambda { |row| [ row['manufacturer_name'], row['year_content'], row['fleet'][2,2] ].join ' ' }
@@ -271,7 +271,6 @@ AutomobileMakeModelYearVariant.class_eval do
271
271
  string 'fuel_efficiency_city_units'
272
272
  float 'fuel_efficiency_highway'
273
273
  string 'fuel_efficiency_highway_units'
274
- string 'fuel_type_code'
275
274
  string 'fuel_code'
276
275
  string 'transmission'
277
276
  string 'drive'
@@ -315,7 +314,6 @@ AutomobileMakeModelYearVariant.class_eval do
315
314
  store 'name', :field_name => 'model'
316
315
  store 'make_name', :field_name => 'make'
317
316
  store 'year'
318
- store 'fuel_type_code', :field_name => 'fuel_type'
319
317
  store 'fuel_code', :field_name => 'fuel_type'
320
318
  store 'fuel_efficiency_highway', :static => nil, :units => :kilometres_per_litre
321
319
  store 'fuel_efficiency_city', :static => nil, :units => :kilometres_per_litre
@@ -354,7 +352,6 @@ AutomobileMakeModelYearVariant.class_eval do
354
352
  key 'row_hash'
355
353
  store 'name', :field_name => 'model'
356
354
  store 'make_name', :field_name => 'make'
357
- store 'fuel_type_code', :field_name => 'fl'
358
355
  store 'fuel_code', :field_name => 'fl'
359
356
  store 'fuel_efficiency_highway', :static => nil, :units => :kilometres_per_litre
360
357
  store 'fuel_efficiency_city', :static => nil, :units => :kilometres_per_litre
@@ -389,7 +386,6 @@ AutomobileMakeModelYearVariant.class_eval do
389
386
  key 'row_hash'
390
387
  store 'name', :field_name => 'model'
391
388
  store 'make_name', :field_name => 'make'
392
- store 'fuel_type_code', :field_name => 'FUEL TYPE'
393
389
  store 'fuel_code', :field_name => 'FUEL TYPE'
394
390
  store 'fuel_efficiency_highway', :static => nil, :units => :kilometres_per_litre
395
391
  store 'fuel_efficiency_city', :static => nil, :units => :kilometres_per_litre
@@ -420,7 +416,6 @@ AutomobileMakeModelYearVariant.class_eval do
420
416
  key 'row_hash'
421
417
  store 'name', :field_name => 'model'
422
418
  store 'make_name', :field_name => 'make'
423
- store 'fuel_type_code'
424
419
  store 'fuel_code', :field_name => 'fuel_type_code'
425
420
  store 'fuel_efficiency_highway', :static => nil, :units => :kilometres_per_litre
426
421
  store 'fuel_efficiency_city', :static => nil, :units => :kilometres_per_litre
@@ -479,17 +474,8 @@ AutomobileMakeModelYearVariant.class_eval do
479
474
  end
480
475
  end
481
476
 
482
- # FIXME TODO
483
- # verify "Fuel type code should be found in AutomobileFuelType" do
484
- # valid_codes = AutomobileFuelType.all.map(&:code)
485
- # puts valid_codes
486
- # AutomobileMakeModelVariant.all.each do |variant|
487
- # unless valid_codes.include? variant.fuel_type_code
488
- # raise "Invalid fuel type code for AutomobileMakeModelYearVariant #{variant.row_hash}: #{variant.fuel_type_code} (should be found in AutomobileFuelType)"
489
- # end
490
- # end
491
- # end
492
- #
477
+ # FIXME TODO verify fuel code appears in AutomobileFuel
478
+
493
479
  verify "Fuel efficiencies should be greater than zero" do
494
480
  AutomobileMakeModelYearVariant.all.each do |variant|
495
481
  [:fuel_efficiency, :fuel_efficiency_city, :fuel_efficiency_highway].each do |type|
@@ -4,7 +4,6 @@ class AutomobileMakeModelYearVariant < ActiveRecord::Base
4
4
  belongs_to :make, :class_name => 'AutomobileMake', :foreign_key => 'make_name'
5
5
  belongs_to :make_model, :class_name => 'AutomobileMakeModel', :foreign_key => 'make_model_name'
6
6
  belongs_to :make_model_year, :class_name => 'AutomobileMakeModelYear', :foreign_key => 'make_model_year_name'
7
- belongs_to :fuel_type, :class_name => 'AutomobileFuelType', :foreign_key => 'fuel_type_code'
8
7
  belongs_to :fuel, :class_name => 'AutomobileFuel', :foreign_key => 'fuel_code', :primary_key => 'code'
9
8
 
10
9
  data_miner do
@@ -17,7 +17,7 @@ AutomobileSizeClass.class_eval do
17
17
 
18
18
  # FIXME TODO pull this from AutomobileSizeClassYear
19
19
  import "a list of size classes and pre-calculated fuel efficiencies",
20
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHlRUE5IcWlrRENhN0EtUldPTy1rX1E&single=true&gid=0&output=csv' do
20
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHlRUE5IcWlrRENhN0EtUldPTy1rX1E&gid=0&output=csv' do
21
21
  key 'name'
22
22
  store 'type_name'
23
23
  store 'fuel_efficiency_city', :units_field_name => 'fuel_efficiency_city_units'
@@ -35,7 +35,7 @@ AutomobileSizeClass.class_eval do
35
35
  end
36
36
 
37
37
  import "pre-calculated fuel efficiency multipliers",
38
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGt2NnhXLXUxNFRJSzczU3BkSHB3enc&hl=en&single=true&gid=0&output=csv' do
38
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGt2NnhXLXUxNFRJSzczU3BkSHB3enc&hl=en&gid=0&output=csv' do
39
39
  key 'name'
40
40
  store 'hybrid_fuel_efficiency_city_multiplier'
41
41
  store 'hybrid_fuel_efficiency_highway_multiplier'
@@ -12,7 +12,7 @@ AutomobileSizeClassYear.class_eval do
12
12
  end
13
13
 
14
14
  import "automobile size class year fuel efficiencies from the 2010 EPA Fuel Economy Trends report",
15
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDZOLWdDdlZja04xZkJYc3NjeGxQamc&hl=en&single=true&gid=0&output=csv' do
15
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDZOLWdDdlZja04xZkJYc3NjeGxQamc&hl=en&gid=0&output=csv' do
16
16
  key 'name'
17
17
  store 'size_class_name'
18
18
  store 'year'
@@ -12,7 +12,7 @@ AutomobileTypeFuelControl.class_eval do
12
12
  end
13
13
 
14
14
  import "automobile type fuel control data derived from the 2010 EPA GHG Inventory",
15
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEloSTU5YUNOUXRFRUcxWHlTUi1GMkE&hl=en&output=csv' do
15
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEloSTU5YUNOUXRFRUcxWHlTUi1GMkE&hl=en&gid=0&output=csv' do
16
16
  key 'name'
17
17
  store 'type_name'
18
18
  store 'fuel_common_name'
@@ -75,7 +75,7 @@ AutomobileTypeFuelYear.class_eval do
75
75
  end
76
76
 
77
77
  import "fuel consumption derived from the 2010 EPA GHG Inventory",
78
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHBCMFhLRTFTZENsd0dPUGUyYlJna0E&hl=en&output=csv' do
78
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHBCMFhLRTFTZENsd0dPUGUyYlJna0E&hl=en&gid=0&output=csv' do
79
79
  key 'name'
80
80
  store 'fuel_consumption', :units_field_name => 'fuel_consumption_units'
81
81
  end
@@ -12,7 +12,7 @@ AutomobileTypeFuelYearControl.class_eval do
12
12
  end
13
13
 
14
14
  import "automobile type fuel year control data derived from the 2010 EPA GHG Inventory",
15
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGpQV2xMdlZkV1JzVlVTeU5ZalF6elE&hl=en&output=csv' do
15
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGpQV2xMdlZkV1JzVlVTeU5ZalF6elE&hl=en&gid=0&output=csv' do
16
16
  key 'name'
17
17
  store 'type_name'
18
18
  store 'fuel_common_name'
@@ -11,7 +11,7 @@ AutomobileTypeYear.class_eval do
11
11
  end
12
12
 
13
13
  import "automobile type year air conditioning emissions derived from the 2010 EPA GHG Inventory",
14
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFoyTWhDeHpndTV5Ny1aX0sxR1ljSFE&hl=en&output=csv' do
14
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFoyTWhDeHpndTV5Ny1aX0sxR1ljSFE&hl=en&gid=0&output=csv' do
15
15
  key 'name'
16
16
  store 'type_name'
17
17
  store 'year'
@@ -1,5 +1,4 @@
1
1
  require 'earth/automobile/automobile_fuel/data_miner'
2
- require 'earth/automobile/automobile_fuel_type/data_miner'
3
2
  require 'earth/automobile/automobile_make/data_miner'
4
3
  require 'earth/automobile/automobile_make_fleet_year/data_miner'
5
4
  require 'earth/automobile/automobile_make_year/data_miner'
@@ -1,5 +1,4 @@
1
1
  require 'earth/automobile/automobile_fuel'
2
- require 'earth/automobile/automobile_fuel_type'
3
2
  require 'earth/automobile/automobile_make'
4
3
  require 'earth/automobile/automobile_make_fleet_year'
5
4
  require 'earth/automobile/automobile_make_year'
@@ -30,7 +30,7 @@ BusClass.class_eval do
30
30
  end
31
31
 
32
32
  import "a list of bus classes and pre-calculated trip and fuel use characteristics",
33
- :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdGRsSnJoS1hraGJvR012cDROWXFPbVE&output=csv' do
33
+ :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdGRsSnJoS1hraGJvR012cDROWXFPbVE&gid=0&output=csv' do
34
34
  key 'name'
35
35
  store 'distance', :units_field_name => 'distance_units'
36
36
  store 'passengers'
@@ -22,13 +22,13 @@ BusFuel.class_eval do
22
22
  end
23
23
 
24
24
  import "a list of bus fuels without emission factors",
25
- :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdGNscUdpbkdBUmJkTlFxdEtfSEdJS2c&output=csv' do
25
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGNscUdpbkdBUmJkTlFxdEtfSEdJS2c&gid=0&output=csv' do
26
26
  key 'name'
27
27
  store 'fuel_name'
28
28
  end
29
29
 
30
30
  import "a list of bus fuels and their emission factors",
31
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHAtZ1YyWmxuS1JWUzZYSVhhdUViYmc&output=csv' do
31
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHAtZ1YyWmxuS1JWUzZYSVhhdUViYmc&gid=0&output=csv' do
32
32
  key 'name'
33
33
  store 'fuel_name'
34
34
  store 'ch4_emission_factor', :units_field_name => 'ch4_emission_factor_units'
@@ -36,7 +36,7 @@ BusFuel.class_eval do
36
36
  end
37
37
 
38
38
  import "energy contents for compressed/liquified natural gas fuels",
39
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDFfdHMycVB6dTkyUFFNM0x4b19TQVE&output=csv' do
39
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDFfdHMycVB6dTkyUFFNM0x4b19TQVE&gid=0&output=csv' do
40
40
  key 'name'
41
41
  store 'energy_content', :units_field_name => 'energy_content_units'
42
42
  end
@@ -11,7 +11,7 @@ BusFuelControl.class_eval do
11
11
  end
12
12
 
13
13
  import "a list of bus fuel controls",
14
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEw1QW80VVJhaXRkUURQSFhHczNyVWc&output=csv' do
14
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEw1QW80VVJhaXRkUURQSFhHczNyVWc&gid=0&output=csv' do
15
15
  key 'name'
16
16
  store 'bus_fuel_name'
17
17
  store 'control'
@@ -14,7 +14,7 @@ BusFuelYearControl.class_eval do
14
14
  end
15
15
 
16
16
  import "a list of bus fuel year controls",
17
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGhHQkZPZW4zbXYzZ3NkYThBWnQ2QXc&output=csv' do
17
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGhHQkZPZW4zbXYzZ3NkYThBWnQ2QXc&gid=0&output=csv' do
18
18
  key 'name'
19
19
  store 'bus_fuel_name'
20
20
  store 'year'
@@ -6,7 +6,7 @@ ComputationPlatform.class_eval do
6
6
  end
7
7
 
8
8
  import "a list of computation platforms and the data center company they use",
9
- :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdG5zVER5THhXRlE4N0RXTklVaS03Ymc&single=true&gid=0&output=csv' do
9
+ :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdG5zVER5THhXRlE4N0RXTklVaS03Ymc&gid=0&gid=0&output=csv' do
10
10
  key 'name'
11
11
  store 'data_center_company_name'
12
12
  end
@@ -6,7 +6,7 @@ DataCenterCompany.class_eval do
6
6
  end
7
7
 
8
8
  import "a list of data center companies and their power usage effectiveness",
9
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFlxZVZLai01WWJOOTFiaUd1blF6VkE&hl=en&single=true&gid=0&output=csv' do
9
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFlxZVZLai01WWJOOTFiaUd1blF6VkE&hl=en&gid=0&output=csv' do
10
10
  key 'name'
11
11
  store 'power_usage_effectiveness'
12
12
  end
@@ -12,7 +12,7 @@ ServerType.class_eval do
12
12
  end
13
13
 
14
14
  import "a list of server types and their characteristics",
15
- :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGExaW1ic2c0d2s1ZmpzeUdOa2kyRlE&hl=en&single=true&gid=0&output=csv' do
15
+ :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGExaW1ic2c0d2s1ZmpzeUdOa2kyRlE&hl=en&gid=0&output=csv' do
16
16
  key 'name'
17
17
  store 'data_center_company_name'
18
18
  store 'cpu', :units_field_name => 'cpu_units'
@@ -7,7 +7,7 @@ ServerTypeAlias.class_eval do
7
7
  end
8
8
 
9
9
  import "a list of server type aliases and their characteristics",
10
- :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdDdkVlBzSUYweFN0OHBreEN6YTdTZ3c&hl=en&single=true&gid=0&output=csv' do
10
+ :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdDdkVlBzSUYweFN0OHBreEN6YTdTZ3c&hl=en&gid=0&output=csv' do
11
11
  key 'name', :field_name => 'alias'
12
12
  store 'server_type_name'
13
13
  store 'platform_name'
@@ -16,7 +16,7 @@ FoodGroup.class_eval do
16
16
  end
17
17
 
18
18
  import "energy and units",
19
- :url => 'http://spreadsheets.google.com/pub?key=trkBEq5oFnUQE76gQ6VpQgw' do
19
+ :url => 'http://spreadsheets.google.com/pub?key=trkBEq5oFnUQE76gQ6VpQgw&gid=0&output=csv' do
20
20
  key 'name'
21
21
  store 'energy', :units => 'unknown' #FIXME this needs to be "kilocalories per" and then whatever the suggested imperial measurement is
22
22
  store 'suggested_imperial_measurement', :field_name => 'friendly_units'
@@ -24,7 +24,7 @@ Fuel.class_eval do
24
24
  end
25
25
 
26
26
  import "fuels with non-variable characteristics",
27
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGJmYkdtajZyV3Byb0lrd21xLVhXUGc&hl=en&output=csv' do
27
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGJmYkdtajZyV3Byb0lrd21xLVhXUGc&hl=en&gid=0&output=csv' do
28
28
  key 'name'
29
29
  store 'energy_content', :units_field_name => 'energy_content_units'
30
30
  store 'carbon_content', :units_field_name => 'carbon_content_units'
@@ -33,7 +33,7 @@ Fuel.class_eval do
33
33
  end
34
34
 
35
35
  import "densities for aircraft fuels",
36
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHBjTVE4NmRlc05iUHVZR1E3eEJwOGc&hl=en&output=csv' do
36
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHBjTVE4NmRlc05iUHVZR1E3eEJwOGc&hl=en&gid=0&output=csv' do
37
37
  key 'name'
38
38
  store 'density', :units_field_name => 'density_units'
39
39
  end
@@ -11,7 +11,7 @@ FuelPrice.class_eval do
11
11
  end
12
12
 
13
13
  import 'fuel prices derived from the EIA',
14
- :url => 'http://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHlSdXJoOFB5aEpHenJQbTVJdS1pMVE',
14
+ :url => 'http://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHlSdXJoOFB5aEpHenJQbTVJdS1pMVE&gid=0&output=csv',
15
15
  :select => lambda { |row| row['fuel_type_name'].present? } do
16
16
  key 'name', :field_name => 'fuel_type_name'
17
17
  store 'price', :units_field_name => 'price_units'
@@ -28,7 +28,7 @@ FuelType.class_eval do
28
28
  # end
29
29
 
30
30
  import "a list of fuels and their emission factors and densities",
31
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDR3RjlTcWlsLTc2TzQ0cERTMElJbHc&single=true&gid=0&output=csv' do
31
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdDR3RjlTcWlsLTc2TzQ0cERTMElJbHc&gid=0&output=csv' do
32
32
  key 'name', :field_name => 'fuel'
33
33
  store 'emission_factor', :units_field_name => 'emission_factor_units'
34
34
  store 'average_purchase_volume', :units_field_name => 'average_purchase_volume_units'
@@ -17,7 +17,7 @@ FuelYear.class_eval do
17
17
  end
18
18
 
19
19
  import "fuels with annually variable characteristics, derived from the 2010 EPA GHG Inventory",
20
- :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdFZVSlZ3SUZsTzZLVTB5bVk5THdBN2c&output=csv' do
20
+ :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdFZVSlZ3SUZsTzZLVTB5bVk5THdBN2c&gid=0&output=csv' do
21
21
  key 'name'
22
22
  store 'fuel_name'
23
23
  store 'year'
@@ -10,7 +10,7 @@ GreenhouseGas.class_eval do
10
10
  end
11
11
 
12
12
  import "greenhouse gas global warming potentials taken from the IPCC AR4",
13
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdE1tUjBwS1ZHZnBUUG1XcVpkOTVHOVE&single=true&gid=0&output=csv' do
13
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdE1tUjBwS1ZHZnBUUG1XcVpkOTVHOVE&gid=0&output=csv' do
14
14
  key 'name'
15
15
  store 'abbreviation'
16
16
  store 'ipcc_report'