emitter 0.11.2 → 0.12.1
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/Gemfile +0 -8
- data/README.markdown +50 -0
- data/Rakefile +1 -0
- data/emitter.gemspec +5 -2
- data/lib/emitter.rb +14 -8
- data/lib/emitter/version.rb +1 -1
- data/spec/emitter_spec.rb +5 -1
- data/spec/spec_helper.rb +1 -2
- metadata +52 -75
- data/README.rdoc +0 -17
data/Gemfile
CHANGED
|
@@ -2,14 +2,6 @@ source :rubygems
|
|
|
2
2
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
|
-
gem 'sniff', :path => ENV['LOCAL_SNIFF'] if ENV['LOCAL_SNIFF']
|
|
6
|
-
gem 'data_miner', :path => ENV['LOCAL_DATA_MINER'] if ENV['LOCAL_DATA_MINER']
|
|
7
|
-
gem 'earth', :path => ENV['LOCAL_EARTH'] if ENV['LOCAL_EARTH']
|
|
8
|
-
|
|
9
|
-
gem 'activerecord', '~>3'
|
|
10
|
-
gem 'bueller'
|
|
11
|
-
gem 'sniff', '>=0.11.0' unless ENV['LOCAL_SNIFF']
|
|
12
|
-
|
|
13
5
|
if RUBY_VERSION < "1.9"
|
|
14
6
|
gem 'fastercsv'
|
|
15
7
|
end
|
data/README.markdown
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# emitter
|
|
2
|
+
|
|
3
|
+
Base module for Brighter Planet's emitters. See the [Brighter Planet developer page](http://brighterplanet.github.com) for details on Brighter Planet's development environment.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
$ gem install emitter
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
# my_emitter.rb
|
|
12
|
+
require 'emitter'
|
|
13
|
+
|
|
14
|
+
class MyEmitter
|
|
15
|
+
include BrighterPlanet::Emitter
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
### Required modules
|
|
19
|
+
|
|
20
|
+
Your emitter must define some modules under `lib/my_emitter/`, they are:
|
|
21
|
+
* `lib/my_emitter/impact_model.rb` - `module MyEmitter::ImpactModel` - defines the [Leap](http://rubygems.org/gems/leap) decisions that calculate an impact.
|
|
22
|
+
* `lib/my_emitter/characterization.rb` - `module MyEmitter::Characterization` - defines the [Characteristics](http://rubygems.org/gems/charisma) that describe the model's inputs.
|
|
23
|
+
* `lib/my_emitter/data.rb` - `module MyEmitter::Data` - defines the [schema](http://rubygems.org/gems/mini\_record) definitions for the emitter and [DataMiner](http://rubygems.org/gems/data\_miner) processes that fetch and store data for the emitter.
|
|
24
|
+
* `lib/my_emitter/relationships.rb` - `module MyEmitter::Relationships` - defines the ActiveRecord relationships between the emitter and other [Earth](http://rubygems.org/gems/earth) models.
|
|
25
|
+
* `lib/my_emitter/summarization.rb` - `moduel MyEmitter::Summarization` - defines phrases that describe various attributes ([SummaryJudgement descriptors](http://rubygems.org/gems/summary\_judgement)) about an emitter that are displayed on CM1's methodology pages.
|
|
26
|
+
|
|
27
|
+
## Tools
|
|
28
|
+
|
|
29
|
+
You can use the [bp gem](http://github.com/brighterplanet/bp) to generate the skeleton for a new emitter.
|
|
30
|
+
|
|
31
|
+
## Magic
|
|
32
|
+
|
|
33
|
+
Emitter, once included, will perform a couple tasks automatically:
|
|
34
|
+
|
|
35
|
+
1. It converts committees into characterizations that are not already characterized.
|
|
36
|
+
1. It adds `auto_upgrade!` and `run_data_miner_on_parent_associations!` tasks to DataMiner so that a call to `MyEmitter.run_data_miner!` will update the emitter's schema and run DataMiner tasks on any belongs\_to associations.
|
|
37
|
+
|
|
38
|
+
## Note on Patches/Pull Requests
|
|
39
|
+
|
|
40
|
+
* Fork the project.
|
|
41
|
+
* Make your feature addition or bug fix.
|
|
42
|
+
* Add tests for it. This is important so I don't break it in a
|
|
43
|
+
future version unintentionally.
|
|
44
|
+
* Commit, do not mess with rakefile, version, or history.
|
|
45
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
|
46
|
+
* Send me a pull request. Bonus points for topic branches.
|
|
47
|
+
|
|
48
|
+
## Copyright
|
|
49
|
+
|
|
50
|
+
Copyright 2010, 2011 Brighter Planet, Inc. See LICENSE and LICENSE-PREAMBLE for details.
|
data/Rakefile
CHANGED
data/emitter.gemspec
CHANGED
|
@@ -15,14 +15,17 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
16
16
|
s.require_paths = ["lib"]
|
|
17
17
|
|
|
18
|
+
s.add_dependency 'active_record_inline_schema'
|
|
18
19
|
s.add_dependency 'activesupport', '>=2.3.10'
|
|
19
20
|
s.add_dependency 'charisma'
|
|
20
21
|
s.add_dependency 'data_miner', '>=2' unless ENV['LOCAL_DATA_MINER']
|
|
21
|
-
s.add_dependency 'earth', '>=0.5.1' unless ENV['LOCAL_EARTH']
|
|
22
22
|
s.add_dependency 'falls_back_on'
|
|
23
23
|
s.add_dependency 'leap', '>=0.5.4'
|
|
24
24
|
s.add_dependency 'summary_judgement'
|
|
25
25
|
s.add_dependency 'timeframe'
|
|
26
26
|
s.add_dependency 'weighted_average'
|
|
27
|
-
|
|
27
|
+
|
|
28
|
+
s.add_development_dependency 'activerecord', '~>3'
|
|
29
|
+
s.add_development_dependency 'bueller'
|
|
30
|
+
s.add_development_dependency 'sniff'
|
|
28
31
|
end
|
data/lib/emitter.rb
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
require 'active_record_inline_schema'
|
|
1
2
|
require 'active_support'
|
|
2
3
|
require 'active_support/core_ext'
|
|
3
|
-
require 'leap'
|
|
4
4
|
require 'charisma'
|
|
5
|
-
require 'data_miner'
|
|
6
|
-
require 'summary_judgement'
|
|
7
5
|
require 'falls_back_on'
|
|
8
|
-
require '
|
|
6
|
+
require 'leap'
|
|
7
|
+
require 'summary_judgement'
|
|
9
8
|
|
|
10
9
|
require 'emitter/measurement'
|
|
11
10
|
|
|
@@ -18,6 +17,13 @@ module BrighterPlanet
|
|
|
18
17
|
relationships
|
|
19
18
|
summarization
|
|
20
19
|
}
|
|
20
|
+
|
|
21
|
+
def self.extended(target)
|
|
22
|
+
common_name = target.name.demodulize.underscore
|
|
23
|
+
REQUIRED_COMPONENTS.each do |component|
|
|
24
|
+
require "#{common_name}/#{component}"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
21
27
|
|
|
22
28
|
# "included" not "self.included"
|
|
23
29
|
# why?
|
|
@@ -31,10 +37,6 @@ module BrighterPlanet
|
|
|
31
37
|
# here self is the emitter module
|
|
32
38
|
common_name = self.name.demodulize.underscore
|
|
33
39
|
common_camel = common_name.camelcase
|
|
34
|
-
|
|
35
|
-
REQUIRED_COMPONENTS.each do |component|
|
|
36
|
-
require "#{common_name}/#{component}"
|
|
37
|
-
end
|
|
38
40
|
|
|
39
41
|
base.instance_variable_set :@impact_scope, @impact_scope if @impact_scope
|
|
40
42
|
|
|
@@ -82,6 +84,10 @@ module BrighterPlanet
|
|
|
82
84
|
def impact_scope
|
|
83
85
|
@impact_scope
|
|
84
86
|
end
|
|
87
|
+
|
|
88
|
+
def emitter
|
|
89
|
+
name.demodulize
|
|
90
|
+
end
|
|
85
91
|
end
|
|
86
92
|
end
|
|
87
93
|
end
|
data/lib/emitter/version.rb
CHANGED
data/spec/emitter_spec.rb
CHANGED
|
@@ -29,12 +29,16 @@ describe BrighterPlanet::Emitter do
|
|
|
29
29
|
expect do
|
|
30
30
|
require 'biplane'
|
|
31
31
|
Aircraft.send :include, BrighterPlanet::Biplane
|
|
32
|
-
end.
|
|
32
|
+
end.not_to raise_error
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
it 'should state its own scope' do
|
|
36
36
|
Airship.impact_scope.should == 'Anthropogenic impacts resulting from the inflation, launching, and acceleration of dirigibles'
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
it 'should state its emitter name' do
|
|
40
|
+
Airship.emitter.should == 'Airship'
|
|
41
|
+
end
|
|
38
42
|
|
|
39
43
|
it 'should have extra data_miner steps' do
|
|
40
44
|
Airship.data_miner_script.steps[0].description.should == :auto_upgrade!
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: emitter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.1
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -13,27 +13,33 @@ authors:
|
|
|
13
13
|
autorequire:
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
|
-
date: 2012-
|
|
16
|
+
date: 2012-08-03 00:00:00.000000000Z
|
|
17
17
|
dependencies:
|
|
18
18
|
- !ruby/object:Gem::Dependency
|
|
19
|
-
name:
|
|
20
|
-
requirement: !ruby/object:Gem::Requirement
|
|
19
|
+
name: active_record_inline_schema
|
|
20
|
+
requirement: &2166533340 !ruby/object:Gem::Requirement
|
|
21
21
|
none: false
|
|
22
22
|
requirements:
|
|
23
23
|
- - ! '>='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version:
|
|
25
|
+
version: '0'
|
|
26
26
|
type: :runtime
|
|
27
27
|
prerelease: false
|
|
28
|
-
version_requirements:
|
|
28
|
+
version_requirements: *2166533340
|
|
29
|
+
- !ruby/object:Gem::Dependency
|
|
30
|
+
name: activesupport
|
|
31
|
+
requirement: &2166532720 !ruby/object:Gem::Requirement
|
|
29
32
|
none: false
|
|
30
33
|
requirements:
|
|
31
34
|
- - ! '>='
|
|
32
35
|
- !ruby/object:Gem::Version
|
|
33
36
|
version: 2.3.10
|
|
37
|
+
type: :runtime
|
|
38
|
+
prerelease: false
|
|
39
|
+
version_requirements: *2166532720
|
|
34
40
|
- !ruby/object:Gem::Dependency
|
|
35
41
|
name: charisma
|
|
36
|
-
requirement: !ruby/object:Gem::Requirement
|
|
42
|
+
requirement: &2166532140 !ruby/object:Gem::Requirement
|
|
37
43
|
none: false
|
|
38
44
|
requirements:
|
|
39
45
|
- - ! '>='
|
|
@@ -41,15 +47,10 @@ dependencies:
|
|
|
41
47
|
version: '0'
|
|
42
48
|
type: :runtime
|
|
43
49
|
prerelease: false
|
|
44
|
-
version_requirements:
|
|
45
|
-
none: false
|
|
46
|
-
requirements:
|
|
47
|
-
- - ! '>='
|
|
48
|
-
- !ruby/object:Gem::Version
|
|
49
|
-
version: '0'
|
|
50
|
+
version_requirements: *2166532140
|
|
50
51
|
- !ruby/object:Gem::Dependency
|
|
51
52
|
name: data_miner
|
|
52
|
-
requirement: !ruby/object:Gem::Requirement
|
|
53
|
+
requirement: &2166531300 !ruby/object:Gem::Requirement
|
|
53
54
|
none: false
|
|
54
55
|
requirements:
|
|
55
56
|
- - ! '>='
|
|
@@ -57,31 +58,10 @@ dependencies:
|
|
|
57
58
|
version: '2'
|
|
58
59
|
type: :runtime
|
|
59
60
|
prerelease: false
|
|
60
|
-
version_requirements:
|
|
61
|
-
none: false
|
|
62
|
-
requirements:
|
|
63
|
-
- - ! '>='
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
version: '2'
|
|
66
|
-
- !ruby/object:Gem::Dependency
|
|
67
|
-
name: earth
|
|
68
|
-
requirement: !ruby/object:Gem::Requirement
|
|
69
|
-
none: false
|
|
70
|
-
requirements:
|
|
71
|
-
- - ! '>='
|
|
72
|
-
- !ruby/object:Gem::Version
|
|
73
|
-
version: 0.5.1
|
|
74
|
-
type: :runtime
|
|
75
|
-
prerelease: false
|
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
77
|
-
none: false
|
|
78
|
-
requirements:
|
|
79
|
-
- - ! '>='
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0.5.1
|
|
61
|
+
version_requirements: *2166531300
|
|
82
62
|
- !ruby/object:Gem::Dependency
|
|
83
63
|
name: falls_back_on
|
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirement: &2166530760 !ruby/object:Gem::Requirement
|
|
85
65
|
none: false
|
|
86
66
|
requirements:
|
|
87
67
|
- - ! '>='
|
|
@@ -89,15 +69,10 @@ dependencies:
|
|
|
89
69
|
version: '0'
|
|
90
70
|
type: :runtime
|
|
91
71
|
prerelease: false
|
|
92
|
-
version_requirements:
|
|
93
|
-
none: false
|
|
94
|
-
requirements:
|
|
95
|
-
- - ! '>='
|
|
96
|
-
- !ruby/object:Gem::Version
|
|
97
|
-
version: '0'
|
|
72
|
+
version_requirements: *2166530760
|
|
98
73
|
- !ruby/object:Gem::Dependency
|
|
99
74
|
name: leap
|
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
|
75
|
+
requirement: &2166530020 !ruby/object:Gem::Requirement
|
|
101
76
|
none: false
|
|
102
77
|
requirements:
|
|
103
78
|
- - ! '>='
|
|
@@ -105,15 +80,10 @@ dependencies:
|
|
|
105
80
|
version: 0.5.4
|
|
106
81
|
type: :runtime
|
|
107
82
|
prerelease: false
|
|
108
|
-
version_requirements:
|
|
109
|
-
none: false
|
|
110
|
-
requirements:
|
|
111
|
-
- - ! '>='
|
|
112
|
-
- !ruby/object:Gem::Version
|
|
113
|
-
version: 0.5.4
|
|
83
|
+
version_requirements: *2166530020
|
|
114
84
|
- !ruby/object:Gem::Dependency
|
|
115
85
|
name: summary_judgement
|
|
116
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirement: &2166529420 !ruby/object:Gem::Requirement
|
|
117
87
|
none: false
|
|
118
88
|
requirements:
|
|
119
89
|
- - ! '>='
|
|
@@ -121,15 +91,10 @@ dependencies:
|
|
|
121
91
|
version: '0'
|
|
122
92
|
type: :runtime
|
|
123
93
|
prerelease: false
|
|
124
|
-
version_requirements:
|
|
125
|
-
none: false
|
|
126
|
-
requirements:
|
|
127
|
-
- - ! '>='
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: '0'
|
|
94
|
+
version_requirements: *2166529420
|
|
130
95
|
- !ruby/object:Gem::Dependency
|
|
131
96
|
name: timeframe
|
|
132
|
-
requirement: !ruby/object:Gem::Requirement
|
|
97
|
+
requirement: &2166528860 !ruby/object:Gem::Requirement
|
|
133
98
|
none: false
|
|
134
99
|
requirements:
|
|
135
100
|
- - ! '>='
|
|
@@ -137,15 +102,10 @@ dependencies:
|
|
|
137
102
|
version: '0'
|
|
138
103
|
type: :runtime
|
|
139
104
|
prerelease: false
|
|
140
|
-
version_requirements:
|
|
141
|
-
none: false
|
|
142
|
-
requirements:
|
|
143
|
-
- - ! '>='
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '0'
|
|
105
|
+
version_requirements: *2166528860
|
|
146
106
|
- !ruby/object:Gem::Dependency
|
|
147
107
|
name: weighted_average
|
|
148
|
-
requirement: !ruby/object:Gem::Requirement
|
|
108
|
+
requirement: &2166528240 !ruby/object:Gem::Requirement
|
|
149
109
|
none: false
|
|
150
110
|
requirements:
|
|
151
111
|
- - ! '>='
|
|
@@ -153,28 +113,40 @@ dependencies:
|
|
|
153
113
|
version: '0'
|
|
154
114
|
type: :runtime
|
|
155
115
|
prerelease: false
|
|
156
|
-
version_requirements:
|
|
116
|
+
version_requirements: *2166528240
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: activerecord
|
|
119
|
+
requirement: &2166527600 !ruby/object:Gem::Requirement
|
|
157
120
|
none: false
|
|
158
121
|
requirements:
|
|
159
|
-
- -
|
|
122
|
+
- - ~>
|
|
160
123
|
- !ruby/object:Gem::Version
|
|
161
|
-
version: '
|
|
124
|
+
version: '3'
|
|
125
|
+
type: :development
|
|
126
|
+
prerelease: false
|
|
127
|
+
version_requirements: *2166527600
|
|
162
128
|
- !ruby/object:Gem::Dependency
|
|
163
|
-
name:
|
|
164
|
-
requirement: !ruby/object:Gem::Requirement
|
|
129
|
+
name: bueller
|
|
130
|
+
requirement: &2166527140 !ruby/object:Gem::Requirement
|
|
165
131
|
none: false
|
|
166
132
|
requirements:
|
|
167
133
|
- - ! '>='
|
|
168
134
|
- !ruby/object:Gem::Version
|
|
169
135
|
version: '0'
|
|
170
|
-
type: :
|
|
136
|
+
type: :development
|
|
171
137
|
prerelease: false
|
|
172
|
-
version_requirements:
|
|
138
|
+
version_requirements: *2166527140
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: sniff
|
|
141
|
+
requirement: &2166526400 !ruby/object:Gem::Requirement
|
|
173
142
|
none: false
|
|
174
143
|
requirements:
|
|
175
144
|
- - ! '>='
|
|
176
145
|
- !ruby/object:Gem::Version
|
|
177
146
|
version: '0'
|
|
147
|
+
type: :development
|
|
148
|
+
prerelease: false
|
|
149
|
+
version_requirements: *2166526400
|
|
178
150
|
description: A framework for modelling the impact of real-world entities.
|
|
179
151
|
email:
|
|
180
152
|
- andy@rossmeissl.net
|
|
@@ -191,7 +163,7 @@ files:
|
|
|
191
163
|
- Gemfile
|
|
192
164
|
- LICENSE
|
|
193
165
|
- LICENSE-PREAMBLE
|
|
194
|
-
- README.
|
|
166
|
+
- README.markdown
|
|
195
167
|
- Rakefile
|
|
196
168
|
- emitter.gemspec
|
|
197
169
|
- lib/emitter.rb
|
|
@@ -224,15 +196,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
224
196
|
- - ! '>='
|
|
225
197
|
- !ruby/object:Gem::Version
|
|
226
198
|
version: '0'
|
|
199
|
+
segments:
|
|
200
|
+
- 0
|
|
201
|
+
hash: -4363865138047719689
|
|
227
202
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
203
|
none: false
|
|
229
204
|
requirements:
|
|
230
205
|
- - ! '>='
|
|
231
206
|
- !ruby/object:Gem::Version
|
|
232
207
|
version: '0'
|
|
208
|
+
segments:
|
|
209
|
+
- 0
|
|
210
|
+
hash: -4363865138047719689
|
|
233
211
|
requirements: []
|
|
234
212
|
rubyforge_project:
|
|
235
|
-
rubygems_version: 1.8.
|
|
213
|
+
rubygems_version: 1.8.11
|
|
236
214
|
signing_key:
|
|
237
215
|
specification_version: 3
|
|
238
216
|
summary: A framework for modelling the impact of real-world entities.
|
|
@@ -252,4 +230,3 @@ test_files:
|
|
|
252
230
|
- spec/fixtures/dirigible/lib/dirigible/relationships.rb
|
|
253
231
|
- spec/fixtures/dirigible/lib/dirigible/summarization.rb
|
|
254
232
|
- spec/spec_helper.rb
|
|
255
|
-
has_rdoc:
|
data/README.rdoc
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
= emitter
|
|
2
|
-
|
|
3
|
-
Software framework for Brighter Planet's impact modeling libraries. See http://carbon.brighterplanet.com
|
|
4
|
-
|
|
5
|
-
== Note on Patches/Pull Requests
|
|
6
|
-
|
|
7
|
-
* Fork the project.
|
|
8
|
-
* Make your feature addition or bug fix.
|
|
9
|
-
* Add tests for it. This is important so I don't break it in a
|
|
10
|
-
future version unintentionally.
|
|
11
|
-
* Commit, do not mess with rakefile, version, or history.
|
|
12
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
|
13
|
-
* Send me a pull request. Bonus points for topic branches.
|
|
14
|
-
|
|
15
|
-
== Copyright
|
|
16
|
-
|
|
17
|
-
Copyright 2010, 2011 Brighter Planet, Inc. See LICENSE and LICENSE-PREAMBLE for details.
|