emitter 0.0.13 → 0.1.0
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/lib/emitter.rb +23 -12
- data/spec/emitter_spec.rb +36 -0
- data/spec/fixtures/biplane/lib/biplane/carbon_model.rb +18 -0
- data/spec/fixtures/biplane/lib/biplane/characterization.rb +17 -0
- data/spec/fixtures/biplane/lib/biplane/data.rb +19 -0
- data/spec/fixtures/biplane/lib/biplane/summarization.rb +14 -0
- data/spec/fixtures/biplane/lib/biplane.rb +7 -0
- data/spec/fixtures/dirigible/lib/dirigible/carbon_model.rb +18 -0
- data/spec/fixtures/dirigible/lib/dirigible/characterization.rb +17 -0
- data/spec/fixtures/dirigible/lib/dirigible/data.rb +19 -0
- data/spec/fixtures/dirigible/lib/dirigible/fallback.rb +9 -0
- data/spec/fixtures/dirigible/lib/dirigible/relationships.rb +9 -0
- data/spec/fixtures/dirigible/lib/dirigible/summarization.rb +14 -0
- data/spec/fixtures/dirigible/lib/dirigible.rb +7 -0
- data/spec/spec_helper.rb +9 -0
- metadata +73 -30
data/lib/emitter.rb
CHANGED
@@ -1,11 +1,3 @@
|
|
1
|
-
require 'cohort_scope'
|
2
|
-
require 'falls_back_on'
|
3
|
-
require 'falls_back_on/active_record_ext'
|
4
|
-
# sabshere 8/15/10 why aren't these required here?
|
5
|
-
# require 'characterizable'
|
6
|
-
# require 'leap'
|
7
|
-
# require 'weighted_average'
|
8
|
-
|
9
1
|
module BrighterPlanet
|
10
2
|
module Emitter
|
11
3
|
def included(base)
|
@@ -13,14 +5,33 @@ module BrighterPlanet
|
|
13
5
|
|
14
6
|
emitter_klass = self.to_s.split('::').last.underscore
|
15
7
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
8
|
+
%w{carbon_model characterization data fallback relationships summarization}.each do |component|
|
9
|
+
begin
|
10
|
+
require "#{emitter_klass}/#{component}"
|
11
|
+
rescue LoadError
|
12
|
+
end
|
13
|
+
end
|
20
14
|
|
15
|
+
require 'leap'
|
16
|
+
require 'cohort_scope'
|
21
17
|
base.send :include, const_get('CarbonModel')
|
18
|
+
|
19
|
+
require 'characterizable'
|
22
20
|
base.send :include, const_get('Characterization')
|
21
|
+
|
22
|
+
require 'data_miner'
|
23
23
|
base.send :include, const_get('Data')
|
24
|
+
|
25
|
+
if const_defined?('Fallback')
|
26
|
+
require 'falls_back_on'
|
27
|
+
require 'falls_back_on/active_record_ext'
|
28
|
+
base.send :include, const_get('Fallback')
|
29
|
+
end
|
30
|
+
|
31
|
+
if const_defined?('Relationships')
|
32
|
+
base.send :include, const_get('Relationships')
|
33
|
+
end
|
34
|
+
|
24
35
|
base.send :include, const_get('Summarization')
|
25
36
|
end
|
26
37
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BrighterPlanet::Emitter do
|
4
|
+
describe '.included' do
|
5
|
+
before :all do
|
6
|
+
require 'active_record'
|
7
|
+
class Aircraft < ActiveRecord::Base; end
|
8
|
+
class Airship < ActiveRecord::Base; end
|
9
|
+
|
10
|
+
$:.unshift File.expand_path('fixtures/dirigible/lib', File.dirname(__FILE__))
|
11
|
+
require 'dirigible'
|
12
|
+
Airship.send :include, BrighterPlanet::Dirigible
|
13
|
+
Airship.execute_schema
|
14
|
+
|
15
|
+
$:.unshift File.expand_path('fixtures/biplane/lib', File.dirname(__FILE__))
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should include fallback if available' do
|
19
|
+
Airship.new.kind_of?(BrighterPlanet::Dirigible::Fallback).
|
20
|
+
should be_true
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should include relationships if available' do
|
24
|
+
Airship.new.kind_of?(BrighterPlanet::Dirigible::Relationships).
|
25
|
+
should be_true
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should not include fallback or relationships if there are none' do
|
29
|
+
expect do
|
30
|
+
require 'biplane'
|
31
|
+
Aircraft.send :include, BrighterPlanet::Biplane
|
32
|
+
end.should_not raise_error
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'leap'
|
2
|
+
|
3
|
+
module BrighterPlanet
|
4
|
+
module Biplane
|
5
|
+
module CarbonModel
|
6
|
+
def self.included(base)
|
7
|
+
base.extend ::Leap::Subject
|
8
|
+
base.decide :emission, :with => :characteristics do
|
9
|
+
committee :emission do # returns kg CO2e
|
10
|
+
quorum 'default' do
|
11
|
+
100.0
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'characterizable'
|
2
|
+
|
3
|
+
module BrighterPlanet
|
4
|
+
module Biplane
|
5
|
+
module Characterization
|
6
|
+
def self.included(base)
|
7
|
+
base.send :include, Characterizable
|
8
|
+
base.characterize do
|
9
|
+
has :distance
|
10
|
+
has :payload
|
11
|
+
has :dirigible_class
|
12
|
+
end
|
13
|
+
base.add_implicit_characteristics
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'data_miner'
|
2
|
+
|
3
|
+
module BrighterPlanet
|
4
|
+
module Biplane
|
5
|
+
module Data
|
6
|
+
def self.included(base)
|
7
|
+
base.data_miner do
|
8
|
+
schema do
|
9
|
+
float :distance
|
10
|
+
float :payload
|
11
|
+
integer :dirigible_class_id
|
12
|
+
end
|
13
|
+
|
14
|
+
process :run_data_miner_on_belongs_to_associations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'leap'
|
2
|
+
|
3
|
+
module BrighterPlanet
|
4
|
+
module Dirigible
|
5
|
+
module CarbonModel
|
6
|
+
def self.included(base)
|
7
|
+
base.extend ::Leap::Subject
|
8
|
+
base.decide :emission, :with => :characteristics do
|
9
|
+
committee :emission do # returns kg CO2e
|
10
|
+
quorum 'default' do
|
11
|
+
100.0
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'characterizable'
|
2
|
+
|
3
|
+
module BrighterPlanet
|
4
|
+
module Dirigible
|
5
|
+
module Characterization
|
6
|
+
def self.included(base)
|
7
|
+
base.send :include, Characterizable
|
8
|
+
base.characterize do
|
9
|
+
has :distance
|
10
|
+
has :payload
|
11
|
+
has :dirigible_class
|
12
|
+
end
|
13
|
+
base.add_implicit_characteristics
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'data_miner'
|
2
|
+
|
3
|
+
module BrighterPlanet
|
4
|
+
module Dirigible
|
5
|
+
module Data
|
6
|
+
def self.included(base)
|
7
|
+
base.data_miner do
|
8
|
+
schema do
|
9
|
+
float :distance
|
10
|
+
float :payload
|
11
|
+
integer :dirigible_class_id
|
12
|
+
end
|
13
|
+
|
14
|
+
process :run_data_miner_on_belongs_to_associations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.13
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andy Rossmeissl
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2010-09-
|
22
|
+
date: 2010-09-21 00:00:00 -04:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -119,9 +119,25 @@ dependencies:
|
|
119
119
|
type: :development
|
120
120
|
version_requirements: *id006
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
122
|
+
name: sniff
|
123
123
|
prerelease: false
|
124
124
|
requirement: &id007 !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ~>
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 3
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
- 1
|
133
|
+
- 12
|
134
|
+
version: 0.1.12
|
135
|
+
type: :development
|
136
|
+
version_requirements: *id007
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: activesupport
|
139
|
+
prerelease: false
|
140
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
125
141
|
none: false
|
126
142
|
requirements:
|
127
143
|
- - ">="
|
@@ -133,11 +149,11 @@ dependencies:
|
|
133
149
|
- 0
|
134
150
|
version: 3.0.0
|
135
151
|
type: :runtime
|
136
|
-
version_requirements: *
|
152
|
+
version_requirements: *id008
|
137
153
|
- !ruby/object:Gem::Dependency
|
138
154
|
name: characterizable
|
139
155
|
prerelease: false
|
140
|
-
requirement: &
|
156
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
141
157
|
none: false
|
142
158
|
requirements:
|
143
159
|
- - ">="
|
@@ -149,11 +165,11 @@ dependencies:
|
|
149
165
|
- 16
|
150
166
|
version: 0.0.16
|
151
167
|
type: :runtime
|
152
|
-
version_requirements: *
|
168
|
+
version_requirements: *id009
|
153
169
|
- !ruby/object:Gem::Dependency
|
154
170
|
name: cohort_scope
|
155
171
|
prerelease: false
|
156
|
-
requirement: &
|
172
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
157
173
|
none: false
|
158
174
|
requirements:
|
159
175
|
- - ">="
|
@@ -165,11 +181,11 @@ dependencies:
|
|
165
181
|
- 7
|
166
182
|
version: 0.0.7
|
167
183
|
type: :runtime
|
168
|
-
version_requirements: *
|
184
|
+
version_requirements: *id010
|
169
185
|
- !ruby/object:Gem::Dependency
|
170
186
|
name: data_miner
|
171
187
|
prerelease: false
|
172
|
-
requirement: &
|
188
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
173
189
|
none: false
|
174
190
|
requirements:
|
175
191
|
- - ">="
|
@@ -181,11 +197,11 @@ dependencies:
|
|
181
197
|
- 3
|
182
198
|
version: 0.5.3
|
183
199
|
type: :runtime
|
184
|
-
version_requirements: *
|
200
|
+
version_requirements: *id011
|
185
201
|
- !ruby/object:Gem::Dependency
|
186
202
|
name: earth
|
187
203
|
prerelease: false
|
188
|
-
requirement: &
|
204
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
189
205
|
none: false
|
190
206
|
requirements:
|
191
207
|
- - ~>
|
@@ -197,11 +213,11 @@ dependencies:
|
|
197
213
|
- 2
|
198
214
|
version: 0.1.2
|
199
215
|
type: :runtime
|
200
|
-
version_requirements: *
|
216
|
+
version_requirements: *id012
|
201
217
|
- !ruby/object:Gem::Dependency
|
202
218
|
name: falls_back_on
|
203
219
|
prerelease: false
|
204
|
-
requirement: &
|
220
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
205
221
|
none: false
|
206
222
|
requirements:
|
207
223
|
- - "="
|
@@ -213,11 +229,11 @@ dependencies:
|
|
213
229
|
- 3
|
214
230
|
version: 0.0.3
|
215
231
|
type: :runtime
|
216
|
-
version_requirements: *
|
232
|
+
version_requirements: *id013
|
217
233
|
- !ruby/object:Gem::Dependency
|
218
234
|
name: fast_timestamp
|
219
235
|
prerelease: false
|
220
|
-
requirement: &
|
236
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
221
237
|
none: false
|
222
238
|
requirements:
|
223
239
|
- - ">="
|
@@ -229,11 +245,11 @@ dependencies:
|
|
229
245
|
- 4
|
230
246
|
version: 0.0.4
|
231
247
|
type: :runtime
|
232
|
-
version_requirements: *
|
248
|
+
version_requirements: *id014
|
233
249
|
- !ruby/object:Gem::Dependency
|
234
250
|
name: leap
|
235
251
|
prerelease: false
|
236
|
-
requirement: &
|
252
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
237
253
|
none: false
|
238
254
|
requirements:
|
239
255
|
- - ">="
|
@@ -245,11 +261,11 @@ dependencies:
|
|
245
261
|
- 3
|
246
262
|
version: 0.4.3
|
247
263
|
type: :runtime
|
248
|
-
version_requirements: *
|
264
|
+
version_requirements: *id015
|
249
265
|
- !ruby/object:Gem::Dependency
|
250
266
|
name: summary_judgement
|
251
267
|
prerelease: false
|
252
|
-
requirement: &
|
268
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
253
269
|
none: false
|
254
270
|
requirements:
|
255
271
|
- - ">="
|
@@ -261,11 +277,11 @@ dependencies:
|
|
261
277
|
- 8
|
262
278
|
version: 1.3.8
|
263
279
|
type: :runtime
|
264
|
-
version_requirements: *
|
280
|
+
version_requirements: *id016
|
265
281
|
- !ruby/object:Gem::Dependency
|
266
282
|
name: timeframe
|
267
283
|
prerelease: false
|
268
|
-
requirement: &
|
284
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
269
285
|
none: false
|
270
286
|
requirements:
|
271
287
|
- - ">="
|
@@ -277,11 +293,11 @@ dependencies:
|
|
277
293
|
- 8
|
278
294
|
version: 0.0.8
|
279
295
|
type: :runtime
|
280
|
-
version_requirements: *
|
296
|
+
version_requirements: *id017
|
281
297
|
- !ruby/object:Gem::Dependency
|
282
298
|
name: weighted_average
|
283
299
|
prerelease: false
|
284
|
-
requirement: &
|
300
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
285
301
|
none: false
|
286
302
|
requirements:
|
287
303
|
- - ">="
|
@@ -293,11 +309,11 @@ dependencies:
|
|
293
309
|
- 4
|
294
310
|
version: 0.0.4
|
295
311
|
type: :runtime
|
296
|
-
version_requirements: *
|
312
|
+
version_requirements: *id018
|
297
313
|
- !ruby/object:Gem::Dependency
|
298
314
|
name: rocco
|
299
315
|
prerelease: false
|
300
|
-
requirement: &
|
316
|
+
requirement: &id019 !ruby/object:Gem::Requirement
|
301
317
|
none: false
|
302
318
|
requirements:
|
303
319
|
- - ~>
|
@@ -308,7 +324,7 @@ dependencies:
|
|
308
324
|
- 4
|
309
325
|
version: "0.4"
|
310
326
|
type: :development
|
311
|
-
version_requirements: *
|
327
|
+
version_requirements: *id019
|
312
328
|
description: A software model in Ruby for the greenhouse gas emissions
|
313
329
|
email: derek@brighterplanet.com
|
314
330
|
executables: []
|
@@ -321,6 +337,20 @@ files:
|
|
321
337
|
- README.rdoc
|
322
338
|
- lib/emitter.rb
|
323
339
|
- lib/emitter/tasks.rb
|
340
|
+
- spec/emitter_spec.rb
|
341
|
+
- spec/fixtures/biplane/lib/biplane/carbon_model.rb
|
342
|
+
- spec/fixtures/biplane/lib/biplane/characterization.rb
|
343
|
+
- spec/fixtures/biplane/lib/biplane/data.rb
|
344
|
+
- spec/fixtures/biplane/lib/biplane/summarization.rb
|
345
|
+
- spec/fixtures/biplane/lib/biplane.rb
|
346
|
+
- spec/fixtures/dirigible/lib/dirigible/carbon_model.rb
|
347
|
+
- spec/fixtures/dirigible/lib/dirigible/characterization.rb
|
348
|
+
- spec/fixtures/dirigible/lib/dirigible/data.rb
|
349
|
+
- spec/fixtures/dirigible/lib/dirigible/fallback.rb
|
350
|
+
- spec/fixtures/dirigible/lib/dirigible/relationships.rb
|
351
|
+
- spec/fixtures/dirigible/lib/dirigible/summarization.rb
|
352
|
+
- spec/fixtures/dirigible/lib/dirigible.rb
|
353
|
+
- spec/spec_helper.rb
|
324
354
|
has_rdoc: true
|
325
355
|
homepage: http://github.com/brighterplanet/emitter
|
326
356
|
licenses: []
|
@@ -355,5 +385,18 @@ rubygems_version: 1.3.7
|
|
355
385
|
signing_key:
|
356
386
|
specification_version: 3
|
357
387
|
summary: The mother of all carbon models
|
358
|
-
test_files:
|
359
|
-
|
388
|
+
test_files:
|
389
|
+
- spec/emitter_spec.rb
|
390
|
+
- spec/fixtures/biplane/lib/biplane/carbon_model.rb
|
391
|
+
- spec/fixtures/biplane/lib/biplane/characterization.rb
|
392
|
+
- spec/fixtures/biplane/lib/biplane/data.rb
|
393
|
+
- spec/fixtures/biplane/lib/biplane/summarization.rb
|
394
|
+
- spec/fixtures/biplane/lib/biplane.rb
|
395
|
+
- spec/fixtures/dirigible/lib/dirigible/carbon_model.rb
|
396
|
+
- spec/fixtures/dirigible/lib/dirigible/characterization.rb
|
397
|
+
- spec/fixtures/dirigible/lib/dirigible/data.rb
|
398
|
+
- spec/fixtures/dirigible/lib/dirigible/fallback.rb
|
399
|
+
- spec/fixtures/dirigible/lib/dirigible/relationships.rb
|
400
|
+
- spec/fixtures/dirigible/lib/dirigible/summarization.rb
|
401
|
+
- spec/fixtures/dirigible/lib/dirigible.rb
|
402
|
+
- spec/spec_helper.rb
|