emitter 0.0.1 → 0.0.2

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.
Files changed (2) hide show
  1. data/lib/emitter.rb +33 -9
  2. metadata +95 -94
data/lib/emitter.rb CHANGED
@@ -1,21 +1,45 @@
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
+
1
9
  module BrighterPlanet
2
10
  module Emitter
3
11
  def included(base)
4
- emitter_klass = self.to_s.split('::').last
5
-
6
- require 'cohort_scope'
7
- require 'falls_back_on'
8
- require 'falls_back_on/active_record_ext'
12
+ base.extend ClassMethods
13
+ base.extend AssociationClassMethods if base.respond_to? :reflect_on_all_associations
14
+
15
+ emitter_klass = self.to_s.split('::').last.underscore
9
16
 
10
- require "#{emitter_klass.underscore}/carbon_model"
11
- require "#{emitter_klass.underscore}/characterization"
12
- require "#{emitter_klass.underscore}/data"
13
- require "#{emitter_klass.underscore}/summarization"
17
+ require "#{emitter_klass}/carbon_model"
18
+ require "#{emitter_klass}/characterization"
19
+ require "#{emitter_klass}/data"
20
+ require "#{emitter_klass}/summarization"
14
21
 
15
22
  base.send :include, const_get('CarbonModel')
16
23
  base.send :include, const_get('Characterization')
17
24
  base.send :include, const_get('Data')
18
25
  base.send :include, const_get('Summarization')
19
26
  end
27
+
28
+ module ClassMethods
29
+ def add_implicit_characteristics
30
+ decisions[:emission].committees.map(&:name).reject { |c| characteristics.keys.unshift(:emission).include? c }.each do |c|
31
+ characterize { has c }
32
+ end
33
+ end
34
+ end
35
+
36
+ module AssociationClassMethods
37
+ def run_data_miner_on_belongs_to_associations
38
+ reflect_on_all_associations(:belongs_to).each do |a|
39
+ next if a.options[:polymorphic]
40
+ a.klass.run_data_miner!
41
+ end
42
+ end
43
+ end
20
44
  end
21
45
  end
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: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Rossmeissl
@@ -19,17 +19,16 @@ autorequire:
19
19
  bindir: bin
20
20
  cert_chain: []
21
21
 
22
- date: 2010-08-12 00:00:00 -04:00
22
+ date: 2010-08-15 00:00:00 -04:00
23
23
  default_executable:
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
- type: :development
27
- prerelease: false
28
26
  name: activerecord
29
- version_requirements: &id001 !ruby/object:Gem::Requirement
27
+ prerelease: false
28
+ requirement: &id001 !ruby/object:Gem::Requirement
30
29
  none: false
31
30
  requirements:
32
- - - "="
31
+ - - ">="
33
32
  - !ruby/object:Gem::Version
34
33
  hash: -1848230024
35
34
  segments:
@@ -38,12 +37,12 @@ dependencies:
38
37
  - 0
39
38
  - beta4
40
39
  version: 3.0.0.beta4
41
- requirement: *id001
42
- - !ruby/object:Gem::Dependency
43
40
  type: :development
44
- prerelease: false
41
+ version_requirements: *id001
42
+ - !ruby/object:Gem::Dependency
45
43
  name: bundler
46
- version_requirements: &id002 !ruby/object:Gem::Requirement
44
+ prerelease: false
45
+ requirement: &id002 !ruby/object:Gem::Requirement
47
46
  none: false
48
47
  requirements:
49
48
  - - ">="
@@ -56,15 +55,15 @@ dependencies:
56
55
  - beta
57
56
  - 2
58
57
  version: 1.0.0.beta.2
59
- requirement: *id002
60
- - !ruby/object:Gem::Dependency
61
58
  type: :development
62
- prerelease: false
59
+ version_requirements: *id002
60
+ - !ruby/object:Gem::Dependency
63
61
  name: jeweler
64
- version_requirements: &id003 !ruby/object:Gem::Requirement
62
+ prerelease: false
63
+ requirement: &id003 !ruby/object:Gem::Requirement
65
64
  none: false
66
65
  requirements:
67
- - - "="
66
+ - - ">="
68
67
  - !ruby/object:Gem::Version
69
68
  hash: 7
70
69
  segments:
@@ -72,12 +71,12 @@ dependencies:
72
71
  - 4
73
72
  - 0
74
73
  version: 1.4.0
75
- requirement: *id003
76
- - !ruby/object:Gem::Dependency
77
74
  type: :development
78
- prerelease: false
75
+ version_requirements: *id003
76
+ - !ruby/object:Gem::Dependency
79
77
  name: rake
80
- version_requirements: &id004 !ruby/object:Gem::Requirement
78
+ prerelease: false
79
+ requirement: &id004 !ruby/object:Gem::Requirement
81
80
  none: false
82
81
  requirements:
83
82
  - - ">="
@@ -86,12 +85,12 @@ dependencies:
86
85
  segments:
87
86
  - 0
88
87
  version: "0"
89
- requirement: *id004
90
- - !ruby/object:Gem::Dependency
91
88
  type: :development
92
- prerelease: false
89
+ version_requirements: *id004
90
+ - !ruby/object:Gem::Dependency
93
91
  name: rdoc
94
- version_requirements: &id005 !ruby/object:Gem::Requirement
92
+ prerelease: false
93
+ requirement: &id005 !ruby/object:Gem::Requirement
95
94
  none: false
96
95
  requirements:
97
96
  - - ">="
@@ -100,15 +99,15 @@ dependencies:
100
99
  segments:
101
100
  - 0
102
101
  version: "0"
103
- requirement: *id005
104
- - !ruby/object:Gem::Dependency
105
102
  type: :development
106
- prerelease: false
103
+ version_requirements: *id005
104
+ - !ruby/object:Gem::Dependency
107
105
  name: rspec
108
- version_requirements: &id006 !ruby/object:Gem::Requirement
106
+ prerelease: false
107
+ requirement: &id006 !ruby/object:Gem::Requirement
109
108
  none: false
110
109
  requirements:
111
- - - "="
110
+ - - ">="
112
111
  - !ruby/object:Gem::Version
113
112
  hash: 62196417
114
113
  segments:
@@ -118,15 +117,15 @@ dependencies:
118
117
  - beta
119
118
  - 17
120
119
  version: 2.0.0.beta.17
121
- requirement: *id006
120
+ type: :development
121
+ version_requirements: *id006
122
122
  - !ruby/object:Gem::Dependency
123
- type: :runtime
124
- prerelease: false
125
123
  name: activesupport
126
- version_requirements: &id007 !ruby/object:Gem::Requirement
124
+ prerelease: false
125
+ requirement: &id007 !ruby/object:Gem::Requirement
127
126
  none: false
128
127
  requirements:
129
- - - "="
128
+ - - ">="
130
129
  - !ruby/object:Gem::Version
131
130
  hash: -1848230024
132
131
  segments:
@@ -135,31 +134,31 @@ dependencies:
135
134
  - 0
136
135
  - beta4
137
136
  version: 3.0.0.beta4
138
- requirement: *id007
139
- - !ruby/object:Gem::Dependency
140
137
  type: :runtime
141
- prerelease: false
138
+ version_requirements: *id007
139
+ - !ruby/object:Gem::Dependency
142
140
  name: characterizable
143
- version_requirements: &id008 !ruby/object:Gem::Requirement
141
+ prerelease: false
142
+ requirement: &id008 !ruby/object:Gem::Requirement
144
143
  none: false
145
144
  requirements:
146
145
  - - ">="
147
146
  - !ruby/object:Gem::Version
148
- hash: 5
147
+ hash: 63
149
148
  segments:
150
149
  - 0
151
150
  - 0
152
- - 13
153
- version: 0.0.13
154
- requirement: *id008
155
- - !ruby/object:Gem::Dependency
151
+ - 16
152
+ version: 0.0.16
156
153
  type: :runtime
157
- prerelease: false
154
+ version_requirements: *id008
155
+ - !ruby/object:Gem::Dependency
158
156
  name: data_miner
159
- version_requirements: &id009 !ruby/object:Gem::Requirement
157
+ prerelease: false
158
+ requirement: &id009 !ruby/object:Gem::Requirement
160
159
  none: false
161
160
  requirements:
162
- - - "="
161
+ - - ">="
163
162
  - !ruby/object:Gem::Version
164
163
  hash: 15
165
164
  segments:
@@ -167,31 +166,31 @@ dependencies:
167
166
  - 5
168
167
  - 2
169
168
  version: 0.5.2
170
- requirement: *id009
171
- - !ruby/object:Gem::Dependency
172
169
  type: :runtime
173
- prerelease: false
170
+ version_requirements: *id009
171
+ - !ruby/object:Gem::Dependency
174
172
  name: earth
175
- version_requirements: &id010 !ruby/object:Gem::Requirement
173
+ prerelease: false
174
+ requirement: &id010 !ruby/object:Gem::Requirement
176
175
  none: false
177
176
  requirements:
178
177
  - - ">="
179
178
  - !ruby/object:Gem::Version
180
- hash: 17
179
+ hash: 53
181
180
  segments:
182
181
  - 0
183
182
  - 0
184
- - 7
185
- version: 0.0.7
186
- requirement: *id010
187
- - !ruby/object:Gem::Dependency
183
+ - 21
184
+ version: 0.0.21
188
185
  type: :runtime
189
- prerelease: false
186
+ version_requirements: *id010
187
+ - !ruby/object:Gem::Dependency
190
188
  name: falls_back_on
191
- version_requirements: &id011 !ruby/object:Gem::Requirement
189
+ prerelease: false
190
+ requirement: &id011 !ruby/object:Gem::Requirement
192
191
  none: false
193
192
  requirements:
194
- - - "="
193
+ - - ">="
195
194
  - !ruby/object:Gem::Version
196
195
  hash: 27
197
196
  segments:
@@ -199,15 +198,15 @@ dependencies:
199
198
  - 0
200
199
  - 2
201
200
  version: 0.0.2
202
- requirement: *id011
203
- - !ruby/object:Gem::Dependency
204
201
  type: :runtime
205
- prerelease: false
202
+ version_requirements: *id011
203
+ - !ruby/object:Gem::Dependency
206
204
  name: fast_timestamp
207
- version_requirements: &id012 !ruby/object:Gem::Requirement
205
+ prerelease: false
206
+ requirement: &id012 !ruby/object:Gem::Requirement
208
207
  none: false
209
208
  requirements:
210
- - - "="
209
+ - - ">="
211
210
  - !ruby/object:Gem::Version
212
211
  hash: 23
213
212
  segments:
@@ -215,31 +214,31 @@ dependencies:
215
214
  - 0
216
215
  - 4
217
216
  version: 0.0.4
218
- requirement: *id012
219
- - !ruby/object:Gem::Dependency
220
217
  type: :runtime
221
- prerelease: false
218
+ version_requirements: *id012
219
+ - !ruby/object:Gem::Dependency
222
220
  name: leap
223
- version_requirements: &id013 !ruby/object:Gem::Requirement
221
+ prerelease: false
222
+ requirement: &id013 !ruby/object:Gem::Requirement
224
223
  none: false
225
224
  requirements:
226
225
  - - ">="
227
226
  - !ruby/object:Gem::Version
228
- hash: 13
227
+ hash: 9
229
228
  segments:
230
229
  - 0
231
230
  - 4
232
- - 1
233
- version: 0.4.1
234
- requirement: *id013
235
- - !ruby/object:Gem::Dependency
231
+ - 3
232
+ version: 0.4.3
236
233
  type: :runtime
237
- prerelease: false
234
+ version_requirements: *id013
235
+ - !ruby/object:Gem::Dependency
238
236
  name: summary_judgement
239
- version_requirements: &id014 !ruby/object:Gem::Requirement
237
+ prerelease: false
238
+ requirement: &id014 !ruby/object:Gem::Requirement
240
239
  none: false
241
240
  requirements:
242
- - - "="
241
+ - - ">="
243
242
  - !ruby/object:Gem::Version
244
243
  hash: 11
245
244
  segments:
@@ -247,15 +246,15 @@ dependencies:
247
246
  - 3
248
247
  - 8
249
248
  version: 1.3.8
250
- requirement: *id014
251
- - !ruby/object:Gem::Dependency
252
249
  type: :runtime
253
- prerelease: false
250
+ version_requirements: *id014
251
+ - !ruby/object:Gem::Dependency
254
252
  name: timeframe
255
- version_requirements: &id015 !ruby/object:Gem::Requirement
253
+ prerelease: false
254
+ requirement: &id015 !ruby/object:Gem::Requirement
256
255
  none: false
257
256
  requirements:
258
- - - "="
257
+ - - ">="
259
258
  - !ruby/object:Gem::Version
260
259
  hash: 15
261
260
  segments:
@@ -263,15 +262,15 @@ dependencies:
263
262
  - 0
264
263
  - 8
265
264
  version: 0.0.8
266
- requirement: *id015
267
- - !ruby/object:Gem::Dependency
268
265
  type: :runtime
269
- prerelease: false
266
+ version_requirements: *id015
267
+ - !ruby/object:Gem::Dependency
270
268
  name: weighted_average
271
- version_requirements: &id016 !ruby/object:Gem::Requirement
269
+ prerelease: false
270
+ requirement: &id016 !ruby/object:Gem::Requirement
272
271
  none: false
273
272
  requirements:
274
- - - "="
273
+ - - ">="
275
274
  - !ruby/object:Gem::Version
276
275
  hash: 23
277
276
  segments:
@@ -279,22 +278,24 @@ dependencies:
279
278
  - 0
280
279
  - 4
281
280
  version: 0.0.4
282
- requirement: *id016
283
- - !ruby/object:Gem::Dependency
284
281
  type: :runtime
285
- prerelease: false
282
+ version_requirements: *id016
283
+ - !ruby/object:Gem::Dependency
286
284
  name: cohort_scope
287
- version_requirements: &id017 !ruby/object:Gem::Requirement
285
+ prerelease: false
286
+ requirement: &id017 !ruby/object:Gem::Requirement
288
287
  none: false
289
288
  requirements:
290
- - - ~>
289
+ - - ">="
291
290
  - !ruby/object:Gem::Version
292
- hash: 11
291
+ hash: 19
293
292
  segments:
294
293
  - 0
295
294
  - 0
296
- version: "0.0"
297
- requirement: *id017
295
+ - 6
296
+ version: 0.0.6
297
+ type: :runtime
298
+ version_requirements: *id017
298
299
  description: A software model in Ruby for the greenhouse gas emissions
299
300
  email: derek@brighterplanet.com
300
301
  executables: []