purchase 1.0.4 → 1.0.5

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.
@@ -0,0 +1,24 @@
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
@@ -0,0 +1,4 @@
1
+ Then /^the conclusion of the committee should have ratios summing to "(.*)"$/ do |sum|
2
+ ratios = @report.conclusion
3
+ ratios.values.sum.to_f.should == sum.to_f
4
+ end
@@ -136,12 +136,11 @@ module BrighterPlanet
136
136
  end
137
137
 
138
138
  quorum 'from merchant category industries', :needs => :merchant_category_industries do |characteristics|
139
- characteristics[:merchant_category_industries].inject({}) do |hash, merchant_category_industry|
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
143
- end
144
- hash
139
+ characteristics[:merchant_category_industries].
140
+ reject { |mci| mci.industry.trade_industry? }.inject({}) do |ntir, merchant_category_industry|
141
+ ntir[merchant_category_industry.naics_code] ||= 0
142
+ ntir[merchant_category_industry.naics_code] += merchant_category_industry.ratio
143
+ ntir
145
144
  end
146
145
  end
147
146
  end
@@ -156,12 +155,11 @@ module BrighterPlanet
156
155
  end
157
156
 
158
157
  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
158
+ characteristics[:merchant_category_industries].
159
+ select { |mci| mci.industry.trade_industry? }.inject({}) do |tir, merchant_category_industry|
160
+ tir[merchant_category_industry.naics_code] ||= 0
161
+ tir[merchant_category_industry.naics_code] += merchant_category_industry.ratio
162
+ tir
165
163
  end
166
164
  end
167
165
  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: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 4
10
- version: 1.0.4
9
+ - 5
10
+ version: 1.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Rossmeissl
@@ -23,9 +23,10 @@ date: 2010-10-07 00:00:00 -04:00
23
23
  default_executable:
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
- name: activerecord
26
+ type: :development
27
27
  prerelease: false
28
- requirement: &id001 !ruby/object:Gem::Requirement
28
+ name: activerecord
29
+ version_requirements: &id001 !ruby/object:Gem::Requirement
29
30
  none: false
30
31
  requirements:
31
32
  - - ~>
@@ -36,12 +37,12 @@ dependencies:
36
37
  - 0
37
38
  - 0
38
39
  version: 3.0.0
39
- type: :development
40
- version_requirements: *id001
40
+ requirement: *id001
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ type: :development
43
43
  prerelease: false
44
- requirement: &id002 !ruby/object:Gem::Requirement
44
+ name: bundler
45
+ version_requirements: &id002 !ruby/object:Gem::Requirement
45
46
  none: false
46
47
  requirements:
47
48
  - - ~>
@@ -52,12 +53,12 @@ dependencies:
52
53
  - 0
53
54
  - 0
54
55
  version: 1.0.0
55
- type: :development
56
- version_requirements: *id002
56
+ requirement: *id002
57
57
  - !ruby/object:Gem::Dependency
58
- name: cucumber
58
+ type: :development
59
59
  prerelease: false
60
- requirement: &id003 !ruby/object:Gem::Requirement
60
+ name: cucumber
61
+ version_requirements: &id003 !ruby/object:Gem::Requirement
61
62
  none: false
62
63
  requirements:
63
64
  - - ">="
@@ -66,12 +67,12 @@ dependencies:
66
67
  segments:
67
68
  - 0
68
69
  version: "0"
69
- type: :development
70
- version_requirements: *id003
70
+ requirement: *id003
71
71
  - !ruby/object:Gem::Dependency
72
- name: jeweler
72
+ type: :development
73
73
  prerelease: false
74
- requirement: &id004 !ruby/object:Gem::Requirement
74
+ name: jeweler
75
+ version_requirements: &id004 !ruby/object:Gem::Requirement
75
76
  none: false
76
77
  requirements:
77
78
  - - ~>
@@ -82,12 +83,12 @@ dependencies:
82
83
  - 4
83
84
  - 0
84
85
  version: 1.4.0
85
- type: :development
86
- version_requirements: *id004
86
+ requirement: *id004
87
87
  - !ruby/object:Gem::Dependency
88
- name: rake
88
+ type: :development
89
89
  prerelease: false
90
- requirement: &id005 !ruby/object:Gem::Requirement
90
+ name: rake
91
+ version_requirements: &id005 !ruby/object:Gem::Requirement
91
92
  none: false
92
93
  requirements:
93
94
  - - ">="
@@ -96,12 +97,12 @@ dependencies:
96
97
  segments:
97
98
  - 0
98
99
  version: "0"
99
- type: :development
100
- version_requirements: *id005
100
+ requirement: *id005
101
101
  - !ruby/object:Gem::Dependency
102
- name: rdoc
102
+ type: :development
103
103
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
104
+ name: rdoc
105
+ version_requirements: &id006 !ruby/object:Gem::Requirement
105
106
  none: false
106
107
  requirements:
107
108
  - - ">="
@@ -110,12 +111,12 @@ dependencies:
110
111
  segments:
111
112
  - 0
112
113
  version: "0"
113
- type: :development
114
- version_requirements: *id006
114
+ requirement: *id006
115
115
  - !ruby/object:Gem::Dependency
116
- name: rspec
116
+ type: :development
117
117
  prerelease: false
118
- requirement: &id007 !ruby/object:Gem::Requirement
118
+ name: rspec
119
+ version_requirements: &id007 !ruby/object:Gem::Requirement
119
120
  none: false
120
121
  requirements:
121
122
  - - ~>
@@ -128,12 +129,12 @@ dependencies:
128
129
  - beta
129
130
  - 17
130
131
  version: 2.0.0.beta.17
131
- type: :development
132
- version_requirements: *id007
132
+ requirement: *id007
133
133
  - !ruby/object:Gem::Dependency
134
- name: sniff
134
+ type: :development
135
135
  prerelease: false
136
- requirement: &id008 !ruby/object:Gem::Requirement
136
+ name: sniff
137
+ version_requirements: &id008 !ruby/object:Gem::Requirement
137
138
  none: false
138
139
  requirements:
139
140
  - - ~>
@@ -144,12 +145,12 @@ dependencies:
144
145
  - 1
145
146
  - 16
146
147
  version: 0.1.16
147
- type: :development
148
- version_requirements: *id008
148
+ requirement: *id008
149
149
  - !ruby/object:Gem::Dependency
150
- name: earth
150
+ type: :runtime
151
151
  prerelease: false
152
- requirement: &id009 !ruby/object:Gem::Requirement
152
+ name: earth
153
+ version_requirements: &id009 !ruby/object:Gem::Requirement
153
154
  none: false
154
155
  requirements:
155
156
  - - ~>
@@ -160,12 +161,12 @@ dependencies:
160
161
  - 2
161
162
  - 4
162
163
  version: 0.2.4
163
- type: :runtime
164
- version_requirements: *id009
164
+ requirement: *id009
165
165
  - !ruby/object:Gem::Dependency
166
- name: emitter
166
+ type: :runtime
167
167
  prerelease: false
168
- requirement: &id010 !ruby/object:Gem::Requirement
168
+ name: emitter
169
+ version_requirements: &id010 !ruby/object:Gem::Requirement
169
170
  none: false
170
171
  requirements:
171
172
  - - ~>
@@ -176,12 +177,12 @@ dependencies:
176
177
  - 1
177
178
  - 4
178
179
  version: 0.1.4
179
- type: :runtime
180
- version_requirements: *id010
180
+ requirement: *id010
181
181
  - !ruby/object:Gem::Dependency
182
- name: fastercsv
182
+ type: :runtime
183
183
  prerelease: false
184
- requirement: &id011 !ruby/object:Gem::Requirement
184
+ name: fastercsv
185
+ version_requirements: &id011 !ruby/object:Gem::Requirement
185
186
  none: false
186
187
  requirements:
187
188
  - - ~>
@@ -192,12 +193,12 @@ dependencies:
192
193
  - 5
193
194
  - 3
194
195
  version: 1.5.3
195
- type: :runtime
196
- version_requirements: *id011
196
+ requirement: *id011
197
197
  - !ruby/object:Gem::Dependency
198
- name: slither
198
+ type: :runtime
199
199
  prerelease: false
200
- requirement: &id012 !ruby/object:Gem::Requirement
200
+ name: slither
201
+ version_requirements: &id012 !ruby/object:Gem::Requirement
201
202
  none: false
202
203
  requirements:
203
204
  - - ~>
@@ -208,132 +209,7 @@ dependencies:
208
209
  - 99
209
210
  - 3
210
211
  version: 0.99.3
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
212
+ requirement: *id012
337
213
  description: A software model in Ruby for the greenhouse gas emissions of a purchase
338
214
  email: seamus@brighterplanet.com
339
215
  executables: []
@@ -356,10 +232,12 @@ files:
356
232
  - lib/test_support/purchase_record.rb
357
233
  - lib/test_support/test_impact_vectors_adapter.rb
358
234
  - lib/test_support/test_sector_direct_requirements_adapter.rb
359
- - features/purchase_committees.feature
360
- - features/purchase_emissions.feature
235
+ - features/step_definitions/matrix_steps.rb
236
+ - features/step_definitions/purchase_steps.rb
361
237
  - features/support/env.rb
362
238
  - features/support/matrix_ext.rb
239
+ - features/purchase_committees.feature
240
+ - features/purchase_emissions.feature
363
241
  has_rdoc: true
364
242
  homepage: http://github.com/brighterplanet/purchase
365
243
  licenses: []
@@ -395,10 +273,12 @@ signing_key:
395
273
  specification_version: 3
396
274
  summary: A carbon model
397
275
  test_files:
398
- - features/purchase_committees.feature
399
- - features/purchase_emissions.feature
276
+ - features/step_definitions/matrix_steps.rb
277
+ - features/step_definitions/purchase_steps.rb
400
278
  - features/support/env.rb
401
279
  - features/support/matrix_ext.rb
280
+ - features/purchase_committees.feature
281
+ - features/purchase_emissions.feature
402
282
  - lib/test_support/db/schema.rb
403
283
  - lib/test_support/purchase_record.rb
404
284
  - lib/test_support/test_impact_vectors_adapter.rb