sniff 0.1.1 → 0.1.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.
@@ -1,15 +1,22 @@
|
|
1
|
-
Given /^a
|
2
|
-
|
1
|
+
Given /^a (.+) emitter$/ do |name|
|
2
|
+
name = name.gsub(/\s+/,'_').camelize + 'Record'
|
3
|
+
@activity = name.constantize
|
4
|
+
@characteristics ||= {}
|
3
5
|
end
|
4
6
|
|
5
7
|
Given /^(a )?characteristic "(.*)" of "(.*)"$/ do |_, name, value|
|
6
|
-
@characteristics ||= {}
|
7
|
-
|
8
8
|
if name =~ /\./
|
9
9
|
model_name, attribute = name.split /\./
|
10
|
-
model =
|
10
|
+
model = begin
|
11
|
+
model_name.singularize.camelize.constantize
|
12
|
+
rescue NameError
|
13
|
+
association = @activity.reflect_on_association model_name.to_sym
|
14
|
+
association.klass
|
15
|
+
end
|
11
16
|
value = model.send "find_by_#{attribute}", value
|
12
17
|
@characteristics[model_name.to_sym] = value
|
18
|
+
elsif name == 'timeframe' and value.present?
|
19
|
+
@characteristics[name.to_sym] = Timeframe.interval value
|
13
20
|
else
|
14
21
|
value = coerce_value(value)
|
15
22
|
@characteristics[name.to_sym] = value
|
@@ -19,16 +26,27 @@ end
|
|
19
26
|
When /^the "(.*)" committee is calculated$/ do |committee_name|
|
20
27
|
@decision ||= @activity.decisions[:emission]
|
21
28
|
@committee = @decision.committees.find { |c| c.name.to_s == committee_name }
|
22
|
-
|
23
|
-
@characteristics[
|
29
|
+
args = [@characteristics]
|
30
|
+
if @characteristics[:timeframe]
|
31
|
+
args << [@characteristics[:timeframe]]
|
32
|
+
else
|
33
|
+
args << []
|
34
|
+
end
|
35
|
+
@report = @committee.report *args
|
36
|
+
@characteristics[committee_name.to_sym] = @report.andand.conclusion
|
24
37
|
end
|
25
38
|
|
26
39
|
Then /^the committee should have used quorum "(.*)"$/ do |quorum|
|
40
|
+
raise "Missing report for committee #{@committee.name}" if @report.nil?
|
27
41
|
@report.quorum.name.should == quorum
|
28
42
|
end
|
29
43
|
|
30
|
-
Then /^the conclusion of the committee should be "(
|
31
|
-
compare_values(@report.conclusion, conclusion)
|
44
|
+
Then /^the conclusion of the committee should be "(.*)"$/ do |conclusion|
|
45
|
+
compare_values(@report.andand.conclusion, conclusion)
|
46
|
+
end
|
47
|
+
|
48
|
+
Then /^the conclusion of the committee should be nil$/ do
|
49
|
+
compare_values(@report.andand.conclusion, nil)
|
32
50
|
end
|
33
51
|
|
34
52
|
Then /^the conclusion of the committee should include a key of (.*) and value (.*)$/ do |key, value|
|
@@ -58,6 +76,11 @@ Then /^the conclusion of the committee should have a record identified with "(.*
|
|
58
76
|
coerce_value(record.send(field)).should == coerce_value(value)
|
59
77
|
end
|
60
78
|
|
79
|
+
Then /^the conclusion of the committee should have a record with "([^"]*)" equal to "([^"]*)"$/ do |field, value|
|
80
|
+
record = @report.conclusion
|
81
|
+
compare_values(coerce_value(record.send(field)),value)
|
82
|
+
end
|
83
|
+
|
61
84
|
Then /^the conclusion of the committee should include a key of "(.*)" and subvalue "(.*)" of "(.*)" and subvalue "(.*)" of "(.*)"$/ do |key, subkey1, subvalue1, subkey2, subvalue2|
|
62
85
|
if key.present?
|
63
86
|
@report.conclusion.keys.map(&:to_s).should include(key)
|
@@ -1,5 +1,14 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
def coerce_value(value)
|
2
|
-
|
4
|
+
# what is this, PHP?
|
5
|
+
if value.nil?
|
6
|
+
nil
|
7
|
+
elsif value == 'true'
|
8
|
+
true
|
9
|
+
elsif value == 'false'
|
10
|
+
false
|
11
|
+
elsif value =~ /\d+\.\d+/
|
3
12
|
value.to_f
|
4
13
|
elsif value =~ /^\d+$/
|
5
14
|
value.to_i
|
@@ -9,7 +18,12 @@ def coerce_value(value)
|
|
9
18
|
end
|
10
19
|
|
11
20
|
def compare_values(a, b)
|
12
|
-
if b
|
21
|
+
if b.nil?
|
22
|
+
a.should be_nil
|
23
|
+
elsif a.is_a? Date or a.is_a? Time
|
24
|
+
b = Date.parse b
|
25
|
+
a.should == b
|
26
|
+
elsif b =~ /\d+\.\d+/
|
13
27
|
b = b.to_f
|
14
28
|
a.should be_close(b, 0.00001)
|
15
29
|
elsif b =~ /^\d+$/
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sniff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Derek Kastner
|