earth 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ require "earth/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "earth"
7
- s.version = "0.4.1"
7
+ s.version = Earth::VERSION
8
8
  s.date = "2011-02-21"
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.authors = ["Seamus Abshere", "Derek Kastner", "Andy Rossmeissl"]
@@ -5,7 +5,6 @@ require 'earth/conversions_ext'
5
5
  require 'earth/inflectors'
6
6
  require 'data_miner'
7
7
  require 'falls_back_on'
8
- require 'falls_back_on/active_record_ext'
9
8
  require 'weighted_average'
10
9
  require 'loose_tight_dictionary'
11
10
  require 'slither'
@@ -162,3 +161,12 @@ private
162
161
  end
163
162
  end
164
163
  end
164
+
165
+ def INSERT_IGNORE(cmd)
166
+ if ActiveRecord::Base.connection.adapter_name.downcase == 'sqlite'
167
+ prefix = 'INSERT'
168
+ else
169
+ prefix = 'INSERT IGNORE'
170
+ end
171
+ ActiveRecord::Base.connection.execute "#{prefix} #{cmd}"
172
+ end
@@ -10,8 +10,7 @@ AircraftManufacturer.class_eval do
10
10
 
11
11
  process "Derive a list of aircraft manufacturers from aircraft" do
12
12
  Aircraft.run_data_miner!
13
- connection.execute %{
14
- INSERT IGNORE INTO aircraft_manufacturers(name)
13
+ INSERT_IGNORE %{INTO aircraft_manufacturers(name)
15
14
  SELECT aircraft.manufacturer_name FROM aircraft WHERE aircraft.manufacturer_name IS NOT NULL
16
15
  }
17
16
  end
@@ -12,18 +12,18 @@ AutomobileMake.class_eval do
12
12
 
13
13
  process "Derive manufacturer names from automobile make model year variants" do
14
14
  AutomobileMakeModelYearVariant.run_data_miner!
15
- connection.execute %{
16
- INSERT IGNORE INTO automobile_makes(name)
15
+ INSERT_IGNORE %{INTO automobile_makes(name)
17
16
  SELECT DISTINCT automobile_make_model_year_variants.make_name
18
17
  FROM automobile_make_model_year_variants
18
+ WHERE automobile_make_model_year_variants.make_name IS NOT NULL
19
+ AND LENGTH(automobile_make_model_year_variants.make_name) > 0
19
20
  }
20
21
  end
21
22
 
22
23
  # sabshere 1/31/11 add Avanti, DaimlerChrysler, IHC, Tesla, etc.
23
24
  process "Derive extra manufacturer names from CAFE data" do
24
25
  AutomobileMakeFleetYear.run_data_miner!
25
- connection.execute %{
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
  }
@@ -15,8 +15,7 @@ AutomobileMakeModel.class_eval do
15
15
 
16
16
  process "Derive model names from automobile make model year variants" do
17
17
  AutomobileMakeModelYearVariant.run_data_miner!
18
- connection.execute %{
19
- INSERT IGNORE INTO automobile_make_models(name, make_name)
18
+ INSERT_IGNORE %{INTO automobile_make_models(name, make_name)
20
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.make_model_name) > 0 AND LENGTH(automobile_make_model_year_variants.make_name) > 0
21
20
  }
22
21
  end
@@ -18,8 +18,7 @@ AutomobileMakeModelYear.class_eval do
18
18
 
19
19
  process "Derive model year names from automobile make model year variants" do
20
20
  AutomobileMakeModelYearVariant.run_data_miner!
21
- connection.execute %{
22
- INSERT IGNORE INTO automobile_make_model_years(name, make_name, make_model_name, year, make_year_name)
21
+ INSERT_IGNORE %{INTO automobile_make_model_years(name, make_name, make_model_name, year, make_year_name)
23
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
24
23
  }
25
24
  end
@@ -15,13 +15,18 @@ AutomobileMakeYear.class_eval do
15
15
 
16
16
  process "Derive manufacturer names and years from automobile make model year variants" do
17
17
  AutomobileMakeModelYearVariant.run_data_miner!
18
- connection.execute %{
19
- INSERT IGNORE INTO automobile_make_years(name, make_name, year)
18
+ INSERT_IGNORE %{INTO automobile_make_years(name, make_name, year)
20
19
  SELECT
21
20
  automobile_make_model_year_variants.make_year_name,
22
21
  automobile_make_model_year_variants.make_name,
23
22
  automobile_make_model_year_variants.year
24
23
  FROM automobile_make_model_year_variants
24
+ WHERE automobile_make_model_year_variants.make_year_name IS NOT NULL
25
+ AND LENGTH(automobile_make_model_year_variants.make_year_name) > 0
26
+ AND automobile_make_model_year_variants.make_name IS NOT NULL
27
+ AND LENGTH(automobile_make_model_year_variants.make_name) > 0
28
+ AND automobile_make_model_year_variants.year IS NOT NULL
29
+ AND LENGTH(automobile_make_model_year_variants.year) > 0
25
30
  }
26
31
  end
27
32
 
@@ -18,13 +18,7 @@ Fuel.class_eval do
18
18
 
19
19
  process "Derive fuel names from FuelYear" do
20
20
  FuelYear.run_data_miner!
21
- if Fuel.connection.adapter_name.downcase == 'sqlite'
22
- ignorance = ''
23
- else
24
- ignorance = 'IGNORE'
25
- end
26
- connection.execute %{
27
- INSERT #{ignorance} INTO fuels(name)
21
+ INSERT_IGNORE %{INTO fuels(name)
28
22
  SELECT DISTINCT fuel_years.fuel_name FROM fuel_years
29
23
  }
30
24
  end
@@ -19,14 +19,14 @@ LodgingClass.class_eval do
19
19
 
20
20
  process "Convert fuel oil intensities to metric units" do
21
21
  conversion_factor = 3.78541178 # Google: 3.78541178 l / gal
22
- update_all "fuel_oil_intensity = fuel_oil_intensity * #{conversion_factor} WHERE natural_gas_intensity_units = 'gallons_per_room_night'"
23
- update_all "fuel_oil_intensity_units = 'litres_per_room_night' WHERE natural_gas_intensity_units = 'gallons_per_room_night'"
22
+ update_all "fuel_oil_intensity = fuel_oil_intensity * #{conversion_factor} WHERE fuel_oil_intensity_units = 'gallons_per_room_night'"
23
+ update_all "fuel_oil_intensity_units = 'litres_per_room_night' WHERE fuel_oil_intensity_units = 'gallons_per_room_night'"
24
24
  end
25
25
 
26
26
  process "Convert district heat intensities to metric units" do
27
27
  conversion_factor = 1.05505585 # Google: 1.05505585 MJ / 1000 Btu
28
- update_all "district_heat_intensity = district_heat_intensity * #{conversion_factor} WHERE natural_gas_intensity_units = 'thousand_btu_per_room_night'"
29
- update_all "district_heat_intensity_units = 'megajoules_per_room_night' WHERE natural_gas_intensity_units = 'thousand_btu_per_room_night'"
28
+ update_all "district_heat_intensity = district_heat_intensity * #{conversion_factor} WHERE district_heat_intensity_units = 'thousand_btu_per_room_night'"
29
+ update_all "district_heat_intensity_units = 'megajoules_per_room_night' WHERE district_heat_intensity_units = 'thousand_btu_per_room_night'"
30
30
  end
31
31
  end
32
32
  end
@@ -37,8 +37,7 @@ EgridSubregion.class_eval do
37
37
  # end
38
38
 
39
39
  import "eGRID subregion data",
40
- :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGRORTJNSWRMQ1puRVprYlAtZHhDaFE&hl=en&single=true&gid=0&output=csv',
41
- :select => lambda { |row| row['abbreviation'].length == 4 } do
40
+ :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGRORTJNSWRMQ1puRVprYlAtZHhDaFE&hl=en&single=true&gid=0&output=csv' do
42
41
  key 'abbreviation'
43
42
  store 'name'
44
43
  store 'nerc_abbreviation'
@@ -6,8 +6,7 @@ Urbanity.class_eval do
6
6
 
7
7
  process "derive from ResidentialEnergyConsumptionSurveyResponse" do
8
8
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
9
- connection.execute %{
10
- INSERT IGNORE INTO urbanities(name)
9
+ INSERT_IGNORE %{INTO urbanities(name)
11
10
  SELECT DISTINCT recs_responses.urbanity_id FROM recs_responses WHERE LENGTH(recs_responses.urbanity_id) > 0
12
11
  }
13
12
  end
@@ -8,8 +8,7 @@ AirConditionerUse.class_eval do
8
8
 
9
9
  process "derive from ResidentialEnergyConsumptionSurveyResponse" do
10
10
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
- connection.execute %{
12
- INSERT IGNORE INTO air_conditioner_uses(name)
11
+ INSERT_IGNORE %{INTO air_conditioner_uses(name)
13
12
  SELECT DISTINCT recs_responses.central_ac_use FROM recs_responses WHERE LENGTH(recs_responses.central_ac_use) > 0
14
13
  }
15
14
  end
@@ -8,8 +8,7 @@ ClothesMachineUse.class_eval do
8
8
 
9
9
  process "derive from ResidentialEnergyConsumptionSurveyResponse" do
10
10
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
- connection.execute %{
12
- INSERT IGNORE INTO clothes_machine_uses(name)
11
+ INSERT_IGNORE %{INTO clothes_machine_uses(name)
13
12
  SELECT DISTINCT recs_responses.clothes_washer_use FROM recs_responses WHERE LENGTH(recs_responses.clothes_washer_use) > 0
14
13
  }
15
14
  end
@@ -8,8 +8,7 @@ DishwasherUse.class_eval do
8
8
 
9
9
  process "derive from ResidentialEnergyConsumptionSurveyResponse" do
10
10
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
- connection.execute %{
12
- INSERT IGNORE INTO dishwasher_uses(name)
11
+ INSERT_IGNORE %{INTO dishwasher_uses(name)
13
12
  SELECT DISTINCT recs_responses.dishwasher_use_id FROM recs_responses WHERE LENGTH(recs_responses.dishwasher_use_id) > 0
14
13
  }
15
14
  end
@@ -6,8 +6,7 @@ ResidenceClass.class_eval do
6
6
 
7
7
  process "derive from ResidentialEnergyConsumptionSurveyResponse" do
8
8
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
9
- connection.execute %{
10
- INSERT IGNORE INTO residence_classes(name)
9
+ INSERT_IGNORE %{INTO residence_classes(name)
11
10
  SELECT DISTINCT recs_responses.residence_class_id FROM recs_responses WHERE LENGTH(recs_responses.residence_class_id) > 0
12
11
  }
13
12
  end
@@ -1,3 +1,3 @@
1
1
  module Earth
2
- VERSION = '0.4.0'
2
+ VERSION = '0.4.2'
3
3
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: earth
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 4
9
- - 1
10
- version: 0.4.1
8
+ - 2
9
+ version: 0.4.2
11
10
  platform: ruby
12
11
  authors:
13
12
  - Seamus Abshere
@@ -17,178 +16,167 @@ autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
19
18
 
20
- date: 2011-02-21 00:00:00 -08:00
19
+ date: 2011-02-21 00:00:00 -05:00
21
20
  default_executable:
22
21
  dependencies:
23
22
  - !ruby/object:Gem::Dependency
24
23
  name: activerecord
25
- prerelease: false
26
24
  requirement: &id001 !ruby/object:Gem::Requirement
27
25
  none: false
28
26
  requirements:
29
27
  - - ~>
30
28
  - !ruby/object:Gem::Version
31
- hash: 5
32
29
  segments:
33
30
  - 3
34
31
  version: "3"
35
32
  type: :runtime
33
+ prerelease: false
36
34
  version_requirements: *id001
37
35
  - !ruby/object:Gem::Dependency
38
36
  name: data_miner
39
- prerelease: false
40
37
  requirement: &id002 !ruby/object:Gem::Requirement
41
38
  none: false
42
39
  requirements:
43
40
  - - ~>
44
41
  - !ruby/object:Gem::Version
45
- hash: 17
46
42
  segments:
47
43
  - 1
48
44
  - 1
49
45
  - 1
50
46
  version: 1.1.1
51
47
  type: :runtime
48
+ prerelease: false
52
49
  version_requirements: *id002
53
50
  - !ruby/object:Gem::Dependency
54
51
  name: errata
55
- prerelease: false
56
52
  requirement: &id003 !ruby/object:Gem::Requirement
57
53
  none: false
58
54
  requirements:
59
55
  - - ">="
60
56
  - !ruby/object:Gem::Version
61
- hash: 3
62
57
  segments:
63
58
  - 0
64
59
  version: "0"
65
60
  type: :runtime
61
+ prerelease: false
66
62
  version_requirements: *id003
67
63
  - !ruby/object:Gem::Dependency
68
64
  name: falls_back_on
69
- prerelease: false
70
65
  requirement: &id004 !ruby/object:Gem::Requirement
71
66
  none: false
72
67
  requirements:
73
68
  - - ">="
74
69
  - !ruby/object:Gem::Version
75
- hash: 25
76
70
  segments:
77
71
  - 0
78
72
  - 0
79
73
  - 3
80
74
  version: 0.0.3
81
75
  type: :runtime
76
+ prerelease: false
82
77
  version_requirements: *id004
83
78
  - !ruby/object:Gem::Dependency
84
79
  name: geokit
85
- prerelease: false
86
80
  requirement: &id005 !ruby/object:Gem::Requirement
87
81
  none: false
88
82
  requirements:
89
83
  - - ">="
90
84
  - !ruby/object:Gem::Version
91
- hash: 3
92
85
  segments:
93
86
  - 1
94
87
  - 5
95
88
  - 0
96
89
  version: 1.5.0
97
90
  type: :runtime
91
+ prerelease: false
98
92
  version_requirements: *id005
99
93
  - !ruby/object:Gem::Dependency
100
94
  name: geokit-rails
101
- prerelease: false
102
95
  requirement: &id006 !ruby/object:Gem::Requirement
103
96
  none: false
104
97
  requirements:
105
98
  - - ">="
106
99
  - !ruby/object:Gem::Version
107
- hash: 3
108
100
  segments:
109
101
  - 0
110
102
  version: "0"
111
103
  type: :runtime
104
+ prerelease: false
112
105
  version_requirements: *id006
113
106
  - !ruby/object:Gem::Dependency
114
107
  name: cohort_scope
115
- prerelease: false
116
108
  requirement: &id007 !ruby/object:Gem::Requirement
117
109
  none: false
118
110
  requirements:
119
111
  - - ">="
120
112
  - !ruby/object:Gem::Version
121
- hash: 17
122
113
  segments:
123
114
  - 0
124
115
  - 0
125
116
  - 7
126
117
  version: 0.0.7
127
118
  type: :runtime
119
+ prerelease: false
128
120
  version_requirements: *id007
129
121
  - !ruby/object:Gem::Dependency
130
122
  name: conversions
131
- prerelease: false
132
123
  requirement: &id008 !ruby/object:Gem::Requirement
133
124
  none: false
134
125
  requirements:
135
126
  - - ">="
136
127
  - !ruby/object:Gem::Version
137
- hash: 13
138
128
  segments:
139
129
  - 1
140
130
  - 4
141
131
  - 5
142
132
  version: 1.4.5
143
133
  type: :runtime
134
+ prerelease: false
144
135
  version_requirements: *id008
145
136
  - !ruby/object:Gem::Dependency
146
137
  name: weighted_average
147
- prerelease: false
148
138
  requirement: &id009 !ruby/object:Gem::Requirement
149
139
  none: false
150
140
  requirements:
151
141
  - - ">="
152
142
  - !ruby/object:Gem::Version
153
- hash: 23
154
143
  segments:
155
144
  - 0
156
145
  - 0
157
146
  - 4
158
147
  version: 0.0.4
159
148
  type: :runtime
149
+ prerelease: false
160
150
  version_requirements: *id009
161
151
  - !ruby/object:Gem::Dependency
162
152
  name: loose_tight_dictionary
163
- prerelease: false
164
153
  requirement: &id010 !ruby/object:Gem::Requirement
165
154
  none: false
166
155
  requirements:
167
156
  - - ">="
168
157
  - !ruby/object:Gem::Version
169
- hash: 15
170
158
  segments:
171
159
  - 0
172
160
  - 0
173
161
  - 8
174
162
  version: 0.0.8
175
163
  type: :runtime
164
+ prerelease: false
176
165
  version_requirements: *id010
177
166
  - !ruby/object:Gem::Dependency
178
167
  name: sniff
179
- prerelease: false
180
168
  requirement: &id011 !ruby/object:Gem::Requirement
181
169
  none: false
182
170
  requirements:
183
171
  - - ~>
184
172
  - !ruby/object:Gem::Version
185
- hash: 5
186
173
  segments:
187
174
  - 0
188
175
  - 6
189
176
  - 1
190
177
  version: 0.6.1
191
178
  type: :development
179
+ prerelease: false
192
180
  version_requirements: *id011
193
181
  description: An earth-simulation environment with ActiveRecord models and data
194
182
  email: andy@rossmeissl.net
@@ -544,7 +532,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
544
532
  requirements:
545
533
  - - ">="
546
534
  - !ruby/object:Gem::Version
547
- hash: 3
535
+ hash: 3351943495966616780
548
536
  segments:
549
537
  - 0
550
538
  version: "0"
@@ -553,7 +541,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
553
541
  requirements:
554
542
  - - ">="
555
543
  - !ruby/object:Gem::Version
556
- hash: 3
544
+ hash: 3351943495966616780
557
545
  segments:
558
546
  - 0
559
547
  version: "0"