spectus 2.0.1 → 2.0.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Gemfile +0 -2
- data/VERSION.semver +1 -1
- data/lib/spectus.rb +6 -1
- data/lib/spectus/expectation_target.rb +1 -0
- data/lib/spectus/requirement.rb +29 -0
- data/lib/spectus/requirement_level/high.rb +2 -22
- data/lib/spectus/requirement_level/low.rb +6 -6
- data/lib/spectus/requirement_level/medium.rb +6 -6
- data/lib/spectus/sandbox.rb +2 -0
- metadata +21 -20
- metadata.gz.sig +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c3e542950b2210e49686b15023c8be3d160aa49
|
4
|
+
data.tar.gz: b45fe15296e94a7ae911b126172183a9149758f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ac7132ac401af9effa9b7e2613492a5fa3f4892cfdd302d22d01c500b1c3c63c30ba7e2ee1e429c8acbfaa7d2f0572c3a62926d72f33e5b50d10c51b720a407
|
7
|
+
data.tar.gz: 265522140ef91356450d32a5cf4fa16b0ffaedf9da7209ba7e66c1435e3248df0cf8ae7b56aa6676a42e653e47c2a39cc9308281a0bdd124f6f0c63f49a5b7f4
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Gemfile
CHANGED
data/VERSION.semver
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.2
|
data/lib/spectus.rb
CHANGED
@@ -2,7 +2,10 @@ require_relative File.join 'spectus', 'expectation_target'
|
|
2
2
|
|
3
3
|
# Namespace for the Spectus library.
|
4
4
|
#
|
5
|
-
# @api
|
5
|
+
# @api public
|
6
|
+
#
|
7
|
+
# @example 42 MUST be equal to 42
|
8
|
+
# Spectus.this { 42 }.MUST equal: 42 # => true
|
6
9
|
module Spectus
|
7
10
|
# Expectations are built with this method.
|
8
11
|
#
|
@@ -11,6 +14,8 @@ module Spectus
|
|
11
14
|
# @example Absolute requirement definition
|
12
15
|
# this { 42 }.MUST equal: 42 # => true
|
13
16
|
#
|
17
|
+
# @yieldparam input the code to test.
|
18
|
+
#
|
14
19
|
# @return [ExpectationTarget] the expectation target.
|
15
20
|
def self.this(&input)
|
16
21
|
ExpectationTarget.new(&input)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative 'sandbox'
|
2
|
+
|
3
|
+
module Spectus
|
4
|
+
# Requirement level's base class.
|
5
|
+
#
|
6
|
+
# @api private
|
7
|
+
#
|
8
|
+
class Requirement < BasicObject
|
9
|
+
# Initialize the requirement level class.
|
10
|
+
#
|
11
|
+
# @param [Hash] definition
|
12
|
+
# @param [Boolean] negate
|
13
|
+
def initialize(definition, negate = false)
|
14
|
+
@definition = definition
|
15
|
+
@negate = negate
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
# Run the actual block against the definition.
|
21
|
+
#
|
22
|
+
# @yieldparam actual the value which is compared with the expected value.
|
23
|
+
#
|
24
|
+
# @return [Boolean] report if the expectation is true or false.
|
25
|
+
def sandbox(&actual)
|
26
|
+
Sandbox.new(@definition, &actual)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,36 +1,16 @@
|
|
1
|
-
require_relative File.join '..', '
|
1
|
+
require_relative File.join '..', 'requirement'
|
2
2
|
|
3
3
|
module Spectus
|
4
4
|
# Contains requirement levels.
|
5
|
-
#
|
6
5
|
module RequirementLevel
|
7
6
|
# _High_ requirement level.
|
8
|
-
|
9
|
-
class High < BasicObject
|
10
|
-
# Initialize the requirement level class.
|
11
|
-
#
|
12
|
-
# @param [Hash] definition
|
13
|
-
# @param [Boolean] negate
|
14
|
-
def initialize(definition, negate = false)
|
15
|
-
@definition = definition
|
16
|
-
@negate = negate
|
17
|
-
end
|
18
|
-
|
7
|
+
class High < Requirement
|
19
8
|
# Evaluate the expectation with the passed block.
|
20
9
|
#
|
21
10
|
# @return [Boolean] report if the expectation is true or false.
|
22
11
|
def pass?(&actual)
|
23
12
|
sandbox(&actual).pass?(@negate)
|
24
13
|
end
|
25
|
-
|
26
|
-
protected
|
27
|
-
|
28
|
-
# Run the actual block against the definition.
|
29
|
-
#
|
30
|
-
# @return [Boolean] report if the expectation is true or false.
|
31
|
-
def sandbox(&actual)
|
32
|
-
Sandbox.new(@definition, &actual)
|
33
|
-
end
|
34
14
|
end
|
35
15
|
end
|
36
16
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative File.join '..', 'requirement'
|
2
2
|
|
3
3
|
module Spectus
|
4
4
|
# Contains requirement levels.
|
5
|
-
#
|
6
5
|
module RequirementLevel
|
7
6
|
# _Low_ requirement level.
|
8
|
-
|
9
|
-
class Low < Medium
|
7
|
+
class Low < Requirement
|
10
8
|
# Evaluate the expectation with the passed block.
|
11
9
|
#
|
12
10
|
# @return [Boolean] report if the expectation is true or false.
|
13
11
|
def pass?(&actual)
|
14
|
-
|
12
|
+
result = sandbox(&actual)
|
13
|
+
|
14
|
+
if result.exception.class.equal?(::NoMethodError)
|
15
15
|
true
|
16
16
|
else
|
17
|
-
|
17
|
+
result.pass?(@negate)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative File.join '..', 'requirement'
|
2
2
|
|
3
3
|
module Spectus
|
4
4
|
# Contains requirement levels.
|
5
|
-
#
|
6
5
|
module RequirementLevel
|
7
6
|
# _Medium_ requirement level.
|
8
|
-
|
9
|
-
class Medium < High
|
7
|
+
class Medium < Requirement
|
10
8
|
# Evaluate the expectation with the passed block.
|
11
9
|
#
|
12
10
|
# @return [Boolean] report if the expectation is true or false.
|
13
11
|
def pass?(&actual)
|
14
|
-
|
12
|
+
result = sandbox(&actual)
|
13
|
+
|
14
|
+
if result.pass?(@negate)
|
15
15
|
true
|
16
16
|
else
|
17
|
-
|
17
|
+
result.exception.nil?
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
data/lib/spectus/sandbox.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spectus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyril Wack
|
@@ -30,88 +30,88 @@ cert_chain:
|
|
30
30
|
zeYBFLJQAl0AQPaGujsG5tssIabiNy1ryydKAjWkNDxqLgvtwST3L0Qr9UQFQgoA
|
31
31
|
O2Rl8PjSD+2P9XE7T2x1xQ==
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2015-02-
|
33
|
+
date: 2015-02-19 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
type: :runtime
|
37
36
|
name: expect
|
38
|
-
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
39
38
|
requirements:
|
40
39
|
- - "~>"
|
41
40
|
- !ruby/object:Gem::Version
|
42
41
|
version: 0.0.4
|
42
|
+
type: :runtime
|
43
43
|
prerelease: false
|
44
|
-
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 0.0.4
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
type: :development
|
51
50
|
name: bundler
|
52
|
-
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
53
52
|
requirements:
|
54
53
|
- - "~>"
|
55
54
|
- !ruby/object:Gem::Version
|
56
55
|
version: '1.8'
|
56
|
+
type: :development
|
57
57
|
prerelease: false
|
58
|
-
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '1.8'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
type: :development
|
65
64
|
name: rake
|
66
|
-
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
67
66
|
requirements:
|
68
67
|
- - "~>"
|
69
68
|
- !ruby/object:Gem::Version
|
70
69
|
version: '10.0'
|
70
|
+
type: :development
|
71
71
|
prerelease: false
|
72
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '10.0'
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
type: :development
|
79
78
|
name: yard
|
80
|
-
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
81
80
|
requirements:
|
82
81
|
- - "~>"
|
83
82
|
- !ruby/object:Gem::Version
|
84
83
|
version: '0.8'
|
84
|
+
type: :development
|
85
85
|
prerelease: false
|
86
|
-
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0.8'
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
type: :development
|
93
92
|
name: simplecov
|
94
|
-
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
95
94
|
requirements:
|
96
95
|
- - "~>"
|
97
96
|
- !ruby/object:Gem::Version
|
98
97
|
version: 0.9.1
|
98
|
+
type: :development
|
99
99
|
prerelease: false
|
100
|
-
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: 0.9.1
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
|
-
type: :development
|
107
106
|
name: rubocop
|
108
|
-
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
109
108
|
requirements:
|
110
109
|
- - "~>"
|
111
110
|
- !ruby/object:Gem::Version
|
112
111
|
version: '0.29'
|
112
|
+
type: :development
|
113
113
|
prerelease: false
|
114
|
-
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- bin/setup
|
138
138
|
- lib/spectus.rb
|
139
139
|
- lib/spectus/expectation_target.rb
|
140
|
+
- lib/spectus/requirement.rb
|
140
141
|
- lib/spectus/requirement_level/high.rb
|
141
142
|
- lib/spectus/requirement_level/low.rb
|
142
143
|
- lib/spectus/requirement_level/medium.rb
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
!�w��1)��;A�?�҇�ƍ{ַE��5?LK~�_CC�{α�����3:�VZݽQ��}J!н����
|
2
|
+
��8�7��l'T�p�f�,�G�m���qK�������1u4xsS��R�D�MG��w�
|