emitter 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []