earth 0.4.9 → 0.4.10
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.
- data/Rakefile +5 -1
- data/bin/earth_tester.rb +32 -0
- data/earth.gemspec +5 -5
- data/features/automobile_make_model_year_variant.feature +4 -4
- data/features/support/imports/automobile_make_model_year_variant_bad.csv +1 -1
- data/features/support/imports/automobile_make_model_year_variant_good.csv +1 -1
- data/lib/earth.rb +2 -3
- data/lib/earth/automobile/automobile_make_model/data_miner.rb +3 -2
- data/lib/earth/automobile/automobile_make_model_year/data_miner.rb +4 -3
- data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +8 -7
- data/lib/earth/locality/country.rb +0 -9
- data/lib/earth/locality/country/data_miner.rb +2 -2
- data/lib/earth/pet/breed_gender/data_miner.rb +1 -0
- data/lib/earth/residence/clothes_machine_use/data_miner.rb +1 -1
- data/lib/earth/residence/dishwasher_use/data_miner.rb +1 -1
- data/lib/earth/residence/residence_fuel_price/data_miner.rb +36 -31
- data/lib/earth/version.rb +1 -1
- data/spec/earth/automobile/automobile_type_fuel_year_age_spec.rb +1 -1
- metadata +33 -80
data/Rakefile
CHANGED
@@ -34,7 +34,11 @@ end
|
|
34
34
|
require 'rspec/core/rake_task'
|
35
35
|
desc "Run all examples"
|
36
36
|
RSpec::Core::RakeTask.new(:examples) do |c|
|
37
|
-
|
37
|
+
if ENV['RSPEC_FORMAT']
|
38
|
+
c.rspec_opts = "-Ispec --format #{ENV['RSPEC_FORMAT']}"
|
39
|
+
else
|
40
|
+
c.rspec_opts = '-Ispec'
|
41
|
+
end
|
38
42
|
end
|
39
43
|
|
40
44
|
desc "Run specs with RCov"
|
data/bin/earth_tester.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
unless RUBY_VERSION >= '1.9'
|
4
|
+
require 'rubygems'
|
5
|
+
end
|
6
|
+
|
7
|
+
if File.exist?(File.join(Dir.pwd, 'earth.gemspec'))
|
8
|
+
require 'bundler'
|
9
|
+
Bundler.setup
|
10
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
11
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'active_support/all'
|
15
|
+
require 'active_record'
|
16
|
+
|
17
|
+
ActiveRecord::Schema.verbose = false
|
18
|
+
begin
|
19
|
+
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
|
20
|
+
rescue ArgumentError
|
21
|
+
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :dbfile => ':memory:')
|
22
|
+
end
|
23
|
+
|
24
|
+
require 'earth'
|
25
|
+
|
26
|
+
Earth.init :load_data_miner => true, :apply_schemas => true
|
27
|
+
|
28
|
+
if ARGV[0].present?
|
29
|
+
eval ARGV[0]
|
30
|
+
else
|
31
|
+
$stderr.puts "Usage: earth_tester.rb 'ResidenceFuelPrice.run_data_miner!' (Note single quotes)"
|
32
|
+
end
|
data/earth.gemspec
CHANGED
@@ -27,12 +27,12 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.require_paths = ["lib"]
|
28
28
|
s.rubygems_version = %q{1.3.7}
|
29
29
|
|
30
|
-
s.add_runtime_dependency 'cohort_scope', '
|
31
|
-
s.add_runtime_dependency 'data_miner'
|
32
|
-
s.add_runtime_dependency 'falls_back_on'
|
30
|
+
s.add_runtime_dependency 'cohort_scope', '>=0.2.0'
|
31
|
+
s.add_runtime_dependency 'data_miner'
|
32
|
+
s.add_runtime_dependency 'falls_back_on'
|
33
|
+
s.add_runtime_dependency 'fixed_width'
|
33
34
|
s.add_runtime_dependency 'geokit-rails'
|
34
|
-
s.add_runtime_dependency '
|
35
|
-
s.add_runtime_dependency 'weighted_average', '~> 0.0.6'
|
35
|
+
s.add_runtime_dependency 'weighted_average'
|
36
36
|
s.add_development_dependency 'bundler'
|
37
37
|
s.add_development_dependency 'bueller'
|
38
38
|
s.add_development_dependency 'cucumber'
|
@@ -3,9 +3,9 @@ Feature: Data import for AutomobileMakeModelYearVariant
|
|
3
3
|
I want to import MakeModelYearVariant data
|
4
4
|
So that I can perform variant-based calculations
|
5
5
|
|
6
|
-
Scenario: Successfully verifying that year is from 1985 to
|
6
|
+
Scenario: Successfully verifying that year is from 1985 to 2011
|
7
7
|
Given a "AutomobileMakeModelYearVariant" data import fetches results listed in "automobile_make_model_year_variant_good"
|
8
|
-
When a data import verifies "Year should be from 1985 to
|
8
|
+
When a data import verifies "Year should be from 1985 to 2011"
|
9
9
|
Then the verification should be successful
|
10
10
|
|
11
11
|
# FIXME TODO
|
@@ -24,9 +24,9 @@ Feature: Data import for AutomobileMakeModelYearVariant
|
|
24
24
|
When a data import verifies "Fuel efficiency units should be kilometres per litre"
|
25
25
|
Then the verification should be successful
|
26
26
|
|
27
|
-
Scenario: Failing to verify that year is from 1985 to
|
27
|
+
Scenario: Failing to verify that year is from 1985 to 2011
|
28
28
|
Given a "AutomobileMakeModelYearVariant" data import fetches results listed in "automobile_make_model_year_variant_bad"
|
29
|
-
When a data import verifies "Year should be from 1985 to
|
29
|
+
When a data import verifies "Year should be from 1985 to 2011"
|
30
30
|
Then the verification should not be successful
|
31
31
|
|
32
32
|
# FIXME TODO
|
@@ -1,3 +1,3 @@
|
|
1
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
|
-
b2,
|
3
|
+
b2,2012,P,0,-10,0,foo,bar
|
@@ -1,3 +1,3 @@
|
|
1
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
|
-
b2,
|
3
|
+
b2,2011,X,20.5,20.0,21.0,kilometres_per_litre,kilometres_per_litre,kilometres_per_litre
|
data/lib/earth.rb
CHANGED
@@ -6,8 +6,7 @@ require 'earth/inflectors'
|
|
6
6
|
require 'data_miner'
|
7
7
|
require 'falls_back_on'
|
8
8
|
require 'weighted_average'
|
9
|
-
require '
|
10
|
-
require 'slither'
|
9
|
+
require 'fixed_width'
|
11
10
|
require 'errata'
|
12
11
|
|
13
12
|
# The earth module is an interface for establishing a taps server (used to fetch
|
@@ -89,7 +88,7 @@ module Earth
|
|
89
88
|
if ActiveRecord::Base.connection.adapter_name.downcase == 'sqlite'
|
90
89
|
{}
|
91
90
|
else
|
92
|
-
{ :options => 'ENGINE=InnoDB default charset=utf8' }
|
91
|
+
{ :options => 'ENGINE=InnoDB default charset=utf8 collate=utf8_general_ci' }
|
93
92
|
end
|
94
93
|
end
|
95
94
|
|
@@ -7,6 +7,7 @@ AutomobileMakeModel.class_eval do
|
|
7
7
|
schema Earth.database_options do
|
8
8
|
string 'name' # make + model
|
9
9
|
string 'make_name'
|
10
|
+
string 'model_name' # model only
|
10
11
|
float 'fuel_efficiency_city'
|
11
12
|
string 'fuel_efficiency_city_units'
|
12
13
|
float 'fuel_efficiency_highway'
|
@@ -15,8 +16,8 @@ AutomobileMakeModel.class_eval do
|
|
15
16
|
|
16
17
|
process "Derive model names from automobile make model year variants" do
|
17
18
|
AutomobileMakeModelYearVariant.run_data_miner!
|
18
|
-
INSERT_IGNORE %{INTO automobile_make_models(name, make_name)
|
19
|
-
SELECT automobile_make_model_year_variants.make_model_name, automobile_make_model_year_variants.make_name FROM automobile_make_model_year_variants WHERE LENGTH(automobile_make_model_year_variants.
|
19
|
+
INSERT_IGNORE %{INTO automobile_make_models(name, make_name, model_name)
|
20
|
+
SELECT automobile_make_model_year_variants.make_model_name, automobile_make_model_year_variants.make_name, automobile_make_model_year_variants.name FROM automobile_make_model_year_variants WHERE LENGTH(automobile_make_model_year_variants.make_name) > 0 AND LENGTH(automobile_make_model_year_variants.name) > 0
|
20
21
|
}
|
21
22
|
end
|
22
23
|
|
@@ -5,8 +5,9 @@ AutomobileMakeModelYear.class_eval do
|
|
5
5
|
end
|
6
6
|
|
7
7
|
schema Earth.database_options do
|
8
|
-
string 'name'
|
8
|
+
string 'name' # make + model + year
|
9
9
|
string 'make_name'
|
10
|
+
string 'model_name'
|
10
11
|
string 'make_model_name'
|
11
12
|
integer 'year'
|
12
13
|
string 'make_year_name'
|
@@ -18,8 +19,8 @@ AutomobileMakeModelYear.class_eval do
|
|
18
19
|
|
19
20
|
process "Derive model year names from automobile make model year variants" do
|
20
21
|
AutomobileMakeModelYearVariant.run_data_miner!
|
21
|
-
INSERT_IGNORE %{INTO automobile_make_model_years(name, make_name, make_model_name, year, make_year_name)
|
22
|
-
SELECT automobile_make_model_year_variants.make_model_year_name, automobile_make_model_year_variants.make_name, automobile_make_model_year_variants.make_model_name, automobile_make_model_year_variants.year, automobile_make_model_year_variants.make_year_name FROM automobile_make_model_year_variants WHERE LENGTH(automobile_make_model_year_variants.make_name) > 0 AND LENGTH(automobile_make_model_year_variants.make_model_name) > 0
|
22
|
+
INSERT_IGNORE %{INTO automobile_make_model_years(name, make_name, model_name, make_model_name, year, make_year_name)
|
23
|
+
SELECT automobile_make_model_year_variants.make_model_year_name, automobile_make_model_year_variants.make_name, automobile_make_model_year_variants.name, automobile_make_model_year_variants.make_model_name, automobile_make_model_year_variants.year, automobile_make_model_year_variants.make_year_name FROM automobile_make_model_year_variants WHERE LENGTH(automobile_make_model_year_variants.make_name) > 0 AND LENGTH(automobile_make_model_year_variants.make_model_name) > 0
|
23
24
|
}
|
24
25
|
end
|
25
26
|
|
@@ -106,7 +106,7 @@ AutomobileMakeModelYearVariant.class_eval do
|
|
106
106
|
}
|
107
107
|
|
108
108
|
class AutomobileMakeModelYearVariant::ParserB
|
109
|
-
::
|
109
|
+
::FixedWidth.define :fuel_economy_guide_b do |d|
|
110
110
|
d.rows do |row|
|
111
111
|
row.trap { true } # there's only one section
|
112
112
|
row.column 'active_year' , 4, :type => :integer # ACTIVE YEAR
|
@@ -372,10 +372,10 @@ AutomobileMakeModelYearVariant.class_eval do
|
|
372
372
|
end
|
373
373
|
|
374
374
|
# 2006--2009
|
375
|
-
# FIXME TODO the 2007 FEG import fails: ArgumentError: unknown encoding name - WINDOWS-936
|
376
375
|
{
|
377
376
|
2006 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/06data.zip', :filename => '2006_FE_Guide_14-Nov-2005_download.csv' },
|
378
|
-
|
377
|
+
# the 07data.xls file provided by the government has a bad encoding
|
378
|
+
2007 => { :url => 'http://static.brighterplanet.com/science/data/transport/automobiles/fuel_economy_guide/2007_FE_guide_ALL_no_sales_May_01_2007.csv' },
|
379
379
|
2008 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/08data.zip', :filename => '2008_FE_guide_ALL_rel_dates_-no sales-for DOE-5-1-08.csv' },
|
380
380
|
2009 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/09data.zip', :filename => '2009_FE_guide for DOE_ALL-rel dates-no-sales-8-28-08download.csv' },
|
381
381
|
}.sort { |a, b| a.first <=> b.first }.each do |year, options|
|
@@ -407,7 +407,8 @@ AutomobileMakeModelYearVariant.class_eval do
|
|
407
407
|
|
408
408
|
# 2010--?
|
409
409
|
{
|
410
|
-
2010 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/10data.zip', :filename => '2010FE Guide for DOE-all rel dates-no-sales 4-9-10public.xls' }
|
410
|
+
2010 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/10data.zip', :filename => '2010FE Guide for DOE-all rel dates-no-sales 4-9-10public.xls' },
|
411
|
+
2011 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/11data.zip', :filename => '2011FEGuide-for DOE rel-dates before 1-23-2011-no-sales-01-10-2011public.xlsx' }
|
411
412
|
}.sort { |a, b| a.first <=> b.first }.each do |year, options|
|
412
413
|
import "#{ year } Fuel Economy Guide",
|
413
414
|
options.merge(:transform => { :class => AutomobileMakeModelYearVariant::ParserE, :year => year },
|
@@ -466,10 +467,10 @@ AutomobileMakeModelYearVariant.class_eval do
|
|
466
467
|
end
|
467
468
|
end
|
468
469
|
|
469
|
-
verify "Year should be from 1985 to
|
470
|
+
verify "Year should be from 1985 to 2011" do
|
470
471
|
AutomobileMakeModelYearVariant.all.each do |variant|
|
471
|
-
unless variant.year > 1984 and variant.year <
|
472
|
-
raise "Invalid year for AutomobileMakeModelYearVariant #{variant.row_hash}: #{variant.year} (should be from 1985 to
|
472
|
+
unless variant.year > 1984 and variant.year < 2012
|
473
|
+
raise "Invalid year for AutomobileMakeModelYearVariant #{variant.row_hash}: #{variant.year} (should be from 1985 to 2011)"
|
473
474
|
end
|
474
475
|
end
|
475
476
|
end
|
@@ -22,13 +22,4 @@ class Country < ActiveRecord::Base
|
|
22
22
|
find_by_iso_3166_code('US')
|
23
23
|
end
|
24
24
|
end
|
25
|
-
|
26
|
-
# if we don't have a country-specific flight route inefficiency factor, use the fallback
|
27
|
-
def flight_route_inefficiency_factor
|
28
|
-
if specific_frif = super
|
29
|
-
specific_frif
|
30
|
-
else
|
31
|
-
Country.fallback.flight_route_inefficiency_factor
|
32
|
-
end
|
33
|
-
end
|
34
25
|
end
|
@@ -26,7 +26,7 @@ Country.class_eval do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
import "country-specific flight route inefficiency factors derived from Kettunen et al. (2005)",
|
29
|
-
:url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEJoRVBZaGhnUmlhX240VXE3X0F3WkE&
|
29
|
+
:url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEJoRVBZaGhnUmlhX240VXE3X0F3WkE&output=csv' do
|
30
30
|
key 'iso_3166_code'
|
31
31
|
store 'flight_route_inefficiency_factor'
|
32
32
|
end
|
@@ -42,7 +42,7 @@ Country.class_eval do
|
|
42
42
|
|
43
43
|
# FIXME TODO eventually need to do this for all countries
|
44
44
|
process "Derive US average automobile fuel efficiency from AutomobileTypeFuelYear" do
|
45
|
-
|
45
|
+
AutomobileTypeFuelYear.run_data_miner!
|
46
46
|
|
47
47
|
scope = AutomobileTypeFuelYear.where(:year => AutomobileTypeFuelYear.maximum(:year))
|
48
48
|
fe = scope.sum(:total_travel) / scope.sum(:fuel_consumption)
|
@@ -10,6 +10,7 @@ BreedGender.class_eval do
|
|
10
10
|
|
11
11
|
import "Brighter Planet's list of cat and dog breeds, genders, and weights",
|
12
12
|
:url => 'http://static.brighterplanet.com/science/data/consumables/pets/breed_genders.csv',
|
13
|
+
:encoding => 'ISO-8859-1',
|
13
14
|
:select => lambda { |row| row['gender'].present? } do
|
14
15
|
key 'name', :synthesize => lambda { |row| row['name'] + ' ' + row['gender'] }
|
15
16
|
store 'breed_name', :field_name => 'name'
|
@@ -17,7 +17,7 @@ ClothesMachineUse.class_eval do
|
|
17
17
|
process "precalculate annual energy use" do
|
18
18
|
find_in_batches do |batch|
|
19
19
|
batch.each do |record|
|
20
|
-
record.annual_energy_from_electricity_for_clothes_driers = ResidentialEnergyConsumptionSurveyResponse.big_cohort(:
|
20
|
+
record.annual_energy_from_electricity_for_clothes_driers = ResidentialEnergyConsumptionSurveyResponse.big_cohort(:clothes_machine_use_id => record.name).weighted_average :annual_energy_from_electricity_for_clothes_driers
|
21
21
|
record.annual_energy_from_electricity_for_clothes_driers_units = 'joules'
|
22
22
|
record.save!
|
23
23
|
end
|
@@ -17,7 +17,7 @@ DishwasherUse.class_eval do
|
|
17
17
|
process "precalculate annual energy" do
|
18
18
|
find_in_batches do |batch|
|
19
19
|
batch.each do |record|
|
20
|
-
record.annual_energy_from_electricity_for_dishwashers = ResidentialEnergyConsumptionSurveyResponse.big_cohort(:
|
20
|
+
record.annual_energy_from_electricity_for_dishwashers = ResidentialEnergyConsumptionSurveyResponse.big_cohort(:dishwasher_use_id => record.name).weighted_average :annual_energy_from_electricity_for_dishwashers
|
21
21
|
record.annual_energy_from_electricity_for_dishwashers_units = 'joules'
|
22
22
|
record.save!
|
23
23
|
end
|
@@ -120,7 +120,7 @@ ResidenceFuelPrice.class_eval do
|
|
120
120
|
Conversions.register :dollars, :cents, 100
|
121
121
|
Conversions.register :cubic_feet, :cubic_metres, 0.0283168466 # TODO conversions gem has 'cubic_metres'
|
122
122
|
end
|
123
|
-
|
123
|
+
|
124
124
|
# electricity in dollars per kWh
|
125
125
|
import 'residential electricity prices from the EIA',
|
126
126
|
:url => 'http://www.eia.doe.gov/cneaf/electricity/page/sales_revenue.xls',
|
@@ -153,39 +153,44 @@ ResidenceFuelPrice.class_eval do
|
|
153
153
|
store 'month'
|
154
154
|
end
|
155
155
|
|
156
|
+
# FIXME TODO file missing
|
156
157
|
# dollars per litre
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
158
|
+
# sabshere 4/18/2011 this file has gone missing
|
159
|
+
# ihough 4/22/2011 comment out for now; we'll deal with this later
|
160
|
+
# import "residential fuel oil prices from the EIA",
|
161
|
+
# :url => 'http://tonto.eia.doe.gov/dnav/pet/xls/PET_PRI_RESID_A_EPPR_PTA_CPGAL_M.xls',
|
162
|
+
# :sheet => 'Data 1',
|
163
|
+
# :skip => 2,
|
164
|
+
# :select => lambda { |row| row['year'].to_i > 1989 },
|
165
|
+
# :transform => { :class => FuelOilParser } do
|
166
|
+
# key 'row_hash'
|
167
|
+
# store 'residence_fuel_type_name', :static => 'fuel oil'
|
168
|
+
# store 'locatable_id'
|
169
|
+
# store 'locatable_type'
|
170
|
+
# store 'price', :from_units => :litres, :to_units => :gallons # denominator
|
171
|
+
# store 'price_description', :static => 'dollars_per_litre'
|
172
|
+
# store 'year'
|
173
|
+
# store 'month'
|
174
|
+
# end
|
172
175
|
|
176
|
+
# FIXME TODO file missing
|
173
177
|
# dollars per litre
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
178
|
+
# ihough 4/22/2011 comment out for now; we'll deal with this later
|
179
|
+
# import "residential propane prices from the EIA",
|
180
|
+
# :url => 'http://tonto.eia.doe.gov/dnav/pet/xls/PET_PRI_PROP_A_EPLLPA_PRT_CPGAL_M.xls',
|
181
|
+
# :sheet => 'Data 1',
|
182
|
+
# :skip => 2,
|
183
|
+
# :select => lambda { |row| row['year'].to_i > 1989 },
|
184
|
+
# :transform => { :class => PropaneParser } do
|
185
|
+
# key 'row_hash'
|
186
|
+
# store 'residence_fuel_type_name', :static => 'propane'
|
187
|
+
# store 'locatable_id'
|
188
|
+
# store 'locatable_type'
|
189
|
+
# store 'price', :from_units => :litres, :to_units => :gallons # denominator
|
190
|
+
# store 'price_description', :static => 'dollars_per_litre'
|
191
|
+
# store 'year'
|
192
|
+
# store 'month'
|
193
|
+
# end
|
189
194
|
|
190
195
|
# per Matt in https://brighterplanet.sifterapp.com/projects/30/issues/410/comments
|
191
196
|
# "For coal and kerosene, there isn't good residential price data available, because hardly anybody actually uses them residentially."
|
data/lib/earth/version.rb
CHANGED
@@ -4,7 +4,7 @@ require 'earth/automobile/data_miner'
|
|
4
4
|
|
5
5
|
describe AutomobileTypeFuelYearAge do
|
6
6
|
describe 'import' do
|
7
|
-
it 'imports and processes data successfully' do
|
7
|
+
it 'imports and processes data successfully', :slow => true do
|
8
8
|
expect do
|
9
9
|
AutomobileTypeFuelYearAge.run_data_miner!
|
10
10
|
end.should_not raise_error
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: earth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 4
|
8
|
-
- 9
|
9
|
-
version: 0.4.9
|
4
|
+
prerelease:
|
5
|
+
version: 0.4.10
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Seamus Abshere
|
@@ -16,205 +12,167 @@ autorequire:
|
|
16
12
|
bindir: bin
|
17
13
|
cert_chain: []
|
18
14
|
|
19
|
-
date: 2011-03-10 00:00:00 -
|
15
|
+
date: 2011-03-10 00:00:00 -06:00
|
20
16
|
default_executable:
|
21
17
|
dependencies:
|
22
18
|
- !ruby/object:Gem::Dependency
|
23
19
|
name: cohort_scope
|
20
|
+
prerelease: false
|
24
21
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
22
|
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
- 0
|
31
|
-
- 1
|
32
|
-
- 5
|
33
|
-
version: 0.1.5
|
26
|
+
version: 0.2.0
|
34
27
|
type: :runtime
|
35
|
-
prerelease: false
|
36
28
|
version_requirements: *id001
|
37
29
|
- !ruby/object:Gem::Dependency
|
38
30
|
name: data_miner
|
31
|
+
prerelease: false
|
39
32
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
33
|
none: false
|
41
34
|
requirements:
|
42
|
-
- -
|
35
|
+
- - ">="
|
43
36
|
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
- 1
|
46
|
-
- 1
|
47
|
-
- 4
|
48
|
-
version: 1.1.4
|
37
|
+
version: "0"
|
49
38
|
type: :runtime
|
50
|
-
prerelease: false
|
51
39
|
version_requirements: *id002
|
52
40
|
- !ruby/object:Gem::Dependency
|
53
41
|
name: falls_back_on
|
42
|
+
prerelease: false
|
54
43
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
44
|
none: false
|
56
45
|
requirements:
|
57
|
-
- -
|
46
|
+
- - ">="
|
58
47
|
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
- 0
|
61
|
-
- 1
|
62
|
-
- 3
|
63
|
-
version: 0.1.3
|
48
|
+
version: "0"
|
64
49
|
type: :runtime
|
65
|
-
prerelease: false
|
66
50
|
version_requirements: *id003
|
67
51
|
- !ruby/object:Gem::Dependency
|
68
|
-
name:
|
52
|
+
name: fixed_width
|
53
|
+
prerelease: false
|
69
54
|
requirement: &id004 !ruby/object:Gem::Requirement
|
70
55
|
none: false
|
71
56
|
requirements:
|
72
57
|
- - ">="
|
73
58
|
- !ruby/object:Gem::Version
|
74
|
-
segments:
|
75
|
-
- 0
|
76
59
|
version: "0"
|
77
60
|
type: :runtime
|
78
|
-
prerelease: false
|
79
61
|
version_requirements: *id004
|
80
62
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
63
|
+
name: geokit-rails
|
64
|
+
prerelease: false
|
82
65
|
requirement: &id005 !ruby/object:Gem::Requirement
|
83
66
|
none: false
|
84
67
|
requirements:
|
85
|
-
- -
|
68
|
+
- - ">="
|
86
69
|
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
- 0
|
89
|
-
- 0
|
90
|
-
- 10
|
91
|
-
version: 0.0.10
|
70
|
+
version: "0"
|
92
71
|
type: :runtime
|
93
|
-
prerelease: false
|
94
72
|
version_requirements: *id005
|
95
73
|
- !ruby/object:Gem::Dependency
|
96
74
|
name: weighted_average
|
75
|
+
prerelease: false
|
97
76
|
requirement: &id006 !ruby/object:Gem::Requirement
|
98
77
|
none: false
|
99
78
|
requirements:
|
100
|
-
- -
|
79
|
+
- - ">="
|
101
80
|
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
- 0
|
104
|
-
- 0
|
105
|
-
- 6
|
106
|
-
version: 0.0.6
|
81
|
+
version: "0"
|
107
82
|
type: :runtime
|
108
|
-
prerelease: false
|
109
83
|
version_requirements: *id006
|
110
84
|
- !ruby/object:Gem::Dependency
|
111
85
|
name: bundler
|
86
|
+
prerelease: false
|
112
87
|
requirement: &id007 !ruby/object:Gem::Requirement
|
113
88
|
none: false
|
114
89
|
requirements:
|
115
90
|
- - ">="
|
116
91
|
- !ruby/object:Gem::Version
|
117
|
-
segments:
|
118
|
-
- 0
|
119
92
|
version: "0"
|
120
93
|
type: :development
|
121
|
-
prerelease: false
|
122
94
|
version_requirements: *id007
|
123
95
|
- !ruby/object:Gem::Dependency
|
124
96
|
name: bueller
|
97
|
+
prerelease: false
|
125
98
|
requirement: &id008 !ruby/object:Gem::Requirement
|
126
99
|
none: false
|
127
100
|
requirements:
|
128
101
|
- - ">="
|
129
102
|
- !ruby/object:Gem::Version
|
130
|
-
segments:
|
131
|
-
- 0
|
132
103
|
version: "0"
|
133
104
|
type: :development
|
134
|
-
prerelease: false
|
135
105
|
version_requirements: *id008
|
136
106
|
- !ruby/object:Gem::Dependency
|
137
107
|
name: cucumber
|
108
|
+
prerelease: false
|
138
109
|
requirement: &id009 !ruby/object:Gem::Requirement
|
139
110
|
none: false
|
140
111
|
requirements:
|
141
112
|
- - ">="
|
142
113
|
- !ruby/object:Gem::Version
|
143
|
-
segments:
|
144
|
-
- 0
|
145
114
|
version: "0"
|
146
115
|
type: :development
|
147
|
-
prerelease: false
|
148
116
|
version_requirements: *id009
|
149
117
|
- !ruby/object:Gem::Dependency
|
150
118
|
name: rake
|
119
|
+
prerelease: false
|
151
120
|
requirement: &id010 !ruby/object:Gem::Requirement
|
152
121
|
none: false
|
153
122
|
requirements:
|
154
123
|
- - ">="
|
155
124
|
- !ruby/object:Gem::Version
|
156
|
-
segments:
|
157
|
-
- 0
|
158
125
|
version: "0"
|
159
126
|
type: :development
|
160
|
-
prerelease: false
|
161
127
|
version_requirements: *id010
|
162
128
|
- !ruby/object:Gem::Dependency
|
163
129
|
name: rdoc
|
130
|
+
prerelease: false
|
164
131
|
requirement: &id011 !ruby/object:Gem::Requirement
|
165
132
|
none: false
|
166
133
|
requirements:
|
167
134
|
- - ">="
|
168
135
|
- !ruby/object:Gem::Version
|
169
|
-
segments:
|
170
|
-
- 0
|
171
136
|
version: "0"
|
172
137
|
type: :development
|
173
|
-
prerelease: false
|
174
138
|
version_requirements: *id011
|
175
139
|
- !ruby/object:Gem::Dependency
|
176
140
|
name: rdoc
|
141
|
+
prerelease: false
|
177
142
|
requirement: &id012 !ruby/object:Gem::Requirement
|
178
143
|
none: false
|
179
144
|
requirements:
|
180
145
|
- - ">="
|
181
146
|
- !ruby/object:Gem::Version
|
182
|
-
segments:
|
183
|
-
- 0
|
184
147
|
version: "0"
|
185
148
|
type: :development
|
186
|
-
prerelease: false
|
187
149
|
version_requirements: *id012
|
188
150
|
- !ruby/object:Gem::Dependency
|
189
151
|
name: rspec
|
152
|
+
prerelease: false
|
190
153
|
requirement: &id013 !ruby/object:Gem::Requirement
|
191
154
|
none: false
|
192
155
|
requirements:
|
193
156
|
- - ">="
|
194
157
|
- !ruby/object:Gem::Version
|
195
|
-
segments:
|
196
|
-
- 0
|
197
158
|
version: "0"
|
198
159
|
type: :development
|
199
|
-
prerelease: false
|
200
160
|
version_requirements: *id013
|
201
161
|
- !ruby/object:Gem::Dependency
|
202
162
|
name: sqlite3-ruby
|
163
|
+
prerelease: false
|
203
164
|
requirement: &id014 !ruby/object:Gem::Requirement
|
204
165
|
none: false
|
205
166
|
requirements:
|
206
167
|
- - ">="
|
207
168
|
- !ruby/object:Gem::Version
|
208
|
-
segments:
|
209
|
-
- 0
|
210
169
|
version: "0"
|
211
170
|
type: :development
|
212
|
-
prerelease: false
|
213
171
|
version_requirements: *id014
|
214
172
|
description: An earth-simulation environment with ActiveRecord models and data
|
215
173
|
email: andy@rossmeissl.net
|
216
|
-
executables:
|
217
|
-
|
174
|
+
executables:
|
175
|
+
- earth_tester.rb
|
218
176
|
extensions: []
|
219
177
|
|
220
178
|
extra_rdoc_files:
|
@@ -229,6 +187,7 @@ files:
|
|
229
187
|
- LICENSE-PREAMBLE
|
230
188
|
- README.markdown
|
231
189
|
- Rakefile
|
190
|
+
- bin/earth_tester.rb
|
232
191
|
- earth.gemspec
|
233
192
|
- features/automobile_fuel.feature
|
234
193
|
- features/automobile_make.feature
|
@@ -554,23 +513,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
554
513
|
requirements:
|
555
514
|
- - ">="
|
556
515
|
- !ruby/object:Gem::Version
|
557
|
-
hash: -1989203883064114868
|
558
|
-
segments:
|
559
|
-
- 0
|
560
516
|
version: "0"
|
561
517
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
562
518
|
none: false
|
563
519
|
requirements:
|
564
520
|
- - ">="
|
565
521
|
- !ruby/object:Gem::Version
|
566
|
-
hash: -1989203883064114868
|
567
|
-
segments:
|
568
|
-
- 0
|
569
522
|
version: "0"
|
570
523
|
requirements: []
|
571
524
|
|
572
525
|
rubyforge_project:
|
573
|
-
rubygems_version: 1.
|
526
|
+
rubygems_version: 1.6.2
|
574
527
|
signing_key:
|
575
528
|
specification_version: 3
|
576
529
|
summary: Land, sky, and sea
|