spectus 3.1.3 → 3.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee7d9fda32871f2db5571569f0b85a63edb9cdd4abb7149059bca0e218383a07
4
- data.tar.gz: 530aefebbfedcea834fec61c14e79b79a4e71930a059c51de314c85c8264a299
3
+ metadata.gz: 73306cc997a51543203fcfbec28fedae74de8ca9f382040db66d1c6aebbfc4bd
4
+ data.tar.gz: c9d9365b33cc4cca9cb54630306f9320c254a42ad64161d8a609107eeb8f95e3
5
5
  SHA512:
6
- metadata.gz: 42d8f625fd2f0057416a41e3c46decefee155a24679443851882c36513fc8765c1ca437800ee94a031a11edf30ff81758f36e87e08959dbbefd64cc8d94ffbd9
7
- data.tar.gz: b6607f0a2309f8dae7ceac5e8dc82bd2733b6289610a5b67ae258889395c15e496de38a13978726670a371bb9668eaf3a4f83e576d94e102f5b3b603d2ae558a
6
+ metadata.gz: 5cdfb58c6e5e3b748f8c5071f354793618a6e6e00053e3139175c5afde4cbc2fd39a419fbe516970354a6eaaee585637077d6dcc65b1d3ba7ae5412f26dcce60
7
+ data.tar.gz: 8211f7d6955d70067071a691bfa80b1f640930c01db4cec6433534141c3f7c7a4e386ee82c80f00941b3c6a04426d2266be7cdb416960e04c5e8a36b0f35bc95
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Spectus
2
2
 
3
- [![Build Status](https://api.travis-ci.org/fixrb/spectus.svg?branch=master)][travis]
3
+ [![Build Status](https://api.travis-ci.org/fixrb/spectus.svg?branch=main)][travis]
4
4
  [![Code Climate](https://codeclimate.com/github/fixrb/spectus/badges/gpa.svg)][codeclimate]
5
5
  [![Gem Version](https://badge.fury.io/rb/spectus.svg)][gem]
6
- [![Inline docs](https://inch-ci.org/github/fixrb/spectus.svg?branch=master)][inchpages]
6
+ [![Inline docs](https://inch-ci.org/github/fixrb/spectus.svg?branch=main)][inchpages]
7
7
  [![Documentation](https://img.shields.io/:yard-docs-38c800.svg)][rubydoc]
8
8
 
9
9
  > Expectation library with [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt)'s requirement levels 🚥
@@ -39,13 +39,21 @@ There are several scenarios:
39
39
 
40
40
  Thus,
41
41
 
42
- * when an expectation is `true`, a `Spectus::Result::Pass` instance is returned;
43
- * when an expectation is `false`, a `Spectus::Result::Fail` exception is raised.
42
+ * when an assertion is `true`, a `Spectus::Result::Pass` instance is returned;
43
+ * when an assertion is `false`, a `Spectus::Result::Fail` exception is raised.
44
44
 
45
- Both results share a common interface, and can be classified respectively as:
45
+ Both results share a common interface.
46
46
 
47
- * a _success_, ⚠️ a _warning_ or 💡 an _info_;
48
- * ❌ a _failure_ or 💥 an _error_.
47
+ Passed expectations can be classified as:
48
+
49
+ * ✅ success
50
+ * ⚠️ warning
51
+ * 💡 info
52
+
53
+ Failed expectations can be classified as:
54
+
55
+ * ❌ failure
56
+ * 💥 error
49
57
 
50
58
  ## Code Isolation
51
59
 
@@ -141,8 +149,8 @@ The optional `blank?` method is not implemented (unlike in [Ruby on Rails](https
141
149
 
142
150
  ### More Examples
143
151
 
144
- A full list of unit tests can be viewed here:
145
- [test.rb](https://github.com/fixrb/spectus/blob/master/test.rb)
152
+ A full list of unit tests can be viewed (and executed) here:
153
+ [./test.rb](https://github.com/fixrb/spectus/blob/main/test.rb)
146
154
 
147
155
  ## Contact
148
156
 
@@ -162,7 +170,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
162
170
  <p>
163
171
  This project is sponsored by:<br />
164
172
  <a href="https://sashite.com/"><img
165
- src="https://github.com/fixrb/spectus/raw/master/img/sashite.png"
173
+ src="https://github.com/fixrb/spectus/raw/main/img/sashite.png"
166
174
  alt="Sashite" /></a>
167
175
  </p>
168
176
 
@@ -32,37 +32,22 @@ module Spectus
32
32
 
33
33
  # The result of the expectation.
34
34
  #
35
- # @return [Result::Fail, Result::Pass] The test result.
35
+ # @raise [Result::Fail] The expectation is `false`.
36
+ # @return [Result::Pass] The expectation is `true`.
36
37
  def call
37
- pass? ? pass! : fail!
38
+ Result.call(pass?,
39
+ actual: exam.actual,
40
+ error: exam.exception,
41
+ expected: matcher.expected,
42
+ got: exam.got,
43
+ negate: negate?,
44
+ valid: exam.valid?,
45
+ matcher: matcher.class.to_sym,
46
+ level: level)
38
47
  end
39
48
 
40
49
  protected
41
50
 
42
- # @return [Result::Pass] A passed spec result.
43
- def pass!
44
- Result::Pass.new(**details)
45
- end
46
-
47
- # @raise [Result::Fail] A failed spec result.
48
- def fail!
49
- raise Result::Fail.new(**details)
50
- end
51
-
52
- # @return [Hash] List of parameters.
53
- def details
54
- {
55
- actual: exam.actual,
56
- error: exam.exception,
57
- expected: matcher.expected,
58
- got: exam.got,
59
- negate: negate?,
60
- valid: exam.valid?,
61
- matcher: matcher.class.to_sym,
62
- level: level
63
- }
64
- end
65
-
66
51
  # @return [Symbol] The requirement level.
67
52
  def level
68
53
  self.class.name.split("::").fetch(-1).upcase.to_sym
@@ -79,6 +64,5 @@ module Spectus
79
64
  end
80
65
  end
81
66
 
67
+ require_relative File.join("..", "result")
82
68
  require_relative File.join("..", "exam")
83
- require_relative File.join("..", "result", "fail")
84
- require_relative File.join("..", "result", "pass")
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spectus
4
+ # Namespace for the results.
5
+ module Result
6
+ # @raise [Fail] A failed spec result.
7
+ # @return [Pass] A passed spec result.
8
+ def self.call(is_passed, **details)
9
+ (is_passed ? Pass : Fail).call(**details)
10
+ end
11
+ end
12
+ end
13
+
14
+ require_relative File.join("result", "fail")
15
+ require_relative File.join("result", "pass")
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spectus
4
- # Namespace for the results.
5
4
  module Result
6
5
  # Common collection of methods for Result's classes.
7
6
  module Common
@@ -50,6 +49,13 @@ module Spectus
50
49
  super(to_s) if failed?
51
50
  end
52
51
 
52
+ # Did the test pass?
53
+ #
54
+ # @return [Boolean] The spec passed or failed?
55
+ def passed?
56
+ !failed?
57
+ end
58
+
53
59
  # The value of the negate instance variable.
54
60
  #
55
61
  # @return [Boolean] Evaluated to a negative assertion?
@@ -8,6 +8,11 @@ module Spectus
8
8
  class Fail < ::StandardError
9
9
  include Common
10
10
 
11
+ # @raise [Fail] A failed spec result.
12
+ def self.call(**details)
13
+ raise new(**details)
14
+ end
15
+
11
16
  # Did the test fail?
12
17
  #
13
18
  # @return [Boolean] The spec passed or failed?
@@ -15,13 +20,6 @@ module Spectus
15
20
  true
16
21
  end
17
22
 
18
- # Did the test pass?
19
- #
20
- # @return [Boolean] The spec passed or failed?
21
- def passed?
22
- !failed?
23
- end
24
-
25
23
  # The state of failure.
26
24
  #
27
25
  # @return [Boolean] The test was a failure?
@@ -8,6 +8,11 @@ module Spectus
8
8
  class Pass
9
9
  include Common
10
10
 
11
+ # @return [Pass] A passed spec result.
12
+ def self.call(**details)
13
+ new(**details)
14
+ end
15
+
11
16
  alias message to_s
12
17
 
13
18
  # Did the test fail?
@@ -17,13 +22,6 @@ module Spectus
17
22
  false
18
23
  end
19
24
 
20
- # Did the test pass?
21
- #
22
- # @return [Boolean] The spec passed or failed?
23
- def passed?
24
- !failed?
25
- end
26
-
27
25
  # The state of failure.
28
26
  #
29
27
  # @return [Boolean] The test was a failure?
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: 3.1.3
4
+ version: 3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
@@ -179,6 +179,7 @@ files:
179
179
  - lib/spectus/requirement_level/may.rb
180
180
  - lib/spectus/requirement_level/must.rb
181
181
  - lib/spectus/requirement_level/should.rb
182
+ - lib/spectus/result.rb
182
183
  - lib/spectus/result/common.rb
183
184
  - lib/spectus/result/fail.rb
184
185
  - lib/spectus/result/pass.rb