flight 0.0.5 → 0.0.6

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.
@@ -23,10 +23,10 @@ When /^emissions are calculated$/ do
23
23
  @activity = FlightRecord.from_params_hash @activity_hash
24
24
  if @current_date
25
25
  Timecop.travel(@current_date) do
26
- @emission = @activity.emission Sniff::Timeframe.this_year
26
+ @emission = @activity.emission Timeframe.this_year
27
27
  end
28
28
  else
29
- @emission = @activity.emission Sniff::Timeframe.this_year
29
+ @emission = @activity.emission Timeframe.this_year
30
30
  end
31
31
  @characteristics = @activity.deliberations[:emission].characteristics
32
32
  end
@@ -5,15 +5,4 @@ require 'cucumber'
5
5
  require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
6
6
 
7
7
  require 'sniff'
8
-
9
- Sniff.init File.join(File.dirname(__FILE__), '..', '..')
10
-
11
- ## How to clean your database when transactions are turned off. See
12
- ## http://github.com/bmabey/database_cleaner for more info.
13
- #if defined?(ActiveRecord::Base)
14
- # begin
15
- # require 'database_cleaner'
16
- # DatabaseCleaner.strategy = :truncation
17
- # rescue LoadError => ignore_if_database_cleaner_not_present
18
- # end
19
- #end
8
+ Sniff.init File.join(File.dirname(__FILE__), '..', '..'), :earth => :air
data/lib/flight.rb CHANGED
@@ -1,16 +1,16 @@
1
- require 'flight/carbon_model'
2
- require 'flight/characterization'
3
- require 'flight/data'
4
- require 'flight/summarization'
5
-
6
1
  module BrighterPlanet
7
2
  module Flight
8
3
  extend self
9
4
 
10
5
  def included(base)
6
+ require 'flight/carbon_model'
7
+ require 'flight/characterization'
8
+ require 'flight/data'
9
+ require 'flight/summarization'
10
+
11
11
  base.send :include, BrighterPlanet::Flight::CarbonModel
12
12
  base.send :include, BrighterPlanet::Flight::Characterization
13
- # base.send :include, BrighterPlanet::Flight::Data
13
+ base.send :include, BrighterPlanet::Flight::Data
14
14
  base.send :include, BrighterPlanet::Flight::Summarization
15
15
  end
16
16
  def flight_model
@@ -1,317 +1,6 @@
1
1
  require 'sniff/database'
2
2
 
3
3
  Sniff::Database.define_schema do
4
- create_table "aircraft", :primary_key => "icao_code", :id => false, :force => true do |t|
5
- t.string 'icao_code'
6
- t.string "manufacturer_name"
7
- t.string "name"
8
- t.string "bts_name"
9
- t.string "bts_aircraft_type_code"
10
- t.string "brighter_planet_aircraft_class_code"
11
- t.string "fuel_use_aircraft_name"
12
- t.float "m3"
13
- t.float "m2"
14
- t.float "m1"
15
- t.float "endpoint_fuel"
16
- t.float "seats"
17
- t.float "distance"
18
- t.float "load_factor"
19
- t.float "freight_share"
20
- t.float "payload"
21
- t.float "weighting"
22
- t.datetime "created_at"
23
- t.datetime "updated_at"
24
- end
25
-
26
- create_table "aircraft_classes", :primary_key => "brighter_planet_aircraft_class_code", :id => false, :force => true do |t|
27
- t.string 'brighter_planet_aircraft_class_code'
28
- t.string "name"
29
- t.float "m1"
30
- t.float "m2"
31
- t.float "m3"
32
- t.float "endpoint_fuel"
33
- t.integer "seats"
34
- t.datetime "created_at"
35
- t.datetime "updated_at"
36
- end
37
-
38
- create_table "aircraft_manufacturers", :primary_key => "name", :id => false, :force => true do |t|
39
- t.string 'name'
40
- t.datetime "created_at"
41
- t.datetime "updated_at"
42
- end
43
-
44
- create_table "airlines", :primary_key => "iata_code", :id => false, :force => true do |t|
45
- t.string 'iata_code'
46
- t.string "name"
47
- t.string "dot_airline_id_code"
48
- t.boolean "international"
49
- t.float "distance"
50
- t.float "load_factor"
51
- t.float "freight_share"
52
- t.float "payload"
53
- t.datetime "created_at"
54
- t.datetime "updated_at"
55
- t.float "seats"
56
- end
57
-
58
- create_table "airports", :primary_key => "iata_code", :id => false, :force => true do |t|
59
- t.string 'iata_code'
60
- t.string "name"
61
- t.string "city"
62
- t.string "country_name"
63
- t.string "country_iso_3166_code"
64
- t.float "latitude"
65
- t.float "longitude"
66
- t.float "seats"
67
- t.float "distance"
68
- t.float "load_factor"
69
- t.float "freight_share"
70
- t.float "payload"
71
- t.boolean "international_origin"
72
- t.boolean "international_destination"
73
- t.datetime "created_at"
74
- t.datetime "updated_at"
75
- end
76
-
77
- create_table "flight_aircraft", :force => true do |t|
78
- t.string "name"
79
- t.integer "seats"
80
- t.integer "flight_fuel_type_id"
81
- t.float "endpoint_fuel"
82
- t.integer "flight_manufacturer_id"
83
- t.datetime "updated_at"
84
- t.datetime "created_at"
85
- t.date "bts_begin_date"
86
- t.date "bts_end_date"
87
- t.float "load_factor"
88
- t.float "freight_share"
89
- t.float "m3"
90
- t.float "m2"
91
- t.float "m1"
92
- t.float "distance"
93
- t.float "payload"
94
- t.integer "flight_aircraft_class_id"
95
- t.float "multiplier"
96
- t.string "manufacturer_name"
97
- t.string "brighter_planet_aircraft_class_code"
98
- t.integer "weighting"
99
- t.integer "bts_aircraft_type"
100
- end
101
-
102
- create_table "flight_aircraft_classes", :force => true do |t|
103
- t.string "name"
104
- t.integer "seats"
105
- t.integer "flight_fuel_type_id"
106
- t.float "endpoint_fuel"
107
- t.string "brighter_planet_aircraft_class_code"
108
- t.float "m1"
109
- t.float "m2"
110
- t.float "m3"
111
- end
112
-
113
- create_table "flight_aircraft_seat_classes", :force => true do |t|
114
- t.integer "flight_aircraft_id"
115
- t.integer "flight_seat_class_id"
116
- t.integer "seats"
117
- t.datetime "created_at"
118
- t.datetime "updated_at"
119
- t.float "multiplier"
120
- t.boolean "fresh"
121
- end
122
-
123
- create_table "flight_airline_aircraft", :force => true do |t|
124
- t.integer "flight_airline_id"
125
- t.integer "flight_aircraft_id"
126
- t.integer "seats"
127
- t.datetime "updated_at"
128
- t.datetime "created_at"
129
- t.float "total_seat_area"
130
- t.float "average_seat_area"
131
- t.boolean "fresh"
132
- t.float "multiplier"
133
- end
134
-
135
- create_table "flight_airline_aircraft_seat_classes", :force => true do |t|
136
- t.integer "seats"
137
- t.float "pitch"
138
- t.float "width"
139
- t.float "multiplier"
140
- t.datetime "created_at"
141
- t.datetime "updated_at"
142
- t.float "seat_area"
143
- t.string "name"
144
- t.integer "flight_airline_id"
145
- t.integer "flight_aircraft_id"
146
- t.integer "flight_seat_class_id"
147
- t.integer "weighting"
148
- t.integer "peers"
149
- end
150
-
151
- create_table "flight_airline_seat_classes", :force => true do |t|
152
- t.integer "flight_seat_class_id"
153
- t.integer "flight_airline_id"
154
- t.float "multiplier"
155
- t.datetime "created_at"
156
- t.datetime "updated_at"
157
- t.integer "seats"
158
- t.boolean "fresh"
159
- end
160
-
161
- create_table "flight_airlines", :force => true do |t|
162
- t.string "name"
163
- t.string "iata"
164
- t.string "us_dot_airline_id"
165
- t.float "load_factor"
166
- t.float "freight_share"
167
- t.float "distance"
168
- t.float "multiplier"
169
- t.integer "seats"
170
- t.float "payload"
171
- t.boolean "international"
172
- end
173
-
174
- create_table "flight_configurations", :primary_key => "name", :id => false, :force => true do |t|
175
- t.string 'name'
176
- t.string "bts_aircraft_configuration_code"
177
- t.datetime "created_at"
178
- t.datetime "updated_at"
179
- end
180
-
181
- create_table "flight_distance_classes", :primary_key => "name", :id => false, :force => true do |t|
182
- t.string 'name'
183
- t.float "distance"
184
- t.string "distance_units"
185
- t.datetime "updated_at"
186
- t.datetime "created_at"
187
- end
188
-
189
- create_table "flight_domesticities", :primary_key => "name", :id => false, :force => true do |t|
190
- t.string 'name'
191
- t.string "bts_data_source_code"
192
- t.float "distance"
193
- t.string "distance_units"
194
- t.float "freight_share"
195
- t.float "load_factor"
196
- t.float "seats"
197
- t.float "payload"
198
- t.string "payload_units"
199
- t.datetime "created_at"
200
- t.datetime "updated_at"
201
- end
202
-
203
- create_table "flight_fuel_types", :force => true do |t|
204
- t.string "name"
205
- t.float "emission_factor"
206
- t.float "radiative_forcing_index"
207
- t.float "density"
208
- t.datetime "created_at"
209
- t.datetime "updated_at"
210
- end
211
-
212
- create_table "flight_manufacturers", :force => true do |t|
213
- t.string "name"
214
- t.datetime "created_at"
215
- t.datetime "updated_at"
216
- end
217
-
218
- create_table "flight_patterns", :force => true do |t|
219
- t.string "name"
220
- t.integer "flight_id"
221
- t.date "start_date"
222
- t.date "end_date"
223
- t.datetime "created_at"
224
- t.datetime "updated_at"
225
- t.float "monthly_flights"
226
- t.integer "profile_id"
227
- end
228
-
229
- create_table "flight_propulsions", :primary_key => "name", :id => false, :force => true do |t|
230
- t.string 'name'
231
- t.string "bts_aircraft_group_code"
232
- t.datetime "created_at"
233
- t.datetime "updated_at"
234
- end
235
-
236
- create_table "flight_seat_classes", :primary_key => "name", :id => false, :force => true do |t|
237
- t.string 'name'
238
- t.float "multiplier"
239
- t.integer "seats"
240
- t.datetime "updated_at"
241
- t.datetime "created_at"
242
- end
243
-
244
- create_table "flight_segments", :primary_key => "row_hash", :id => false, :force => true do |t|
245
- t.string 'row_hash'
246
- t.string "propulsion_id"
247
- t.integer "bts_aircraft_group_code"
248
- t.string "configuration_id"
249
- t.integer "bts_aircraft_configuration_code"
250
- t.string "distance_group"
251
- t.integer "bts_distance_group_code"
252
- t.string "service_class_id"
253
- t.string "bts_service_class_code"
254
- t.string "domesticity_id"
255
- t.string "bts_data_source_code"
256
- t.integer "departures_performed"
257
- t.integer "payload"
258
- t.integer "total_seats"
259
- t.integer "passengers"
260
- t.integer "freight"
261
- t.integer "mail"
262
- t.integer "ramp_to_ramp"
263
- t.integer "air_time"
264
- t.float "load_factor"
265
- t.float "freight_share"
266
- t.integer "distance"
267
- t.integer "departures_scheduled"
268
- t.string "airline_iata_code"
269
- t.string "dot_airline_id_code"
270
- t.string "unique_carrier_name"
271
- t.string "unique_carrier_entity"
272
- t.string "region"
273
- t.string "current_airline_iata_code"
274
- t.string "carrier_name"
275
- t.integer "carrier_group"
276
- t.integer "carrier_group_new"
277
- t.string "origin_airport_iata_code"
278
- t.string "origin_city_name"
279
- t.integer "origin_city_num"
280
- t.string "origin_state_abr"
281
- t.string "origin_state_fips"
282
- t.string "origin_state_nm"
283
- t.string "origin_country_iso_3166_code"
284
- t.string "origin_country_name"
285
- t.integer "origin_wac"
286
- t.string "dest_airport_iata_code"
287
- t.string "dest_city_name"
288
- t.integer "dest_city_num"
289
- t.string "dest_state_abr"
290
- t.string "dest_state_fips"
291
- t.string "dest_state_nm"
292
- t.string "dest_country_iso_3166_code"
293
- t.string "dest_country_name"
294
- t.integer "dest_wac"
295
- t.integer "bts_aircraft_type_code"
296
- t.integer "year"
297
- t.integer "quarter"
298
- t.integer "month"
299
- t.float "seats"
300
- t.string "payload_units"
301
- t.string "freight_units"
302
- t.string "mail_units"
303
- t.string "distance_units"
304
- t.datetime "created_at"
305
- t.datetime "updated_at"
306
- end
307
-
308
- create_table "flight_services", :primary_key => "name", :id => false, :force => true do |t|
309
- t.string 'name'
310
- t.string "bts_service_class_code"
311
- t.datetime "created_at"
312
- t.datetime "updated_at"
313
- end
314
-
315
4
  create_table "flight_records", :force => true do |t|
316
5
  t.date "date"
317
6
  t.datetime "created_at"
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flight
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 19
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 5
9
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
10
11
  platform: ruby
11
12
  authors:
12
13
  - Andy Rossmeissl
@@ -18,28 +19,33 @@ autorequire:
18
19
  bindir: bin
19
20
  cert_chain: []
20
21
 
21
- date: 2010-07-15 00:00:00 -04:00
22
+ date: 2010-07-20 00:00:00 -04:00
22
23
  default_executable:
23
24
  dependencies:
24
25
  - !ruby/object:Gem::Dependency
25
- name: rake
26
+ type: :development
26
27
  prerelease: false
27
- requirement: &id001 !ruby/object:Gem::Requirement
28
+ name: rake
29
+ version_requirements: &id001 !ruby/object:Gem::Requirement
30
+ none: false
28
31
  requirements:
29
32
  - - ">="
30
33
  - !ruby/object:Gem::Version
34
+ hash: 3
31
35
  segments:
32
36
  - 0
33
37
  version: "0"
34
- type: :development
35
- version_requirements: *id001
38
+ requirement: *id001
36
39
  - !ruby/object:Gem::Dependency
37
- name: bundler
40
+ type: :development
38
41
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
42
+ name: bundler
43
+ version_requirements: &id002 !ruby/object:Gem::Requirement
44
+ none: false
40
45
  requirements:
41
46
  - - ">="
42
47
  - !ruby/object:Gem::Version
48
+ hash: 62196359
43
49
  segments:
44
50
  - 1
45
51
  - 0
@@ -47,76 +53,119 @@ dependencies:
47
53
  - beta
48
54
  - 2
49
55
  version: 1.0.0.beta.2
50
- type: :development
51
- version_requirements: *id002
56
+ requirement: *id002
52
57
  - !ruby/object:Gem::Dependency
53
- name: jeweler
58
+ type: :development
54
59
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
60
+ name: jeweler
61
+ version_requirements: &id003 !ruby/object:Gem::Requirement
62
+ none: false
56
63
  requirements:
57
64
  - - "="
58
65
  - !ruby/object:Gem::Version
66
+ hash: 7
59
67
  segments:
60
68
  - 1
61
69
  - 4
62
70
  - 0
63
71
  version: 1.4.0
64
- type: :development
65
- version_requirements: *id003
72
+ requirement: *id003
66
73
  - !ruby/object:Gem::Dependency
67
- name: cucumber
74
+ type: :development
68
75
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
76
+ name: cucumber
77
+ version_requirements: &id004 !ruby/object:Gem::Requirement
78
+ none: false
70
79
  requirements:
71
80
  - - "="
72
81
  - !ruby/object:Gem::Version
82
+ hash: 57
73
83
  segments:
74
84
  - 0
75
85
  - 8
76
86
  - 3
77
87
  version: 0.8.3
78
- type: :development
79
- version_requirements: *id004
88
+ requirement: *id004
80
89
  - !ruby/object:Gem::Dependency
81
- name: rdoc
90
+ type: :development
82
91
  prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
92
+ name: rdoc
93
+ version_requirements: &id005 !ruby/object:Gem::Requirement
94
+ none: false
84
95
  requirements:
85
96
  - - ">="
86
97
  - !ruby/object:Gem::Version
98
+ hash: 3
87
99
  segments:
88
100
  - 0
89
101
  version: "0"
90
- type: :development
91
- version_requirements: *id005
102
+ requirement: *id005
92
103
  - !ruby/object:Gem::Dependency
93
- name: sniff
104
+ type: :development
94
105
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
106
+ name: rspec
107
+ version_requirements: &id006 !ruby/object:Gem::Requirement
108
+ none: false
96
109
  requirements:
97
110
  - - "="
98
111
  - !ruby/object:Gem::Version
112
+ hash: 62196417
99
113
  segments:
114
+ - 2
100
115
  - 0
101
116
  - 0
102
- - 3
103
- version: 0.0.3
117
+ - beta
118
+ - 17
119
+ version: 2.0.0.beta.17
120
+ requirement: *id006
121
+ - !ruby/object:Gem::Dependency
104
122
  type: :development
105
- version_requirements: *id006
123
+ prerelease: false
124
+ name: sniff
125
+ version_requirements: &id007 !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - "="
129
+ - !ruby/object:Gem::Version
130
+ hash: 21
131
+ segments:
132
+ - 0
133
+ - 0
134
+ - 5
135
+ version: 0.0.5
136
+ requirement: *id007
106
137
  - !ruby/object:Gem::Dependency
107
- name: weighted_average
138
+ type: :runtime
108
139
  prerelease: false
109
- requirement: &id007 !ruby/object:Gem::Requirement
140
+ name: weighted_average
141
+ version_requirements: &id008 !ruby/object:Gem::Requirement
142
+ none: false
110
143
  requirements:
111
144
  - - "="
112
145
  - !ruby/object:Gem::Version
146
+ hash: 23
113
147
  segments:
114
148
  - 0
115
149
  - 0
116
150
  - 4
117
151
  version: 0.0.4
152
+ requirement: *id008
153
+ - !ruby/object:Gem::Dependency
118
154
  type: :runtime
119
- version_requirements: *id007
155
+ prerelease: false
156
+ name: earth
157
+ version_requirements: &id009 !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - "="
161
+ - !ruby/object:Gem::Version
162
+ hash: 17
163
+ segments:
164
+ - 0
165
+ - 0
166
+ - 7
167
+ version: 0.0.7
168
+ requirement: *id009
120
169
  description: A software model in Ruby for the greenhouse gas emissions of a flight
121
170
  email: andy@rossmeissl.net
122
171
  executables: []
@@ -134,21 +183,12 @@ files:
134
183
  - lib/flight/characterization.rb
135
184
  - lib/flight/data.rb
136
185
  - lib/flight/summarization.rb
137
- - lib/test_support/data_models/aircraft.rb
138
- - lib/test_support/data_models/aircraft_class.rb
139
- - lib/test_support/data_models/aircraft_manufacturer.rb
140
- - lib/test_support/data_models/airline.rb
141
- - lib/test_support/data_models/airport.rb
142
- - lib/test_support/data_models/flight_configuration.rb
143
- - lib/test_support/data_models/flight_distance_class.rb
144
- - lib/test_support/data_models/flight_domesticity.rb
145
- - lib/test_support/data_models/flight_fuel_type.rb
146
- - lib/test_support/data_models/flight_propulsion.rb
147
- - lib/test_support/data_models/flight_seat_class.rb
148
- - lib/test_support/data_models/flight_segment.rb
149
- - lib/test_support/data_models/flight_service.rb
150
186
  - lib/test_support/db/schema.rb
151
187
  - lib/test_support/flight_record.rb
188
+ - features/step_definitions/carbon_steps.rb
189
+ - features/support/env.rb
190
+ - features/flight_committees.feature
191
+ - features/flight_emissions.feature
152
192
  has_rdoc: true
153
193
  homepage: http://github.com/brighterplanet/flight
154
194
  licenses: []
@@ -159,23 +199,27 @@ rdoc_options:
159
199
  require_paths:
160
200
  - lib
161
201
  required_ruby_version: !ruby/object:Gem::Requirement
202
+ none: false
162
203
  requirements:
163
204
  - - ">="
164
205
  - !ruby/object:Gem::Version
206
+ hash: 3
165
207
  segments:
166
208
  - 0
167
209
  version: "0"
168
210
  required_rubygems_version: !ruby/object:Gem::Requirement
211
+ none: false
169
212
  requirements:
170
213
  - - ">="
171
214
  - !ruby/object:Gem::Version
215
+ hash: 3
172
216
  segments:
173
217
  - 0
174
218
  version: "0"
175
219
  requirements: []
176
220
 
177
221
  rubyforge_project:
178
- rubygems_version: 1.3.6
222
+ rubygems_version: 1.3.7
179
223
  signing_key:
180
224
  specification_version: 3
181
225
  summary: A carbon model
@@ -184,18 +228,5 @@ test_files:
184
228
  - features/support/env.rb
185
229
  - features/flight_committees.feature
186
230
  - features/flight_emissions.feature
187
- - lib/test_support/data_models/aircraft.rb
188
- - lib/test_support/data_models/aircraft_class.rb
189
- - lib/test_support/data_models/aircraft_manufacturer.rb
190
- - lib/test_support/data_models/airline.rb
191
- - lib/test_support/data_models/airport.rb
192
- - lib/test_support/data_models/flight_configuration.rb
193
- - lib/test_support/data_models/flight_distance_class.rb
194
- - lib/test_support/data_models/flight_domesticity.rb
195
- - lib/test_support/data_models/flight_fuel_type.rb
196
- - lib/test_support/data_models/flight_propulsion.rb
197
- - lib/test_support/data_models/flight_seat_class.rb
198
- - lib/test_support/data_models/flight_segment.rb
199
- - lib/test_support/data_models/flight_service.rb
200
231
  - lib/test_support/db/schema.rb
201
232
  - lib/test_support/flight_record.rb
@@ -1,25 +0,0 @@
1
- class Aircraft < ActiveRecord::Base
2
- set_table_name 'aircraft'
3
- set_primary_key :icao_code
4
-
5
- belongs_to :aircraft_class, :foreign_key => 'brighter_planet_aircraft_class_code'
6
- belongs_to :manufacturer, :foreign_key => 'manufacturer_name', :class_name => 'AircraftManufacturer'
7
- has_many :segments, :foreign_key => 'bts_aircraft_type_code', :class_name => "FlightSegment", :primary_key => 'bts_aircraft_type_code'
8
-
9
- falls_back_on :m3 => lambda { weighted_average(:m3, :weighted_by => [:segments, :passengers]) }, # 9.73423082858437e-08 r7110: 8.6540464368905e-8 r6972: 8.37e-8
10
- :m2 => lambda { weighted_average(:m2, :weighted_by => [:segments, :passengers]) }, # -0.000134350543484608 r7110: -0.00015337661447817 r6972: -4.09e-5
11
- :m1 => lambda { weighted_average(:m1, :weighted_by => [:segments, :passengers]) }, # 6.7728101555467 r7110: 4.7781966869412 r6972: 7.85
12
- :endpoint_fuel => lambda { weighted_average(:endpoint_fuel, :weighted_by => [:segments, :passengers]) }, # 1527.81790006167 r7110: 1065.3476555284 r6972: 1.72e3
13
- :seats => lambda { weighted_average(:seats, :weighted_by => [:segments, :passengers]) } # 62.1741
14
-
15
- class << self
16
- def loose_search_columns
17
- @_loose_search_columns ||= [primary_key, :manufacturer_name, :name]
18
- end
19
-
20
- # search by name
21
- def loose_right_reader
22
- @_loose_right_reader ||= lambda { |record| record[1,2].join ' ' }
23
- end
24
- end
25
- end
@@ -1,6 +0,0 @@
1
- class AircraftClass < ActiveRecord::Base
2
- set_primary_key :brighter_planet_aircraft_class_code
3
-
4
- has_many :aircraft, :foreign_key => 'brighter_planet_aircraft_class_code'
5
- # has_many :airline_aircraft_seat_classes, :through => :aircraft
6
- end
@@ -1,5 +0,0 @@
1
- class AircraftManufacturer < ActiveRecord::Base
2
- set_primary_key :name
3
-
4
- has_many :aircraft, :foreign_key => 'manufacturer_name'
5
- end
@@ -1,24 +0,0 @@
1
- class Airline < ActiveRecord::Base
2
- set_primary_key :iata_code
3
-
4
- # has_many :airline_aircraft, :class_name => 'AirlineAircraft'
5
- # has_many :seat_classes, :class_name => 'AirlineSeatClass'
6
- has_many :segments, :class_name => "FlightSegment", :foreign_key => 'airline_iata_code'
7
- # has_many :airline_aircraft_seat_classes, :class_name => 'AirlineAircraftSeatClass'
8
-
9
-
10
- class << self
11
- def loose_search_columns
12
- @_loose_search_columns ||= [primary_key, :name]
13
- end
14
-
15
- # search by name
16
- def loose_right_reader
17
- @_loose_right_reader ||= lambda { |record| record[1] }
18
- end
19
- end
20
-
21
- def all_flights_domestic?
22
- !international?
23
- end
24
- end
@@ -1,52 +0,0 @@
1
- class Airport < ActiveRecord::Base
2
- set_primary_key :iata_code
3
-
4
- acts_as_mappable :default_units => :nms,
5
- :lat_column_name => :latitude,
6
- :lng_column_name => :longitude
7
-
8
- class << self
9
- def loose_search_columns
10
- @_loose_search_columns ||= [primary_key, :city]
11
- end
12
-
13
- # search by name
14
- def loose_right_reader
15
- @_loose_right_reader ||= lambda { |record| record[1] }
16
- end
17
- end
18
-
19
- def name_and_location
20
- [ name.to_s.titleize, city, country.andand.name ].select(&:present?).join ', '
21
- end
22
-
23
- # --------------------------------
24
- # virtual has_many association
25
- # has_many :segments won't work because there's no general way to specify the correct conditions
26
- # even if you get clever with it, like
27
- # has_many :segments,
28
- # :class_name => 'FlightSegment',
29
- # :foreign_key => 'origin_airport_id',
30
- # :conditions => 'flight_segments.destination_airport_id = #{id}'
31
- # you get queries like "`flight_segments`.origin_airport_id = 3654 AND (flight_segments.destination_airport_id = 3654))"
32
- # in which you notice the AND which must be an OR
33
- # and you can't just do finder_sql, because that breaks any other :select
34
- def segments
35
- FlightSegment.scoped :conditions => ['origin_airport_id = ? OR destination_airport_id = ?', id, id]
36
- end
37
- # --------------------------------
38
-
39
- belongs_to :country, :foreign_key => 'country_iso_3166_code'
40
-
41
- def all_flights_from_here_domestic?
42
- !international_origin?
43
- end
44
-
45
- def all_flights_to_here_domestic?
46
- !international_destination?
47
- end
48
-
49
- def united_states?
50
- country == Country.united_states
51
- end
52
- end
@@ -1,3 +0,0 @@
1
- class FlightConfiguration < ActiveRecord::Base
2
- set_primary_key :name
3
- end
@@ -1,3 +0,0 @@
1
- class FlightDistanceClass < ActiveRecord::Base
2
- set_primary_key :name
3
- end
@@ -1,3 +0,0 @@
1
- class FlightDomesticity < ActiveRecord::Base
2
- set_primary_key :name
3
- end
@@ -1,6 +0,0 @@
1
- class FlightFuelType < ActiveRecord::Base
2
- # this fallback is jet fuel
3
- falls_back_on :emission_factor => (21.09.pounds.to(:kilograms) / 1.gallons.to(:litres)), # in pounds CO2/gallon fuel: http://www.eia.doe.gov/oiaf/1605/excel/Fuel%20Emission%20Factors.xls
4
- :radiative_forcing_index => 2, # from Matt
5
- :density => 3.057 # kg / gal
6
- end
@@ -1,3 +0,0 @@
1
- class FlightPropulsion < ActiveRecord::Base
2
- set_primary_key :name
3
- end
@@ -1,8 +0,0 @@
1
- class FlightSeatClass < ActiveRecord::Base
2
- set_primary_key :name
3
- # has_many :airline_seat_classes, :class_name => 'AirlineSeatClass'
4
- # has_many :aircraft_seat_classes, :class_name => 'AircraftSeatClass'
5
- # has_many :airline_aircraft_seat_classes, :class_name => 'AirlineAircraftSeatClass'
6
-
7
- falls_back_on :multiplier => 1
8
- end
@@ -1,30 +0,0 @@
1
- class FlightSegment < ActiveRecord::Base
2
- set_primary_key :row_hash
3
-
4
- extend CohortScope
5
- self.minimum_cohort_size = 5 #FIXME ??
6
-
7
- belongs_to :airline, :foreign_key => 'airline_iata_code'
8
- belongs_to :origin_airport, :foreign_key => "origin_airport_iata_code", :class_name => 'Airport'
9
- belongs_to :destination_airport, :foreign_key => "dest_airport_iata_code", :class_name => 'Airport'
10
- belongs_to :origin_country, :foreign_key => 'origin_country_iso_3166_code', :class_name => 'Country'
11
- belongs_to :destination_country, :foreign_key => 'dest_country_iso_3166_code', :class_name => 'Country'
12
- belongs_to :aircraft, :foreign_key => 'bts_aircraft_type_code', :primary_key => 'bts_aircraft_type_code'
13
- belongs_to :propulsion, :class_name => 'FlightPropulsion'
14
- belongs_to :configuration, :class_name => 'FlightConfiguration'
15
- belongs_to :service_class, :class_name => 'FlightService'
16
- belongs_to :domesticity, :class_name => 'FlightDomesticity'
17
-
18
- falls_back_on :load_factor => lambda { weighted_average(:load_factor, :weighted_by => :passengers) }, # 0.78222911236768
19
- :freight_share => lambda { weighted_average(:freight_share, :weighted_by => :passengers) }, # 0.024017329363736
20
- :seats => lambda { weighted_average :seats, :weighted_by => :passengers }
21
-
22
- INPUT_CHARACTERISTICS = [
23
- :origin_airport,
24
- :destination_airport,
25
- :aircraft,
26
- :airline,
27
- :propulsion,
28
- :domesticity
29
- ]
30
- end
@@ -1,3 +0,0 @@
1
- class FlightService < ActiveRecord::Base
2
- set_primary_key :name
3
- end