emitter 0.11.2 → 0.12.1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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
@@ -1,3 +1,4 @@
1
+ require 'bundler/setup'
1
2
  require 'bundler/gem_tasks'
2
3
 
3
4
  require 'bueller'
@@ -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
- s.add_dependency 'active_record_inline_schema'
27
+
28
+ s.add_development_dependency 'activerecord', '~>3'
29
+ s.add_development_dependency 'bueller'
30
+ s.add_development_dependency 'sniff'
28
31
  end
@@ -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 'active_record_inline_schema'
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
@@ -1,3 +1,3 @@
1
1
  module Emitter
2
- VERSION = "0.11.2"
2
+ VERSION = "0.12.1"
3
3
  end
@@ -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.should_not raise_error
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!
@@ -1,6 +1,5 @@
1
- require 'rubygems'
2
1
  require 'bundler/setup'
3
2
  require 'sniff'
4
- Sniff.init File.join(File.dirname(__FILE__), '..', '..')
3
+ Sniff.init File.expand_path('../..', __FILE__)
5
4
 
6
5
  require 'emitter'
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.11.2
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-04-18 00:00:00.000000000 Z
16
+ date: 2012-08-03 00:00:00.000000000Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: activesupport
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: 2.3.10
25
+ version: '0'
26
26
  type: :runtime
27
27
  prerelease: false
28
- version_requirements: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: '0'
124
+ version: '3'
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: *2166527600
162
128
  - !ruby/object:Gem::Dependency
163
- name: active_record_inline_schema
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: :runtime
136
+ type: :development
171
137
  prerelease: false
172
- version_requirements: !ruby/object:Gem::Requirement
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.rdoc
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.21
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:
@@ -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.