spectus 3.1.3 → 3.1.4

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 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