purchase 1.0.3 → 1.0.4

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.
@@ -19,8 +19,16 @@ Feature: Purchase Committee Calculations
19
19
  Scenario: Cost committee from default
20
20
  Given a purchase emitter
21
21
  When the "cost" committee is calculated
22
+ Then the committee should have used quorum "default"
22
23
  Then the conclusion of the committee should be "100"
23
24
 
25
+ Scenario: Adjusted cost committee starting from nothing
26
+ Given a purchase emitter
27
+ When the "date" committee is calculated
28
+ And the "cost" committee is calculated
29
+ And the "adjusted_cost" committee is calculated
30
+ Then the conclusion of the committee should be "82.85004"
31
+
24
32
  Scenario Outline: Adjusted cost committee from cost and date
25
33
  Given a purchase emitter
26
34
  And a characteristic "cost" of "<cost>"
@@ -32,17 +40,24 @@ Feature: Purchase Committee Calculations
32
40
  | 831.23 | 2010-08-01 | 688.67439 |
33
41
  | 11.00 | 2005-07-14 | 9.11350 |
34
42
 
43
+ Scenario: Merchant category committee from default
44
+ Given a purchase emitter
45
+ When the "merchant_category" committee is calculated
46
+ Then the committee should have used quorum "default"
47
+ And the conclusion of the committee should have "mcc" of "5111"
48
+
35
49
  Scenario Outline: Merchant category committee from merchant
36
50
  Given a purchase emitter
37
51
  And a characteristic "merchant.id" of "<id>"
38
52
  When the "merchant_category" committee is calculated
39
- Then the conclusion of the committee should have "mcc" of "<mcc>"
53
+ Then the committee should have used quorum "from merchant"
54
+ And the conclusion of the committee should have "mcc" of "<mcc>"
40
55
  Examples:
41
56
  | id | mcc |
42
57
  | 1 | 1111 |
43
58
  | 2 | 2222 |
44
59
 
45
- Scenario Outline: Merchant category industries committee from merchant category
60
+ Scenario Outline: Merchant category industries committee starting from merchant category
46
61
  Given a purchase emitter
47
62
  And a characteristic "merchant_category.mcc" of "<mcc>"
48
63
  When the "merchant_category_industries" committee is calculated
@@ -68,12 +83,21 @@ Feature: Purchase Committee Calculations
68
83
  Given a purchase emitter
69
84
  And a characteristic "industry.naics_code" of "<naics>"
70
85
  When the "trade_industry_ratios" committee is calculated
71
- Then the committee should have used quorum "from naics code"
86
+ Then the committee should have used quorum "from industry"
72
87
  And the conclusion of the committee should include a key of "<naics>" and value "1"
73
88
  Examples:
74
89
  | naics |
75
90
  | 459000 |
76
91
 
92
+ Scenario: Trade industry ratios from merchant category industries and industry
93
+ Given a purchase emitter
94
+ And a characteristic "merchant_category.mcc" of "1111"
95
+ And a characteristic "industry.naics_code" of "459000"
96
+ When the "merchant_category_industries" committee is calculated
97
+ And the "trade_industry_ratios" committee is calculated
98
+ Then the committee should have used quorum "from industry"
99
+ And the conclusion of the committee should include a key of "459000" and value "1"
100
+
77
101
  Scenario Outline: Non-trade industry ratios from merchant category industries
78
102
  Given a purchase emitter
79
103
  And a characteristic "merchant_category.mcc" of "<mcc>"
@@ -90,16 +114,20 @@ Feature: Purchase Committee Calculations
90
114
  Given a purchase emitter
91
115
  And a characteristic "industry.naics_code" of "<naics>"
92
116
  When the "non_trade_industry_ratios" committee is calculated
93
- Then the conclusion of the committee should include a key of "<naics>" and value "1"
117
+ Then the committee should have used quorum "from industry"
118
+ And the conclusion of the committee should include a key of "<naics>" and value "1"
94
119
  Examples:
95
120
  | naics |
96
121
  | 111111 |
97
122
  | 399900 |
98
123
 
99
- Scenario Outline: Non-trade industry ratios from default
124
+ Scenario: Non-trade industry ratios from merchant category industries and industry
100
125
  Given a purchase emitter
101
- When the "non_trade_industry_ratios" committee is calculated
102
- Then the committee should have used quorum "from default"
126
+ And a characteristic "merchant_category.mcc" of "2222"
127
+ And a characteristic "industry.naics_code" of "111111"
128
+ When the "merchant_category_industries" committee is calculated
129
+ And the "non_trade_industry_ratios" committee is calculated
130
+ Then the committee should have used quorum "from industry"
103
131
  And the conclusion of the committee should include a key of "111111" and value "1"
104
132
 
105
133
  Scenario Outline: Product line ratios from trade industry ratios
@@ -140,10 +168,10 @@ Feature: Purchase Committee Calculations
140
168
  Then the conclusion of the committee should include a key of "<naics>" and value "<ratio>"
141
169
  Examples:
142
170
  | mcc | naics | ratio |
143
- | 2222 | 399100 | 0.1875 |
144
- | 2222 | 399200 | 0.0625 |
171
+ | 2222 | 399100 | 0.375 |
172
+ | 2222 | 399200 | 0.125 |
145
173
 
146
- Scenario Outline: Industry ratios committee from non trade industry and industry product ratios
174
+ Scenario Outline: Industry ratios committee starting from merchant category
147
175
  Given a purchase emitter
148
176
  And a characteristic "merchant_category.mcc" of "<mcc>"
149
177
  When the "merchant_category_industries" committee is calculated
@@ -157,11 +185,11 @@ Feature: Purchase Committee Calculations
157
185
  Examples:
158
186
  | mcc | naics | ratio |
159
187
  | 1111 | 111111 | 1.0 |
160
- | 2222 | 399100 | 0.1875 |
161
- | 2222 | 399200 | 0.0625 |
188
+ | 2222 | 399100 | 0.375 |
189
+ | 2222 | 399200 | 0.125 |
162
190
  | 2222 | 399900 | 0.5 |
163
191
 
164
- Scenario Outline: Industry ratios committee from industry
192
+ Scenario Outline: Industry ratios committee starting from industry
165
193
  Given a purchase emitter
166
194
  And a characteristic "industry.naics_code" of "<naics>"
167
195
  When the "non_trade_industry_ratios" committee is calculated
@@ -174,15 +202,14 @@ Feature: Purchase Committee Calculations
174
202
  Examples:
175
203
  | naics | new_naics | ratio |
176
204
  | 111111 | 111111 | 1.0 |
177
- | 459000 | 399100 | 0.375 |
178
- | 459000 | 399200 | 0.125 |
179
- | 399900 | 399900 | 1.0 |
205
+ | 399100 | 399100 | 1.0 |
206
+ | 399200 | 399200 | 1.0 |
207
+ | 459000 | 399100 | 0.75 |
208
+ | 459000 | 399200 | 0.25 |
180
209
 
181
- Scenario Outline: Industry sector ratios committee from merchant category
182
- Given a purchase emitter
210
+ Scenario Outline: Industry sector ratios committee starting from merchant category
211
+ Given a purchase emitter
183
212
  And a characteristic "merchant_category.mcc" of "<mcc>"
184
- And a characteristic "cost" of "100"
185
- And a characteristic "date" of "2010-08-01"
186
213
  When the "merchant_category_industries" committee is calculated
187
214
  And the "non_trade_industry_ratios" committee is calculated
188
215
  And the "trade_industry_ratios" committee is calculated
@@ -195,12 +222,29 @@ Feature: Purchase Committee Calculations
195
222
  Examples:
196
223
  | mcc | io_code | ratio |
197
224
  | 1111 | 111000 | 1.0 |
198
- | 2222 | 3991A0 | 0.140625 |
199
- | 2222 | 3991B0 | 0.046875 |
200
- | 2222 | 399200 | 0.0625 |
225
+ | 2222 | 3991A0 | 0.28125 |
226
+ | 2222 | 3991B0 | 0.09375 |
227
+ | 2222 | 399200 | 0.125 |
201
228
  | 2222 | 399900 | 0.5 |
202
229
 
203
- Scenario Outline: Industry sector ratios committee from industry
230
+ Scenario Outline: Industry sector ratios sum check starting from merchant category
231
+ Given a purchase emitter
232
+ And a characteristic "merchant_category.mcc" of "<mcc>"
233
+ When the "merchant_category_industries" committee is calculated
234
+ And the "non_trade_industry_ratios" committee is calculated
235
+ And the "trade_industry_ratios" committee is calculated
236
+ And the "product_line_ratios" committee is calculated
237
+ And the "product_line_industry_product_ratios" committee is calculated
238
+ And the "industry_product_ratios" committee is calculated
239
+ And the "industry_ratios" committee is calculated
240
+ And the "industry_sector_ratios" committee is calculated
241
+ Then the conclusion of the committee should have ratios summing to "1.0"
242
+ Examples:
243
+ | mcc |
244
+ | 1111 |
245
+ | 2222 |
246
+
247
+ Scenario Outline: Industry sector ratios committee starting from industry
204
248
  Given a purchase emitter
205
249
  And a characteristic "industry.naics_code" of "<naics>"
206
250
  When the "non_trade_industry_ratios" committee is calculated
@@ -216,11 +260,29 @@ Feature: Purchase Committee Calculations
216
260
  | 111111 | 111000 | 1.0 |
217
261
  | 399100 | 3991A0 | 0.75 |
218
262
  | 399100 | 3991B0 | 0.25 |
219
- | 399200 | 399200 | 1.0 |
220
- | 399900 | 399900 | 1.0 |
263
+ | 459000 | 3991A0 | 0.5625|
264
+ | 459000 | 3991B0 | 0.1875|
265
+ | 459000 | 399200 | 0.25 |
266
+
267
+ Scenario Outline: Industry sector ratios sum check starting from industry
268
+ Given a purchase emitter
269
+ And a characteristic "industry.naics_code" of "<naics>"
270
+ When the "non_trade_industry_ratios" committee is calculated
271
+ And the "trade_industry_ratios" committee is calculated
272
+ And the "product_line_ratios" committee is calculated
273
+ And the "product_line_industry_product_ratios" committee is calculated
274
+ And the "industry_product_ratios" committee is calculated
275
+ And the "industry_ratios" committee is calculated
276
+ And the "industry_sector_ratios" committee is calculated
277
+ Then the conclusion of the committee should have ratios summing to "1.0"
278
+ Examples:
279
+ | naics |
280
+ | 111111 |
281
+ | 399100 |
282
+ | 459000 |
221
283
 
222
- Scenario Outline: Industry sector shares committee from merchant category
223
- Given a purchase emitter
284
+ Scenario Outline: Industry sector shares committee starting from merchant category
285
+ Given a purchase emitter
224
286
  And a characteristic "merchant_category.mcc" of "<mcc>"
225
287
  And a characteristic "adjusted_cost" of "100.00"
226
288
  When the "merchant_category_industries" committee is calculated
@@ -236,11 +298,35 @@ Feature: Purchase Committee Calculations
236
298
  Examples:
237
299
  | mcc | io_code | share |
238
300
  | 1111 | 111000 | 100.0 |
239
- | 2222 | 3991A0 | 14.0625 |
240
- | 2222 | 3991B0 | 4.6875 |
241
- | 2222 | 399200 | 6.25 |
301
+ | 2222 | 3991A0 | 28.125 |
302
+ | 2222 | 3991B0 | 9.375 |
303
+ | 2222 | 399200 | 12.5 |
242
304
  | 2222 | 399900 | 50.0 |
243
305
 
306
+ Scenario Outline: Industry sector shares committee starting from industry
307
+ Given a purchase emitter
308
+ And a characteristic "industry.naics_code" of "<naics>"
309
+ And a characteristic "adjusted_cost" of "100.00"
310
+ When the "non_trade_industry_ratios" committee is calculated
311
+ And the "trade_industry_ratios" committee is calculated
312
+ And the "product_line_ratios" committee is calculated
313
+ And the "product_line_industry_product_ratios" committee is calculated
314
+ And the "industry_product_ratios" committee is calculated
315
+ And the "industry_ratios" committee is calculated
316
+ And the "industry_sector_ratios" committee is calculated
317
+ And the "industry_sector_shares" committee is calculated
318
+ Then the conclusion of the committee should include a key of "<io_code>" and value "<share>"
319
+ Examples:
320
+ | naics | io_code | share |
321
+ | 111111 | 111000 | 100.0 |
322
+ | 399100 | 3991A0 | 75.0 |
323
+ | 399100 | 3991B0 | 25.0 |
324
+ | 399200 | 399200 | 100.0 |
325
+ | 399900 | 399900 | 100.0 |
326
+ | 459000 | 3991A0 | 56.25 |
327
+ | 459000 | 3991B0 | 18.75 |
328
+ | 459000 | 399200 | 25.0 |
329
+
244
330
  Scenario Outline: Sector shares committee from industry and product line shares
245
331
  Given a purchase emitter
246
332
  And a characteristic "merchant_category.mcc" of "<mcc>"
@@ -259,7 +345,7 @@ Feature: Purchase Committee Calculations
259
345
  Examples:
260
346
  | mcc|111000|3991A0 |3991B0|399200|399900|4A0000|
261
347
  |1111|100.00| 0| 0| 0| 0| 0|
262
- |2222| 0|14.0625|4.6875| 6.25| 50.0| 0|
348
+ |2222| 0| 28.125| 9.375| 12.5| 50.0| 0|
263
349
 
264
350
  Scenario: Sector direct requirements committee
265
351
  Given a purchase emitter
@@ -311,4 +397,4 @@ Feature: Purchase Committee Calculations
311
397
  Examples:
312
398
  |mcc |111000 |3991A0 |3991B0 |399200 |399900 |4A0000 |
313
399
  |1111|90.44460| 6.83919| 5.58981| 18.5568|19.91952 |11.38220|
314
- |2222|28.14742|26.31519|16.92866|58.00083|105.81262|31.07553|
400
+ |2222|34.95823|38.38879|22.27460|77.55067|119.05953|38.64496|
@@ -23,7 +23,7 @@ Feature: Purchase Emissions Calculations
23
23
  Examples:
24
24
  | id | emission |
25
25
  | 1 | 126.538 |
26
- | 2 | 220.613 |
26
+ | 2 | 274.131 |
27
27
 
28
28
  Scenario Outline: Calculations starting from a merchant with purchase amount
29
29
  Given a purchase has "merchant.id" of "<id>"
@@ -33,7 +33,7 @@ Feature: Purchase Emissions Calculations
33
33
  Examples:
34
34
  | id | amount | emission |
35
35
  | 1 | 107.11 | 126.538 |
36
- | 2 | 107.11 | 220.613 |
36
+ | 2 | 107.11 | 274.131 |
37
37
 
38
38
  Scenario Outline: Calculations starting from a merchant with purchase amount and date
39
39
  Given a purchase has "merchant.id" of "<id>"
@@ -44,7 +44,7 @@ Feature: Purchase Emissions Calculations
44
44
  Examples:
45
45
  | id | amount | date | emission |
46
46
  | 1 | 107.11 | 2010-07-28 | 126.538 |
47
- | 2 | 107.11 | 2010-07-28 | 220.613 |
47
+ | 2 | 107.11 | 2010-07-28 | 274.131 |
48
48
 
49
49
  Scenario Outline: Calculations starting from a merchant with purchase amount, date, and tax
50
50
  Given a purchase has "merchant.id" of "<id>"
@@ -56,7 +56,7 @@ Feature: Purchase Emissions Calculations
56
56
  Examples:
57
57
  | id | amount | tax | date | emission |
58
58
  | 1 | 108.00 | 8.00 | 2010-07-28 | 126.538 |
59
- | 2 | 108.00 | 8.00 | 2010-07-28 | 220.613 |
59
+ | 2 | 108.00 | 8.00 | 2010-07-28 | 274.131 |
60
60
 
61
61
  Scenario Outline: Calculations starting from a merchant category
62
62
  Given a purchase has "merchant_category.mcc" of "<mcc>"
@@ -67,7 +67,7 @@ Feature: Purchase Emissions Calculations
67
67
  Examples:
68
68
  | mcc | cost | date | emission |
69
69
  | 1111 | 100.00 | 2010-07-28 | 126.538 |
70
- | 2222 | 100.00 | 2010-07-28 | 220.613 |
70
+ | 2222 | 100.00 | 2010-07-28 | 274.131 |
71
71
  | 5111 | 100.00 | 2010-07-28 | 126.538 |
72
72
 
73
73
  Scenario Outline: Calculations starting from industry
@@ -80,4 +80,4 @@ Feature: Purchase Emissions Calculations
80
80
  | naics | cost | date | emission |
81
81
  | 111111 | 100.00 | 2010-07-28 | 126.538 |
82
82
  | 399900 | 100.00 | 2010-07-28 | 334.190 |
83
- | 459000 | 100.00 | 2010-07-28 | 107.036 |
83
+ | 459000 | 100.00 | 2010-07-28 | 214.072 |
@@ -57,7 +57,8 @@ module BrighterPlanet
57
57
  committee :industry_sector_shares do
58
58
  quorum 'from industry sector ratios', :needs => [:industry_sector_ratios, :adjusted_cost] do |characteristics|
59
59
  characteristics[:industry_sector_ratios].inject({}) do |new_ratios, (io_code, ratio)|
60
- new_ratios[io_code] = ratio * characteristics[:adjusted_cost]
60
+ new_ratios[io_code] ||= 0
61
+ new_ratios[io_code] += ratio * characteristics[:adjusted_cost]
61
62
  new_ratios
62
63
  end
63
64
  end
@@ -67,8 +68,9 @@ module BrighterPlanet
67
68
  quorum 'from industry ratios', :needs => :industry_ratios do |characteristics|
68
69
  characteristics[:industry_ratios].inject({}) do |new_ratios, (naics_code, ratio)|
69
70
  IndustrySector.where(:naics_code => naics_code).each do |industry_sector|
71
+ new_ratios[industry_sector.io_code] ||= 0
70
72
  new_ratio = ratio * industry_sector.ratio
71
- new_ratios[industry_sector.io_code] = new_ratio
73
+ new_ratios[industry_sector.io_code] += new_ratio
72
74
  end
73
75
  new_ratios
74
76
  end
@@ -80,7 +82,9 @@ module BrighterPlanet
80
82
  committee :industry_ratios do
81
83
  quorum 'from non trade industry and industry product ratios', :needs => [:non_trade_industry_ratios, :industry_product_ratios] do |characteristics|
82
84
  combined_ratios = characteristics[:non_trade_industry_ratios].
83
- merge characteristics[:industry_product_ratios]
85
+ update(characteristics[:industry_product_ratios]) do |key, non_trade, ip_ratio|
86
+ non_trade + ip_ratio
87
+ end
84
88
  end
85
89
  end
86
90
 
@@ -88,7 +92,8 @@ module BrighterPlanet
88
92
  quorum 'from product line industry product ratios', :needs => :product_line_industry_product_ratios do |characteristics|
89
93
  characteristics[:product_line_industry_product_ratios].inject({}) do |new_ratios, (naics_product_code, ratio)|
90
94
  IndustryProduct.where(:naics_product_code => naics_product_code).each do |industry_product|
91
- new_ratios[industry_product.naics_code] = ratio
95
+ new_ratios[industry_product.naics_code] ||= 0
96
+ new_ratios[industry_product.naics_code] += ratio
92
97
  end
93
98
  new_ratios
94
99
  end
@@ -99,8 +104,9 @@ module BrighterPlanet
99
104
  quorum 'from product line ratios', :needs => :product_line_ratios do |characteristics|
100
105
  characteristics[:product_line_ratios].inject({}) do |new_ratios, (ps_code, ratio)|
101
106
  ProductLineIndustryProduct.where(:ps_code => ps_code).each do |plip|
107
+ new_ratios[plip.naics_product_code] ||= 0
102
108
  new_ratio = ratio * plip.ratio
103
- new_ratios[plip.naics_product_code] = new_ratio
109
+ new_ratios[plip.naics_product_code] += new_ratio
104
110
  end
105
111
  new_ratios
106
112
  end
@@ -111,8 +117,9 @@ module BrighterPlanet
111
117
  quorum 'from trade industry ratios', :needs => :trade_industry_ratios do |characteristics|
112
118
  characteristics[:trade_industry_ratios].inject({}) do |new_ratios, (naics, ratio)|
113
119
  IndustryProductLine.where(:naics_code => naics).each do |industry_product_line|
120
+ new_ratios[industry_product_line.ps_code] ||= 0
114
121
  new_ratio = ratio * industry_product_line.ratio
115
- new_ratios[industry_product_line.ps_code] = new_ratio
122
+ new_ratios[industry_product_line.ps_code] += new_ratio
116
123
  end
117
124
  new_ratios
118
125
  end
@@ -120,15 +127,6 @@ module BrighterPlanet
120
127
  end
121
128
 
122
129
  committee :non_trade_industry_ratios do
123
- quorum 'from merchant category industries', :needs => :merchant_category_industries do |characteristics|
124
- characteristics[:merchant_category_industries].inject({}) do |hash, merchant_category_industry|
125
- unless merchant_category_industry.industry.trade_industry?
126
- hash[merchant_category_industry.naics_code] = merchant_category_industry.ratio
127
- end
128
- hash
129
- end
130
- end
131
-
132
130
  quorum 'from industry', :needs => :industry do |characteristics|
133
131
  if characteristics[:industry].trade_industry?
134
132
  {}
@@ -137,23 +135,19 @@ module BrighterPlanet
137
135
  end
138
136
  end
139
137
 
140
- quorum 'default' do
141
- mci = MerchantCategoryIndustry.where(:mcc => 5111).first
142
- { mci.naics_code.to_s => mci.ratio }
143
- end
144
- end
145
-
146
- committee :trade_industry_ratios do
147
138
  quorum 'from merchant category industries', :needs => :merchant_category_industries do |characteristics|
148
139
  characteristics[:merchant_category_industries].inject({}) do |hash, merchant_category_industry|
149
- if merchant_category_industry.industry.trade_industry?
150
- hash[merchant_category_industry.naics_code] = merchant_category_industry.ratio
140
+ unless merchant_category_industry.industry.trade_industry?
141
+ hash[merchant_category_industry.naics_code] ||= 0
142
+ hash[merchant_category_industry.naics_code] += merchant_category_industry.ratio
151
143
  end
152
144
  hash
153
145
  end
154
146
  end
147
+ end
155
148
 
156
- quorum 'from naics code', :needs => :industry do |characteristics|
149
+ committee :trade_industry_ratios do
150
+ quorum 'from industry', :needs => :industry do |characteristics|
157
151
  if characteristics[:industry].trade_industry?
158
152
  { characteristics[:industry].naics_code.to_s => 1 }
159
153
  else
@@ -161,8 +155,14 @@ module BrighterPlanet
161
155
  end
162
156
  end
163
157
 
164
- quorum 'default' do
165
- {}
158
+ quorum 'from merchant category industries', :needs => :merchant_category_industries do |characteristics|
159
+ characteristics[:merchant_category_industries].inject({}) do |hash, merchant_category_industry|
160
+ if merchant_category_industry.industry.trade_industry?
161
+ hash[merchant_category_industry.naics_code] ||= 0
162
+ hash[merchant_category_industry.naics_code] += merchant_category_industry.ratio
163
+ end
164
+ hash
165
+ end
166
166
  end
167
167
  end
168
168
 
@@ -177,6 +177,10 @@ module BrighterPlanet
177
177
  quorum 'from merchant', :needs => [:merchant] do |characteristics|
178
178
  characteristics[:merchant].merchant_category
179
179
  end
180
+
181
+ quorum 'default' do
182
+ MerchantCategory.find_by_mcc 5111
183
+ end
180
184
  end
181
185
 
182
186
  committee :adjusted_cost do
@@ -204,7 +208,7 @@ module BrighterPlanet
204
208
  characteristics[:purchase_amount].to_f / 1.0711
205
209
  end
206
210
 
207
- quorum 'from default' do
211
+ quorum 'default' do
208
212
  # FIXME TODO research real average purchase amount
209
213
  100
210
214
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: purchase
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 3
10
- version: 1.0.3
9
+ - 4
10
+ version: 1.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Rossmeissl
@@ -19,14 +19,13 @@ autorequire:
19
19
  bindir: bin
20
20
  cert_chain: []
21
21
 
22
- date: 2010-10-05 00:00:00 -04:00
22
+ date: 2010-10-07 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
  - - ~>
@@ -37,12 +36,12 @@ dependencies:
37
36
  - 0
38
37
  - 0
39
38
  version: 3.0.0
40
- requirement: *id001
41
- - !ruby/object:Gem::Dependency
42
39
  type: :development
43
- prerelease: false
40
+ version_requirements: *id001
41
+ - !ruby/object:Gem::Dependency
44
42
  name: bundler
45
- version_requirements: &id002 !ruby/object:Gem::Requirement
43
+ prerelease: false
44
+ requirement: &id002 !ruby/object:Gem::Requirement
46
45
  none: false
47
46
  requirements:
48
47
  - - ~>
@@ -53,28 +52,26 @@ dependencies:
53
52
  - 0
54
53
  - 0
55
54
  version: 1.0.0
56
- requirement: *id002
57
- - !ruby/object:Gem::Dependency
58
55
  type: :development
59
- prerelease: false
56
+ version_requirements: *id002
57
+ - !ruby/object:Gem::Dependency
60
58
  name: cucumber
61
- version_requirements: &id003 !ruby/object:Gem::Requirement
59
+ prerelease: false
60
+ requirement: &id003 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
- - - ~>
63
+ - - ">="
65
64
  - !ruby/object:Gem::Version
66
- hash: 59
65
+ hash: 3
67
66
  segments:
68
67
  - 0
69
- - 9
70
- - 0
71
- version: 0.9.0
72
- requirement: *id003
73
- - !ruby/object:Gem::Dependency
68
+ version: "0"
74
69
  type: :development
75
- prerelease: false
70
+ version_requirements: *id003
71
+ - !ruby/object:Gem::Dependency
76
72
  name: jeweler
77
- version_requirements: &id004 !ruby/object:Gem::Requirement
73
+ prerelease: false
74
+ requirement: &id004 !ruby/object:Gem::Requirement
78
75
  none: false
79
76
  requirements:
80
77
  - - ~>
@@ -85,12 +82,12 @@ dependencies:
85
82
  - 4
86
83
  - 0
87
84
  version: 1.4.0
88
- requirement: *id004
89
- - !ruby/object:Gem::Dependency
90
85
  type: :development
91
- prerelease: false
86
+ version_requirements: *id004
87
+ - !ruby/object:Gem::Dependency
92
88
  name: rake
93
- version_requirements: &id005 !ruby/object:Gem::Requirement
89
+ prerelease: false
90
+ requirement: &id005 !ruby/object:Gem::Requirement
94
91
  none: false
95
92
  requirements:
96
93
  - - ">="
@@ -99,12 +96,12 @@ dependencies:
99
96
  segments:
100
97
  - 0
101
98
  version: "0"
102
- requirement: *id005
103
- - !ruby/object:Gem::Dependency
104
99
  type: :development
105
- prerelease: false
100
+ version_requirements: *id005
101
+ - !ruby/object:Gem::Dependency
106
102
  name: rdoc
107
- version_requirements: &id006 !ruby/object:Gem::Requirement
103
+ prerelease: false
104
+ requirement: &id006 !ruby/object:Gem::Requirement
108
105
  none: false
109
106
  requirements:
110
107
  - - ">="
@@ -113,12 +110,12 @@ dependencies:
113
110
  segments:
114
111
  - 0
115
112
  version: "0"
116
- requirement: *id006
117
- - !ruby/object:Gem::Dependency
118
113
  type: :development
119
- prerelease: false
114
+ version_requirements: *id006
115
+ - !ruby/object:Gem::Dependency
120
116
  name: rspec
121
- version_requirements: &id007 !ruby/object:Gem::Requirement
117
+ prerelease: false
118
+ requirement: &id007 !ruby/object:Gem::Requirement
122
119
  none: false
123
120
  requirements:
124
121
  - - ~>
@@ -131,12 +128,12 @@ dependencies:
131
128
  - beta
132
129
  - 17
133
130
  version: 2.0.0.beta.17
134
- requirement: *id007
135
- - !ruby/object:Gem::Dependency
136
131
  type: :development
137
- prerelease: false
132
+ version_requirements: *id007
133
+ - !ruby/object:Gem::Dependency
138
134
  name: sniff
139
- version_requirements: &id008 !ruby/object:Gem::Requirement
135
+ prerelease: false
136
+ requirement: &id008 !ruby/object:Gem::Requirement
140
137
  none: false
141
138
  requirements:
142
139
  - - ~>
@@ -147,12 +144,12 @@ dependencies:
147
144
  - 1
148
145
  - 16
149
146
  version: 0.1.16
150
- requirement: *id008
147
+ type: :development
148
+ version_requirements: *id008
151
149
  - !ruby/object:Gem::Dependency
152
- type: :runtime
153
- prerelease: false
154
150
  name: earth
155
- version_requirements: &id009 !ruby/object:Gem::Requirement
151
+ prerelease: false
152
+ requirement: &id009 !ruby/object:Gem::Requirement
156
153
  none: false
157
154
  requirements:
158
155
  - - ~>
@@ -163,12 +160,12 @@ dependencies:
163
160
  - 2
164
161
  - 4
165
162
  version: 0.2.4
166
- requirement: *id009
167
- - !ruby/object:Gem::Dependency
168
163
  type: :runtime
169
- prerelease: false
164
+ version_requirements: *id009
165
+ - !ruby/object:Gem::Dependency
170
166
  name: emitter
171
- version_requirements: &id010 !ruby/object:Gem::Requirement
167
+ prerelease: false
168
+ requirement: &id010 !ruby/object:Gem::Requirement
172
169
  none: false
173
170
  requirements:
174
171
  - - ~>
@@ -179,12 +176,12 @@ dependencies:
179
176
  - 1
180
177
  - 4
181
178
  version: 0.1.4
182
- requirement: *id010
183
- - !ruby/object:Gem::Dependency
184
179
  type: :runtime
185
- prerelease: false
180
+ version_requirements: *id010
181
+ - !ruby/object:Gem::Dependency
186
182
  name: fastercsv
187
- version_requirements: &id011 !ruby/object:Gem::Requirement
183
+ prerelease: false
184
+ requirement: &id011 !ruby/object:Gem::Requirement
188
185
  none: false
189
186
  requirements:
190
187
  - - ~>
@@ -195,12 +192,12 @@ dependencies:
195
192
  - 5
196
193
  - 3
197
194
  version: 1.5.3
198
- requirement: *id011
199
- - !ruby/object:Gem::Dependency
200
195
  type: :runtime
201
- prerelease: false
196
+ version_requirements: *id011
197
+ - !ruby/object:Gem::Dependency
202
198
  name: slither
203
- version_requirements: &id012 !ruby/object:Gem::Requirement
199
+ prerelease: false
200
+ requirement: &id012 !ruby/object:Gem::Requirement
204
201
  none: false
205
202
  requirements:
206
203
  - - ~>
@@ -211,7 +208,132 @@ dependencies:
211
208
  - 99
212
209
  - 3
213
210
  version: 0.99.3
214
- requirement: *id012
211
+ type: :runtime
212
+ version_requirements: *id012
213
+ - !ruby/object:Gem::Dependency
214
+ name: activerecord
215
+ prerelease: false
216
+ requirement: &id013 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ hash: 7
222
+ segments:
223
+ - 3
224
+ - 0
225
+ - 0
226
+ version: 3.0.0
227
+ type: :development
228
+ version_requirements: *id013
229
+ - !ruby/object:Gem::Dependency
230
+ name: bundler
231
+ prerelease: false
232
+ requirement: &id014 !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ hash: 23
238
+ segments:
239
+ - 1
240
+ - 0
241
+ - 0
242
+ version: 1.0.0
243
+ type: :development
244
+ version_requirements: *id014
245
+ - !ruby/object:Gem::Dependency
246
+ name: cucumber
247
+ prerelease: false
248
+ requirement: &id015 !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ hash: 3
254
+ segments:
255
+ - 0
256
+ version: "0"
257
+ type: :development
258
+ version_requirements: *id015
259
+ - !ruby/object:Gem::Dependency
260
+ name: jeweler
261
+ prerelease: false
262
+ requirement: &id016 !ruby/object:Gem::Requirement
263
+ none: false
264
+ requirements:
265
+ - - ~>
266
+ - !ruby/object:Gem::Version
267
+ hash: 7
268
+ segments:
269
+ - 1
270
+ - 4
271
+ - 0
272
+ version: 1.4.0
273
+ type: :development
274
+ version_requirements: *id016
275
+ - !ruby/object:Gem::Dependency
276
+ name: rake
277
+ prerelease: false
278
+ requirement: &id017 !ruby/object:Gem::Requirement
279
+ none: false
280
+ requirements:
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ hash: 3
284
+ segments:
285
+ - 0
286
+ version: "0"
287
+ type: :development
288
+ version_requirements: *id017
289
+ - !ruby/object:Gem::Dependency
290
+ name: rdoc
291
+ prerelease: false
292
+ requirement: &id018 !ruby/object:Gem::Requirement
293
+ none: false
294
+ requirements:
295
+ - - ">="
296
+ - !ruby/object:Gem::Version
297
+ hash: 3
298
+ segments:
299
+ - 0
300
+ version: "0"
301
+ type: :development
302
+ version_requirements: *id018
303
+ - !ruby/object:Gem::Dependency
304
+ name: rspec
305
+ prerelease: false
306
+ requirement: &id019 !ruby/object:Gem::Requirement
307
+ none: false
308
+ requirements:
309
+ - - ~>
310
+ - !ruby/object:Gem::Version
311
+ hash: 62196417
312
+ segments:
313
+ - 2
314
+ - 0
315
+ - 0
316
+ - beta
317
+ - 17
318
+ version: 2.0.0.beta.17
319
+ type: :development
320
+ version_requirements: *id019
321
+ - !ruby/object:Gem::Dependency
322
+ name: sniff
323
+ prerelease: false
324
+ requirement: &id020 !ruby/object:Gem::Requirement
325
+ none: false
326
+ requirements:
327
+ - - ~>
328
+ - !ruby/object:Gem::Version
329
+ hash: 59
330
+ segments:
331
+ - 0
332
+ - 1
333
+ - 16
334
+ version: 0.1.16
335
+ type: :development
336
+ version_requirements: *id020
215
337
  description: A software model in Ruby for the greenhouse gas emissions of a purchase
216
338
  email: seamus@brighterplanet.com
217
339
  executables: []
@@ -234,11 +356,10 @@ files:
234
356
  - lib/test_support/purchase_record.rb
235
357
  - lib/test_support/test_impact_vectors_adapter.rb
236
358
  - lib/test_support/test_sector_direct_requirements_adapter.rb
237
- - features/step_definitions/matrix.rb
238
- - features/support/env.rb
239
- - features/support/matrix_ext.rb
240
359
  - features/purchase_committees.feature
241
360
  - features/purchase_emissions.feature
361
+ - features/support/env.rb
362
+ - features/support/matrix_ext.rb
242
363
  has_rdoc: true
243
364
  homepage: http://github.com/brighterplanet/purchase
244
365
  licenses: []
@@ -274,11 +395,10 @@ signing_key:
274
395
  specification_version: 3
275
396
  summary: A carbon model
276
397
  test_files:
277
- - features/step_definitions/matrix.rb
278
- - features/support/env.rb
279
- - features/support/matrix_ext.rb
280
398
  - features/purchase_committees.feature
281
399
  - features/purchase_emissions.feature
400
+ - features/support/env.rb
401
+ - features/support/matrix_ext.rb
282
402
  - lib/test_support/db/schema.rb
283
403
  - lib/test_support/purchase_record.rb
284
404
  - lib/test_support/test_impact_vectors_adapter.rb
@@ -1,24 +0,0 @@
1
- Then /^the conclusion of the committee should be a vector with "(.*)" items$/ do |count|
2
- vector = @report.conclusion
3
- vector.size.should == count.to_i
4
- end
5
-
6
- Then /^the conclusion of the committee should be a vector with value "(.*)" and position for key "(.*)"$/ do |value, key|
7
- vector = @report.conclusion
8
- position = BrighterPlanet::Purchase.key_map.index key
9
- compare_values vector[position], value
10
- end
11
-
12
- Then /^the conclusion of the committee should be a square matrix with "(\d+)" rows and columns$/ do |num|
13
- matrix = @report.conclusion
14
- matrix.row_size.should == num.to_i
15
- matrix.should be_square
16
- end
17
-
18
- Then /^the conclusion of the committee should be a vector with values "(.*)"$/ do |column_values|
19
- column_values = column_values.split(/,/).map(&:to_f)
20
- vector = @report.conclusion
21
- vector = vector.row(0) if vector.is_a? Matrix #some vectors are single-row matrices
22
-
23
- vector.should have_column_values(column_values)
24
- end