r_spec-clone 1.7.0 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6014d4cd0ffe271d71ff599cdba7ce291b5329c062aeea611c292dcb9d24d822
4
- data.tar.gz: 96e14ce3c34c9d5d6e9a6c49769c94db2562e2a14eaeae94e6415884f2f5c7eb
3
+ metadata.gz: 7312f229f5e837553c3bf3b36cb833f8ce1b2182f669e66b4c89bd0f38cd40ed
4
+ data.tar.gz: c3fdc659bb67d21bf34e0d1e3e6c8bc7a0a277ffb7217c53e6762a2580863420
5
5
  SHA512:
6
- metadata.gz: c7bd806d2a1a220c86320a6a8fa93bf9b19f60ac2a0b4f03f510f727d6d0132995c0dde783659923c2031d7f0864b63f5137976c136d3c1c90a62ecd8996ef25
7
- data.tar.gz: 4eda5fc59e05cb4a2a20e18cc403a89985552737b551d2f343fedf3b9f98f6dd572ef977c0164926b5b0703a9b91b2901189bcad6823618558c908df6a869c4a
6
+ metadata.gz: f4ebb556448f5bbed16b44a8c2ff643991dd36abf65540349a1b8159ceb6b5c97b2f1081a63f23a47627ccb02f83be45e9155dd5d2199a037372ea1f0516ebcc
7
+ data.tar.gz: f9afb6e9aa7078f8e50ff715d5bc7eb5ac67b24e1038874dc453bd148f30a75581938fbec3a6cd3c8a809ac6b13cdd70ca91368f8208d02735a42a0ce353a8cf
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # The MIT License
2
2
 
3
- Copyright (c) 2015-2022 Cyril Kato
3
+ Copyright (c) 2015-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,4 +1,4 @@
1
- # RSpec clone
1
+ # RSpec clone <img src="https://github.com/cyril/r_spec-clone.rb/raw/main/img/logo.svg" style="height: 1em; width: 1em" />
2
2
 
3
3
  A minimalist __RSpec clone__ with all the essentials.
4
4
 
@@ -7,33 +7,35 @@ A minimalist __RSpec clone__ with all the essentials.
7
7
  ## Status
8
8
 
9
9
  [![Home](https://img.shields.io/badge/Home-r--spec.dev-00af8b)](https://r-spec.dev/)
10
- [![Version](https://img.shields.io/github/v/tag/cyril/r_spec-clone.rb?label=Version&logo=github)](https://github.com/cyril/r_spec-clone.rb/releases)
10
+ [![Version](https://img.shields.io/github/v/tag/cyril/r_spec-clone.rb?label=Version&logo=github)](https://github.com/cyril/r_spec-clone.rb/tags)
11
11
  [![Yard documentation](https://img.shields.io/badge/Yard-documentation-blue.svg?logo=github)](https://rubydoc.info/github/cyril/r_spec-clone.rb/main)
12
- [![CI](https://github.com/cyril/r_spec-clone.rb/workflows/CI/badge.svg?branch=main)](https://github.com/cyril/r_spec-clone.rb/actions?query=workflow%3Aci+branch%3Amain)
12
+ [![Ruby](https://github.com/cyril/r_spec-clone.rb/workflows/Ruby/badge.svg?branch=main)](https://github.com/cyril/r_spec-clone.rb/actions?query=workflow%3Aruby+branch%3Amain)
13
13
  [![RuboCop](https://github.com/cyril/r_spec-clone.rb/workflows/RuboCop/badge.svg?branch=main)](https://github.com/cyril/r_spec-clone.rb/actions?query=workflow%3Arubocop+branch%3Amain)
14
14
  [![License](https://img.shields.io/github/license/cyril/r_spec-clone.rb?label=License&logo=github)](https://github.com/cyril/r_spec-clone.rb/raw/main/LICENSE.md)
15
15
 
16
- ## Project goals
16
+ ## Project Goals
17
17
 
18
- 1. Keep code complexity low, avoid false negatives and false positives.
19
- 2. Load specifications in simple, atomic and thread safe Ruby primitives.
20
- 3. Avoid overloading the interface with additional alternative syntaxes.
21
- 4. Provide the basics of DSL RSpec to write tests.
18
+ 1. Maintain low code complexity to avoid false negatives and false positives.
19
+ 2. Implement the loading of specifications using simple, atomic, and thread-safe Ruby primitives.
20
+ 3. Avoid cluttering the interface with unnecessary alternative syntaxes.
21
+ 4. Provide the basics of the RSpec DSL for writing tests.
22
22
 
23
- ## Some differences
23
+ ## Some Differences
24
24
 
25
- * There is no option to enable monkey-patching.
26
- * It does not rely on [hacks such as `at_exit` hook](https://blog.arkency.com/2013/06/are-we-abusing-at-exit/) to trigger the tests.
27
- * Malicious _actual values_ cannot [hack results](https://asciinema.org/a/423547?autoplay=1&speed=2).
28
- * If no `subject` has been explicitly determined, none is defined.
29
- * If no described class is set, `described_class` is undefined instead of `nil`.
25
+ * Monkey-patching is not an available option.
26
+ * The framework does not use [hacks such as the `at_exit` hook](https://blog.arkency.com/2013/06/are-we-abusing-at-exit/) to trigger tests.
27
+ * Malicious _actual values_ cannot [compromise results](https://asciinema.org/a/423547?autoplay=1&speed=2).
28
+ * If no `subject` is explicitly determined, it remains undefined.
29
+ * If no described class is set, `described_class` is undefined rather than `nil`.
30
30
  * Expectations cannot be added inside a `before` block.
31
- * [Arbitrary helper methods](https://relishapp.com/rspec/rspec-core/v/3-10/docs/helper-methods/arbitrary-helper-methods) are not exposed to examples.
31
+ * [Arbitrary helper methods](https://relishapp.com/rspec/rspec-core/v/3-10/docs/helper-methods/arbitrary-helper-methods) are not accessible within examples.
32
32
  * The `let` method defines a helper method rather than a memoized helper method.
33
- * The one-liner `is_expected` syntax also works with block expectations.
34
- * `subject`, `before` and `let` definitions must come before examples.
35
- * The execution of the test suite stops as soon as an error is detected.
36
- * Each `context` block isolates its tests and possible side effects.
33
+ * The one-liner `is_expected` syntax is compatible with block expectations.
34
+ * Definitions of `subject`, `before`, and `let` must precede examples.
35
+ * The `after` hook is unsupported.
36
+ * The execution of the test suite halts immediately when an error is detected.
37
+ * Each `context` block isolates its tests and any potential side effects.
38
+ * The `its` method is available without the need for external dependencies.
37
39
 
38
40
  ## Installation
39
41
 
@@ -46,7 +48,7 @@ gem "r_spec-clone"
46
48
  And then execute:
47
49
 
48
50
  ```sh
49
- bundle
51
+ bundle install
50
52
  ```
51
53
 
52
54
  Or install it yourself as:
@@ -59,7 +61,7 @@ gem install r_spec-clone
59
61
 
60
62
  __RSpec clone__ provides a structure for writing executable examples of how your code should behave.
61
63
 
62
- Inspired by RSpec, it includes a domain specific language (DSL) that allows you to write examples in a way similar to plain english.
64
+ Inspired by RSpec, it includes a domain-specific language (DSL) that allows you to write examples in a way similar to plain english.
63
65
 
64
66
  A basic spec looks something like this:
65
67
 
@@ -67,10 +69,10 @@ A basic spec looks something like this:
67
69
 
68
70
  ## Usage
69
71
 
70
- ### Anatomy of a spec file
72
+ ### Anatomy of a Spec File
71
73
 
72
- To use the `RSpec` module and its DSL, you need to add `require "r_spec"` to your spec files.
73
- Many projects use a custom spec helper which organizes these includes.
74
+ To utilize the `RSpec` module and its DSL, include `require "r_spec"` in your spec files.
75
+ Many projects organize these includes through a custom spec helper.
74
76
 
75
77
  Concrete test cases are defined in `it` blocks.
76
78
  An optional (but recommended) descriptive string or module indicates the purpose of the test and a block contains the main logic of the test.
@@ -79,10 +79,10 @@ module RSpec
79
79
  # @return [Symbol] A private method that define the block content.
80
80
  #
81
81
  # @api public
82
- def self.let(name, *args, **kwargs, &block)
82
+ def self.let(name, ...)
83
83
  raise Error::ReservedMethod if BEFORE_METHOD.equal?(name.to_sym)
84
84
 
85
- private define_method(name, *args, **kwargs, &block)
85
+ private define_method(name, ...)
86
86
  end
87
87
 
88
88
  # Sets a user-defined property named {#subject}.
@@ -113,8 +113,8 @@ module RSpec
113
113
  # @return [Symbol] A {#subject} method that define the block content.
114
114
  #
115
115
  # @api public
116
- def self.subject(&block)
117
- let(__method__, &block)
116
+ def self.subject(&)
117
+ let(__method__, &)
118
118
  end
119
119
 
120
120
  # Defines an example group that describes a unit to be tested.
@@ -135,10 +135,10 @@ module RSpec
135
135
  # @param block [Proc] The block to define the specs.
136
136
  #
137
137
  # @api public
138
- def self.describe(const, &block)
138
+ def self.describe(const, &)
139
139
  desc = ::Class.new(self)
140
140
  desc.let(:described_class) { const } if const.is_a?(::Module)
141
- desc.instance_eval(&block)
141
+ desc.instance_eval(&)
142
142
  end
143
143
 
144
144
  # :nocov:
@@ -273,10 +273,10 @@ module RSpec
273
273
  # @return (see ExpectationTarget::Base#result)
274
274
  #
275
275
  # @api public
276
- def self.its(attribute, *args, **kwargs, &block)
276
+ def self.its(attribute, *, **, &block)
277
277
  Logger.source(*block.source_location)
278
- example_with_attribute(attribute, *args, **kwargs).new
279
- .instance_eval(&block)
278
+ example_with_attribute(attribute, *, **).new
279
+ .instance_eval(&block)
280
280
  end
281
281
 
282
282
  # :nocov:
@@ -15,7 +15,6 @@ module RSpec
15
15
  actual: new(message),
16
16
  definition: "raise exception #{self}",
17
17
  error: nil,
18
- expected: self,
19
18
  got: false,
20
19
  negate: true,
21
20
  level: :SHOULD
@@ -18,12 +18,12 @@ module RSpec
18
18
  #
19
19
  # @example
20
20
  # matcher = eq("foo")
21
- # matcher.matches? { "foo" } # => true
22
- # matcher.matches? { "bar" } # => false
21
+ # matcher.match? { "foo" } # => true
22
+ # matcher.match? { "bar" } # => false
23
23
  #
24
24
  # @param expected [#eql?] An expected equivalent object.
25
25
  #
26
- # @return [#matches?] An equivalence matcher.
26
+ # @return [#match?] An equivalence matcher.
27
27
  #
28
28
  # @api public
29
29
  def eq(expected)
@@ -37,12 +37,12 @@ module RSpec
37
37
  # @example
38
38
  # object = "foo"
39
39
  # matcher = be(object)
40
- # matcher.matches? { object } # => true
41
- # matcher.matches? { "foo" } # => false
40
+ # matcher.match? { object } # => true
41
+ # matcher.match? { "foo" } # => false
42
42
  #
43
43
  # @param expected [#equal?] The expected identical object.
44
44
  #
45
- # @return [#matches?] An identity matcher.
45
+ # @return [#match?] An identity matcher.
46
46
  #
47
47
  # @api public
48
48
  def be(expected)
@@ -55,12 +55,12 @@ module RSpec
55
55
  #
56
56
  # @example
57
57
  # matcher = be_within(1).of(41)
58
- # matcher.matches? { 42 } # => true
59
- # matcher.matches? { 43 } # => false
58
+ # matcher.match? { 42 } # => true
59
+ # matcher.match? { 43 } # => false
60
60
  #
61
61
  # @param delta [Numeric] A numeric value.
62
62
  #
63
- # @return [#matches?] A comparison matcher.
63
+ # @return [#match?] A comparison matcher.
64
64
  #
65
65
  # @api public
66
66
  def be_within(delta)
@@ -71,12 +71,12 @@ module RSpec
71
71
  #
72
72
  # @example
73
73
  # matcher = match(/^foo$/)
74
- # matcher.matches? { "foo" } # => true
75
- # matcher.matches? { "bar" } # => false
74
+ # matcher.match? { "foo" } # => true
75
+ # matcher.match? { "bar" } # => false
76
76
  #
77
77
  # @param expected [#match] A regular expression.
78
78
  #
79
- # @return [#matches?] A regular expression matcher.
79
+ # @return [#match?] A regular expression matcher.
80
80
  #
81
81
  # @api public
82
82
  def match(expected)
@@ -87,12 +87,12 @@ module RSpec
87
87
  #
88
88
  # @example
89
89
  # matcher = raise_exception(NameError)
90
- # matcher.matches? { RSpec::Clone::Boom! } # => true
91
- # matcher.matches? { true } # => false
90
+ # matcher.match? { RSpec::Clone::Boom! } # => true
91
+ # matcher.match? { true } # => false
92
92
  #
93
93
  # @param expected [Exception, #to_s] The expected exception name.
94
94
  #
95
- # @return [#matches?] An error matcher.
95
+ # @return [#match?] An error matcher.
96
96
  #
97
97
  # @api public
98
98
  def raise_exception(expected)
@@ -103,12 +103,12 @@ module RSpec
103
103
  #
104
104
  # @example
105
105
  # matcher = be_true
106
- # matcher.matches? { true } # => true
107
- # matcher.matches? { false } # => false
108
- # matcher.matches? { nil } # => false
109
- # matcher.matches? { 4 } # => false
106
+ # matcher.match? { true } # => true
107
+ # matcher.match? { false } # => false
108
+ # matcher.match? { nil } # => false
109
+ # matcher.match? { 4 } # => false
110
110
  #
111
- # @return [#matches?] A `true` matcher.
111
+ # @return [#match?] A `true` matcher.
112
112
  #
113
113
  # @api public
114
114
  def be_true
@@ -119,12 +119,12 @@ module RSpec
119
119
  #
120
120
  # @example
121
121
  # matcher = be_false
122
- # matcher.matches? { false } # => true
123
- # matcher.matches? { true } # => false
124
- # matcher.matches? { nil } # => false
125
- # matcher.matches? { 4 } # => false
122
+ # matcher.match? { false } # => true
123
+ # matcher.match? { true } # => false
124
+ # matcher.match? { nil } # => false
125
+ # matcher.match? { 4 } # => false
126
126
  #
127
- # @return [#matches?] A `false` matcher.
127
+ # @return [#match?] A `false` matcher.
128
128
  #
129
129
  # @api public
130
130
  def be_false
@@ -135,12 +135,12 @@ module RSpec
135
135
  #
136
136
  # @example
137
137
  # matcher = be_nil
138
- # matcher.matches? { nil } # => true
139
- # matcher.matches? { false } # => false
140
- # matcher.matches? { true } # => false
141
- # matcher.matches? { 4 } # => false
138
+ # matcher.match? { nil } # => true
139
+ # matcher.match? { false } # => false
140
+ # matcher.match? { true } # => false
141
+ # matcher.match? { 4 } # => false
142
142
  #
143
- # @return [#matches?] A `nil` matcher.
143
+ # @return [#match?] A `nil` matcher.
144
144
  #
145
145
  # @api public
146
146
  def be_nil
@@ -151,12 +151,12 @@ module RSpec
151
151
  #
152
152
  # @example
153
153
  # matcher = be_an_instance_of(String)
154
- # matcher.matches? { "foo" } # => true
155
- # matcher.matches? { 4 } # => false
154
+ # matcher.match? { "foo" } # => true
155
+ # matcher.match? { 4 } # => false
156
156
  #
157
157
  # @param expected [Class, #to_s] The expected class name.
158
158
  #
159
- # @return [#matches?] A type/class matcher.
159
+ # @return [#match?] A type/class matcher.
160
160
  #
161
161
  # @api public
162
162
  def be_an_instance_of(expected)
@@ -168,49 +168,49 @@ module RSpec
168
168
  # @example
169
169
  # object = []
170
170
  # matcher = change(object, :length).by(1)
171
- # matcher.matches? { object << 1 } # => true
171
+ # matcher.match? { object << 1 } # => true
172
172
  #
173
173
  # object = []
174
174
  # matcher = change(object, :length).by_at_least(1)
175
- # matcher.matches? { object << 1 } # => true
175
+ # matcher.match? { object << 1 } # => true
176
176
  #
177
177
  # object = []
178
178
  # matcher = change(object, :length).by_at_most(1)
179
- # matcher.matches? { object << 1 } # => true
179
+ # matcher.match? { object << 1 } # => true
180
180
  #
181
181
  # object = "foo"
182
182
  # matcher = change(object, :to_s).from("foo").to("FOO")
183
- # matcher.matches? { object.upcase! } # => true
183
+ # matcher.match? { object.upcase! } # => true
184
184
  #
185
185
  # object = "foo"
186
186
  # matcher = change(object, :to_s).to("FOO")
187
- # matcher.matches? { object.upcase! } # => true
187
+ # matcher.match? { object.upcase! } # => true
188
188
  #
189
189
  # @param object [#object_id] An object.
190
190
  # @param method [Symbol] The name of a method.
191
191
  # @param args [Array] A list of arguments.
192
192
  # @param kwargs [Hash] A list of keyword arguments.
193
193
  #
194
- # @return [#matches?] A change matcher.
194
+ # @return [#match?] A change matcher.
195
195
  #
196
196
  # @api public
197
- def change(object, method, *args, **kwargs, &block)
198
- ::Matchi::Change.new(object, method, *args, **kwargs, &block)
197
+ def change(object, method, ...)
198
+ ::Matchi::Change.new(object, method, ...)
199
199
  end
200
200
 
201
201
  # Satisfy matcher
202
202
  #
203
203
  # @example
204
204
  # matcher = satisfy { |value| value == 42 }
205
- # matcher.matches? { 42 } # => true
205
+ # matcher.match? { 42 } # => true
206
206
  #
207
207
  # @param expected [Proc] A block of code.
208
208
  #
209
- # @return [#matches?] A satisfy matcher.
209
+ # @return [#match?] A satisfy matcher.
210
210
  #
211
211
  # @api public
212
- def satisfy(&expected)
213
- ::Matchi::Satisfy.new(&expected)
212
+ def satisfy(&)
213
+ ::Matchi::Satisfy.new(&)
214
214
  end
215
215
 
216
216
  private
@@ -219,12 +219,12 @@ module RSpec
219
219
  #
220
220
  # @example Empty predicate matcher
221
221
  # matcher = be_empty
222
- # matcher.matches? { [] } # => true
223
- # matcher.matches? { [4] } # => false
224
- def method_missing(name, *args, **kwargs, &block)
222
+ # matcher.match? { [] } # => true
223
+ # matcher.match? { [4] } # => false
224
+ def method_missing(name, ...)
225
225
  return super unless predicate_matcher_name?(name)
226
226
 
227
- ::Matchi::Predicate.new(name, *args, **kwargs, &block)
227
+ ::Matchi::Predicate.new(name, ...)
228
228
  end
229
229
 
230
230
  # :nocov:
@@ -25,14 +25,14 @@ module RSpec
25
25
  # @example _Absolute requirement_ definition
26
26
  # expect { "foo".upcase }.to eq("foo")
27
27
  #
28
- # @param matcher [#matches?] The matcher.
28
+ # @param matcher [#match?] The matcher.
29
29
  #
30
30
  # @raise (see #result)
31
31
  # @return (see #result)
32
32
  #
33
33
  # @api public
34
34
  def to(matcher)
35
- absolute_requirement(matcher: matcher, negate: false)
35
+ absolute_requirement(matcher:, negate: false)
36
36
  end
37
37
 
38
38
  # Runs the given expectation, passing if `matcher` returns false.
@@ -47,13 +47,13 @@ module RSpec
47
47
  #
48
48
  # @api public
49
49
  def not_to(matcher)
50
- absolute_requirement(matcher: matcher, negate: true)
50
+ absolute_requirement(matcher:, negate: true)
51
51
  end
52
52
 
53
53
  protected
54
54
 
55
55
  # @param test [::TestTube::Base] The state of the experiment.
56
- # @param matcher [#matches?] The matcher.
56
+ # @param matcher [#match?] The matcher.
57
57
  # @param negate [Boolean] The assertion is positive or negative.
58
58
  #
59
59
  # @return [nil] Write a message to STDOUT.
@@ -66,8 +66,8 @@ module RSpec
66
66
  actual: test.actual,
67
67
  error: test.error,
68
68
  got: test.got,
69
- matcher: matcher,
70
- negate: negate
69
+ matcher:,
70
+ negate:
71
71
  )
72
72
  end
73
73
 
@@ -88,7 +88,7 @@ module RSpec
88
88
  # @param actual [#object_id] The actual value.
89
89
  # @param error [Exception, nil] Any raised exception.
90
90
  # @param got [Boolean, nil] Any returned value.
91
- # @param matcher [#matches?] The matcher.
91
+ # @param matcher [#match?] The matcher.
92
92
  # @param negate [Boolean] The assertion is positive or negative.
93
93
  #
94
94
  # @return [nil] Write a message to STDOUT.
@@ -97,12 +97,11 @@ module RSpec
97
97
  # `Kernel.exit(false)` with a failure message written to STDERR.
98
98
  def result(passed, actual:, error:, got:, matcher:, negate:)
99
99
  Logger.passed_spec ::Expresenter.call(passed).with(
100
- actual: actual,
100
+ actual:,
101
101
  definition: matcher.to_s,
102
- error: error,
103
- expected: matcher.expected,
104
- got: got,
105
- negate: negate,
102
+ error:,
103
+ got:,
104
+ negate:,
106
105
  level: :MUST
107
106
  )
108
107
  rescue ::Expresenter::Fail => e
@@ -21,7 +21,7 @@ module RSpec
21
21
  class Block < Base
22
22
  protected
23
23
 
24
- # @param matcher [#matches?] The matcher.
24
+ # @param matcher [#match?] The matcher.
25
25
  # @param negate [Boolean] The assertion is positive or negative.
26
26
  #
27
27
  # @return (see Base#absolute_requirement)
@@ -29,9 +29,9 @@ module RSpec
29
29
  # @raise (see Base#absolute_requirement)
30
30
  def absolute_requirement(matcher:, negate:)
31
31
  super(
32
- ::TestTube.invoke(isolate: false, matcher: matcher, negate: negate, &@input),
33
- matcher: matcher,
34
- negate: negate
32
+ ::TestTube.invoke(matcher:, negate:, &@input),
33
+ matcher:,
34
+ negate:
35
35
  )
36
36
  end
37
37
  end
@@ -21,7 +21,7 @@ module RSpec
21
21
  class Value < Base
22
22
  protected
23
23
 
24
- # @param matcher [#matches?] The matcher.
24
+ # @param matcher [#match?] The matcher.
25
25
  # @param negate [Boolean] The assertion is positive or negative.
26
26
  #
27
27
  # @return (see Base#absolute_requirement)
@@ -29,9 +29,9 @@ module RSpec
29
29
  # @raise (see Base#absolute_requirement)
30
30
  def absolute_requirement(matcher:, negate:)
31
31
  super(
32
- ::TestTube.pass(@input, matcher: matcher, negate: negate),
33
- matcher: matcher,
34
- negate: negate
32
+ ::TestTube.pass(@input, matcher:, negate:),
33
+ matcher:,
34
+ negate:
35
35
  )
36
36
  end
37
37
  end
data/lib/r_spec.rb CHANGED
@@ -83,8 +83,8 @@ module RSpec
83
83
  # @param description [String] A description that usually begins with "when",
84
84
  # "with" or "without".
85
85
  # @param block [Proc] The block to define the specs.
86
- def self.context(description, &block)
87
- Clone::Dsl.context(description, &block)
86
+ def self.context(description, &)
87
+ Clone::Dsl.context(description, &)
88
88
  end
89
89
 
90
90
  # :nocov:
@@ -117,8 +117,8 @@ module RSpec
117
117
  #
118
118
  # @param const [Module, String] A module to include in block context.
119
119
  # @param block [Proc] The block to define the specs.
120
- def self.describe(const, &block)
121
- Clone::Dsl.describe(const, &block)
120
+ def self.describe(const, &)
121
+ Clone::Dsl.describe(const, &)
122
122
  end
123
123
 
124
124
  # :nocov:
@@ -143,8 +143,8 @@ module RSpec
143
143
  #
144
144
  # @raise (see RSpec::Clone::ExpectationTarget::Base#result)
145
145
  # @return (see RSpec::Clone::ExpectationTarget::Base#result)
146
- def self.it(name = nil, &block)
147
- Clone::Dsl.it(name, &block)
146
+ def self.it(name = nil, &)
147
+ Clone::Dsl.it(name, &)
148
148
  end
149
149
 
150
150
  # :nocov:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_spec-clone
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-05 00:00:00.000000000 Z
11
+ date: 2024-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: expresenter
@@ -16,168 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.4.0
19
+ version: 1.5.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.4.0
26
+ version: 1.5.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: matchi
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.3.1
33
+ version: 4.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.3.1
40
+ version: 4.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: test_tube
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.1.3
47
+ version: 4.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.1.3
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
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: rake
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-md
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-performance
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: rubocop-rake
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: rubocop-rspec
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'
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop-thread_safety
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: simplecov
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: yard
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
54
+ version: 4.0.0
181
55
  description: A minimalist RSpec clone with all the essentials.
182
56
  email: contact@cyril.email
183
57
  executables: []
@@ -212,7 +86,7 @@ metadata:
212
86
  source_code_uri: https://github.com/cyril/r_spec-clone.rb
213
87
  wiki_uri: https://github.com/cyril/r_spec-clone.rb/wiki
214
88
  rubygems_mfa_required: 'true'
215
- post_install_message:
89
+ post_install_message:
216
90
  rdoc_options: []
217
91
  require_paths:
218
92
  - lib
@@ -220,15 +94,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
94
  requirements:
221
95
  - - ">="
222
96
  - !ruby/object:Gem::Version
223
- version: 3.0.4
97
+ version: 3.2.4
224
98
  required_rubygems_version: !ruby/object:Gem::Requirement
225
99
  requirements:
226
100
  - - ">="
227
101
  - !ruby/object:Gem::Version
228
102
  version: '0'
229
103
  requirements: []
230
- rubygems_version: 3.2.33
231
- signing_key:
104
+ rubygems_version: 3.4.19
105
+ signing_key:
232
106
  specification_version: 4
233
107
  summary: A minimalist RSpec clone
234
108
  test_files: []