expresenter 1.3.0 → 1.4.1

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: b293c0c6ffd15b336c00fcc841647e6d244623346dd86ab6cf319c05cfc7d909
4
- data.tar.gz: 3901ec01f1277302150665002b97c157ba26846bf08e344bd364fbb7fdec874d
3
+ metadata.gz: 6eb634d0a1d539bbedb8a223d115a4b7ce567d376e67483c98a7a63816799730
4
+ data.tar.gz: 6251c7601028185b98b6748c2daca4666b8bcd350c62aa1066534e82d8282f8f
5
5
  SHA512:
6
- metadata.gz: db88b4f5c706ae1aaf48fdf6b2b45aa0ab4d0fe1f5a557331e51b8b9c9333f07305ec1f6d5f3287a34ed39e20396fd2d4879f5b186e94e9653420604a1d2ca3d
7
- data.tar.gz: 04c1db7b8ea904a67397305f111bde2e4dadac40c6cdd392cb855b3b4db24a8ae904c92cfe07332cdc137cceea57481d9d920803941722b3e8749db16d0b346b
6
+ metadata.gz: e8c26a86adfdee7cbc76b9308e541a0d5b97c7b6ed1b6eb5836065d587df7f820715f0fadf6c865c36176f4cf6c3ed29d557aa4b2cd30e2367a7d839395a80e1
7
+ data.tar.gz: 23d22691711a01ff958fa85276929f5a4c4132859eb44a28fc72577973d40a3535646492760494c6c9562a184599bbff0e36219fdceedae84ff3e315a767e3f0
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021 Cyril Kato
3
+ Copyright (c) 2021-2024 Cyril Kato
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Expresenter
2
2
 
3
- [![Build Status](https://api.travis-ci.org/fixrb/expresenter.svg?branch=main)][travis]
4
- [![Gem Version](https://badge.fury.io/rb/expresenter.svg)][gem]
5
- [![Inline docs](https://inch-ci.org/github/fixrb/expresenter.svg?branch=main)][inchpages]
6
- [![Documentation](https://img.shields.io/:yard-docs-38c800.svg)][rubydoc]
3
+ [![Version](https://img.shields.io/github/v/tag/fixrb/expresenter?label=Version&logo=github)](https://github.com/fixrb/expresenter/tags)
4
+ [![Yard documentation](https://img.shields.io/badge/Yard-documentation-blue.svg?logo=github)](https://rubydoc.info/github/fixrb/expresenter/main)
5
+ [![Ruby](https://github.com/fixrb/expresenter/workflows/Ruby/badge.svg?branch=main)](https://github.com/fixrb/expresenter/actions?query=workflow%3Aruby+branch%3Amain)
6
+ [![RuboCop](https://github.com/fixrb/expresenter/workflows/RuboCop/badge.svg?branch=main)](https://github.com/fixrb/expresenter/actions?query=workflow%3Arubocop+branch%3Amain)
7
+ [![License](https://img.shields.io/github/license/fixrb/expresenter?label=License&logo=github)](https://github.com/fixrb/expresenter/raw/main/LICENSE.md)
7
8
 
8
9
  > Expectation result presenter.
9
10
 
@@ -18,7 +19,7 @@ gem "expresenter"
18
19
  And then execute:
19
20
 
20
21
  ```sh
21
- bundle
22
+ bundle install
22
23
  ```
23
24
 
24
25
  Or install it yourself as:
@@ -62,11 +63,11 @@ Failed expectations can be classified as:
62
63
  The following parameters are required to instantiate the result:
63
64
 
64
65
  * `actual`: Returned value by the challenged subject.
66
+ * `definition`: A readable string of the matcher and any expected values.
65
67
  * `error`: Any possible raised exception.
66
68
  * `expected`: The expected value.
67
69
  * `got`: The result of the boolean comparison between the actual value and the expected value through the matcher.
68
70
  * `negate`: Evaluated to a negative assertion?
69
- * `matcher`: The symbol representing a matcher.
70
71
  * `level`: The requirement level (`:MUST`, `:SHOULD` or `:MAY`).
71
72
 
72
73
  #### Examples
@@ -74,7 +75,7 @@ The following parameters are required to instantiate the result:
74
75
  A passed expectation:
75
76
 
76
77
  ```ruby
77
- result = Expresenter.call(true).new(actual: "FOO", error: nil, expected: "foo", got: true, negate: true, matcher: :eql, level: :MUST)
78
+ result = Expresenter.call(true).new(actual: "FOO", definition: 'eq "foo"', error: nil, expected: "foo", got: true, negate: true, level: :MUST)
78
79
 
79
80
  result.failed? # => false
80
81
  result.failure? # => false
@@ -87,20 +88,20 @@ result.passed? # => true
87
88
  result.negate? # => true
88
89
  result.error? # => false
89
90
  result.success? # => true
90
- result.inspect # => "Expresenter::Pass(actual: \"FOO\", error: nil, expected: \"foo\", got: true, matcher: :eql, negate: true, level: :MUST)"
91
- result.definition # => "eql \"foo\""
92
- result.summary # => "expected \"FOO\" not to eql \"foo\""
91
+ result.inspect # => "Expresenter::Pass(actual: \"FOO\", definition: \"eq \\\"foo\\\"\", error: nil, expected: \"foo\", got: true, negate: true, level: :MUST)"
92
+ result.definition # => "eq \"foo\""
93
+ result.summary # => "expected \"FOO\" not to eq \"foo\""
93
94
  result.colored_char # => "\e[32m.\e[0m"
94
- result.colored_string # => "\e[32m\e[1mSuccess\e[22m: expected \"FOO\" not to eql \"foo\".\e[0m"
95
- result.message # => "Success: expected \"FOO\" not to eql \"foo\"."
96
- result.to_s # => "Success: expected \"FOO\" not to eql \"foo\"."
95
+ result.colored_string # => "\e[32m\e[1mSuccess\e[22m: expected \"FOO\" not to eq \"foo\".\e[0m"
96
+ result.message # => "Success: expected \"FOO\" not to eq \"foo\"."
97
+ result.to_s # => "Success: expected \"FOO\" not to eq \"foo\"."
97
98
  result.titre # => "Success"
98
99
  ```
99
100
 
100
101
  A failed expectation:
101
102
 
102
103
  ```ruby
103
- result = Expresenter.call(false).new(actual: "foo", error: Exception.new("BOOM"), expected: 42, got: true, negate: true, matcher: :eql, level: :MUST)
104
+ result = Expresenter.call(false).new(actual: "foo", definition: "eq 42", error: Exception.new("BOOM"), expected: 42, got: true, negate: true, level: :MUST)
104
105
 
105
106
  result.failed? # => true
106
107
  result.failure? # => false
@@ -113,8 +114,8 @@ result.passed? # => false
113
114
  result.negate? # => true
114
115
  result.error? # => true
115
116
  result.success? # => true
116
- result.inspect # => "Expresenter::Fail(actual: \"foo\", error: #<Exception: BOOM>, expected: 42, got: true, matcher: :eql, negate: true, level: :MUST)"
117
- result.definition # => "eql 42"
117
+ result.inspect # => "Expresenter::Fail(actual: \"foo\", definition: \"eq 42\", error: #<Exception: BOOM>, expected: 42, got: true, negate: true, level: :MUST)"
118
+ result.definition # => "eq 42"
118
119
  result.summary # => "BOOM"
119
120
  result.colored_char # => "\e[31mE\e[0m"
120
121
  result.colored_string # => "\e[31m\e[1mException\e[22m: BOOM.\e[0m"
@@ -130,19 +131,20 @@ To return the results which pass, and to raise the results which fail, the `with
130
131
  In this example, the result passes, the instance is therefore returned:
131
132
 
132
133
  ```ruby
133
- Expresenter.call(true).with(actual: "FOO", error: nil, expected: "foo", got: true, negate: true, matcher: :eql, level: :MUST) # => Expresenter::Pass(actual: "FOO", error: nil, expected: "foo", got: true, matcher: :eql, negate: true, level: :MUST)
134
+ Expresenter.call(true).with(actual: "FOO", definition: 'eq "foo"', error: nil, expected: "foo", got: true, negate: true, level: :MUST) # => Expresenter::Pass(actual: "FOO", definition: "eq \"foo\"", error: nil, expected: "foo", got: true, negate: true, level: :MUST)
134
135
  ```
135
136
 
136
137
  In this example, the result fails, so the exception is raised:
137
138
 
138
139
  ```ruby
139
- Expresenter.call(false).with(actual: "foo", error: Exception.new("BOOM"), expected: 42, got: true, negate: true, matcher: :eql, level: :MUST)
140
+ Expresenter.call(false).with(actual: "foo", definition: "eq 40", error: Exception.new("BOOM"), expected: 42, got: true, negate: true, level: :MUST)
140
141
  ```
141
142
 
142
143
  > Traceback (most recent call last):
143
- > 3: from ./bin/console:7:in `<main>'
144
- > 2: from (irb):1
145
- > 1: from /Users/cyril/github/fixrb/expresenter/lib/expresenter/fail.rb:19:in `with'
144
+ > 4: from ./bin/console:7:in `<main>'
145
+ > 3: from (irb):42
146
+ > 2: from (irb):43:in `rescue in irb_binding'
147
+ > 1: from /Users/cyril/github/fixrb/expresenter/lib/expresenter/fail.rb:25:in `with'
146
148
  > Expresenter::Fail (Exception: BOOM.)
147
149
 
148
150
  ### More Examples
@@ -161,7 +163,7 @@ __Expresenter__ follows [Semantic Versioning 2.0](https://semver.org/).
161
163
 
162
164
  ## License
163
165
 
164
- The [gem](https://rubygems.org/gems/expresenter) is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
166
+ The [gem](https://rubygems.org/gems/expresenter) is available as open source under the terms of the [MIT License](https://github.com/fixrb/expresenter/raw/main/LICENSE.md).
165
167
 
166
168
  ***
167
169
 
@@ -169,10 +171,5 @@ The [gem](https://rubygems.org/gems/expresenter) is available as open source und
169
171
  This project is sponsored by:<br />
170
172
  <a href="https://sashite.com/"><img
171
173
  src="https://github.com/fixrb/expresenter/raw/main/img/sashite.png"
172
- alt="Sashite" /></a>
174
+ alt="Sashité" /></a>
173
175
  </p>
174
-
175
- [gem]: https://rubygems.org/gems/expresenter
176
- [travis]: https://travis-ci.org/fixrb/expresenter
177
- [inchpages]: https://inch-ci.org/github/fixrb/expresenter
178
- [rubydoc]: https://rubydoc.info/gems/expresenter/frames
@@ -9,6 +9,9 @@ module Expresenter
9
9
  # @return [#object_id] Returned value by the challenged subject.
10
10
  attr_reader :actual
11
11
 
12
+ # @return [String] A readable string of the matcher and any expected values.
13
+ attr_reader :definition
14
+
12
15
  # @return [Exception, nil] Any possible raised exception.
13
16
  attr_reader :error
14
17
 
@@ -19,9 +22,6 @@ module Expresenter
19
22
  # actual value and the expected value through the matcher.
20
23
  attr_reader :got
21
24
 
22
- # @return [Symbol] The matcher.
23
- attr_reader :matcher
24
-
25
25
  # @return [:MUST, :SHOULD, :MAY] The requirement level of the expectation.
26
26
  attr_reader :level
27
27
 
@@ -57,20 +57,13 @@ module Expresenter
57
57
  #
58
58
  # @return [String] The human-readable representation of the result.
59
59
  def inspect
60
- "#{self.class}(actual: #{actual.inspect}, " \
61
- "error: #{error.inspect}, " \
62
- "expected: #{expected.inspect}, " \
63
- "got: #{got.inspect}, " \
64
- "matcher: #{matcher.inspect}, " \
65
- "negate: #{negate?.inspect}, " \
66
- "level: #{level.inspect}" \
67
- end
68
-
69
- # The readable definition.
70
- #
71
- # @return [String] A readable string of the definition.
72
- def definition
73
- [matcher.to_s.tr("_", " "), expected&.inspect].compact.join(SPACE)
60
+ "#{self.class}(actual: #{actual.inspect}, " \
61
+ "definition: #{definition.inspect}, " \
62
+ "error: #{error.inspect}, " \
63
+ "expected: #{expected.inspect}, " \
64
+ "got: #{got.inspect}, " \
65
+ "negate: #{negate?.inspect}, " \
66
+ "level: #{level.inspect})"
74
67
  end
75
68
 
76
69
  # The summary of the result.
@@ -27,22 +27,23 @@ module Expresenter
27
27
 
28
28
  # Initialize method.
29
29
  #
30
- # @param actual [#object_id] Returned value by the challenged subject.
31
- # @param error [Exception, nil] Any possible raised exception.
32
- # @param expected [#object_id] The expected value.
33
- # @param got [Boolean, nil] The result of the boolean comparison
30
+ # @param actual [#object_id] Returned value by the challenged subject.
31
+ # @param definition [String] A readable string of the matcher and any
32
+ # expected values.
33
+ # @param error [Exception, nil] Any possible raised exception.
34
+ # @param expected [#object_id] The expected value.
35
+ # @param got [Boolean, nil] The result of the boolean comparison
34
36
  # between the actual value and the expected value through the matcher.
35
- # @param negate [Boolean] Evaluated to a negative assertion?
36
- # @param matcher [Symbol] The matcher.
37
- # @param level [:MUST, :SHOULD, :MAY] The requirement level.
38
- def initialize(actual:, error:, expected:, got:, negate:, matcher:, level:)
39
- @actual = actual
40
- @error = error
41
- @expected = expected
42
- @got = got
43
- @negate = negate
44
- @matcher = matcher
45
- @level = level
37
+ # @param negate [Boolean] Evaluated to a negative assertion?
38
+ # @param level [:MUST, :SHOULD, :MAY] The requirement level.
39
+ def initialize(actual:, definition:, error:, expected:, got:, negate:, level:)
40
+ @actual = actual
41
+ @definition = definition
42
+ @error = error
43
+ @expected = expected
44
+ @got = got
45
+ @negate = negate
46
+ @level = level
46
47
 
47
48
  super(to_s)
48
49
  end
@@ -36,21 +36,22 @@ module Expresenter
36
36
  # Initialize method.
37
37
  #
38
38
  # @param actual [#object_id] Returned value by the challenged subject.
39
+ # @param definition [String] A readable string of the matcher and any
40
+ # expected values.
39
41
  # @param error [Exception, nil] Any possible raised exception.
40
42
  # @param expected [#object_id] The expected value.
41
43
  # @param got [Boolean, nil] The result of the boolean comparison
42
44
  # between the actual value and the expected value through the matcher.
43
45
  # @param negate [Boolean] Evaluated to a negative assertion?
44
- # @param matcher [Symbol] The matcher.
45
46
  # @param level [:MUST, :SHOULD, :MAY] The requirement level.
46
- def initialize(actual:, error:, expected:, got:, negate:, matcher:, level:)
47
- @actual = actual
48
- @error = error
49
- @expected = expected
50
- @got = got
51
- @negate = negate
52
- @matcher = matcher
53
- @level = level
47
+ def initialize(actual:, definition:, error:, expected:, got:, negate:, level:)
48
+ @actual = actual
49
+ @definition = definition
50
+ @error = error
51
+ @expected = expected
52
+ @got = got
53
+ @negate = negate
54
+ @level = level
54
55
  end
55
56
 
56
57
  # Did the test fail?
data/lib/expresenter.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Namespace for the Expresenter library.
4
4
  #
5
5
  # @example A passed expectation result presenter.
6
- # Expresenter.call(true).with(actual: "FOO", error: nil, expected: "foo", got: true, negate: true, matcher: :eql, level: :MUST) # => Expresenter::Pass(actual: "FOO", error: nil, expected: "foo", got: true, matcher: :eql, negate: true, level: :MUST)
6
+ # Expresenter.call(true).with(actual: "FOO", definition: 'eql "foo"', error: nil, expected: "foo", got: true, negate: true, level: :MUST) # => Expresenter::Pass(actual: "FOO", definition: "eql \"foo\"", error: nil, expected: "foo", got: true, negate: true, level: :MUST)
7
7
  module Expresenter
8
8
  # @param is_passed [Boolean] The value of an assertion.
9
9
  #
metadata CHANGED
@@ -1,141 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expresenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-19 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: brutal
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop-md
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop-performance
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rake
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-thread_safety
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: yard
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
11
+ date: 2024-01-25 00:00:00.000000000 Z
12
+ dependencies: []
139
13
  description: Expectation result presenter.
140
14
  email: contact@cyril.email
141
15
  executables: []
@@ -151,7 +25,8 @@ files:
151
25
  homepage: https://github.com/fixrb/expresenter
152
26
  licenses:
153
27
  - MIT
154
- metadata: {}
28
+ metadata:
29
+ rubygems_mfa_required: 'true'
155
30
  post_install_message:
156
31
  rdoc_options: []
157
32
  require_paths:
@@ -160,14 +35,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
35
  requirements:
161
36
  - - ">="
162
37
  - !ruby/object:Gem::Version
163
- version: 2.7.0
38
+ version: 3.2.0
164
39
  required_rubygems_version: !ruby/object:Gem::Requirement
165
40
  requirements:
166
41
  - - ">="
167
42
  - !ruby/object:Gem::Version
168
43
  version: '0'
169
44
  requirements: []
170
- rubygems_version: 3.1.6
45
+ rubygems_version: 3.4.19
171
46
  signing_key:
172
47
  specification_version: 4
173
48
  summary: Expectation result presenter.