purchase 1.0.4 → 1.0.5

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