r_spec 0.3.2 → 1.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSpec
4
+ # Namespace for `it` and `its` helper modules.
5
+ module ExpectationHelper
6
+ end
7
+ end
8
+
9
+ require_relative File.join("expectation_helper", "it")
10
+ require_relative File.join("expectation_helper", "its")
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "matchi/rspec"
4
+
5
+ require_relative File.join("..", "pending")
6
+
7
+ module RSpec
8
+ module ExpectationHelper
9
+ # Abstract expectation helper base module.
10
+ #
11
+ # This module defines a number of methods to create expectations, which are
12
+ # automatically included into example namespaces.
13
+ #
14
+ # It also includes a collection of expectation matchers 🤹
15
+ #
16
+ # @example Equivalence matcher
17
+ # matcher = eql("foo") # => Matchi::Matcher::Eql.new("foo")
18
+ # matcher.matches? { "foo" } # => true
19
+ # matcher.matches? { "bar" } # => false
20
+ #
21
+ # matcher = eq("foo") # => Matchi::Matcher::Eq.new("foo")
22
+ # matcher.matches? { "foo" } # => true
23
+ # matcher.matches? { "bar" } # => false
24
+ #
25
+ # @example Identity matcher
26
+ # object = "foo"
27
+ #
28
+ # matcher = equal(object) # => Matchi::Matcher::Equal.new(object)
29
+ # matcher.matches? { object } # => true
30
+ # matcher.matches? { "foo" } # => false
31
+ #
32
+ # matcher = be(object) # => Matchi::Matcher::Be.new(object)
33
+ # matcher.matches? { object } # => true
34
+ # matcher.matches? { "foo" } # => false
35
+ #
36
+ # @example Regular expressions matcher
37
+ # matcher = match(/^foo$/) # => Matchi::Matcher::Match.new(/^foo$/)
38
+ # matcher.matches? { "foo" } # => true
39
+ # matcher.matches? { "bar" } # => false
40
+ #
41
+ # @example Expecting errors matcher
42
+ # matcher = raise_exception(NameError) # => Matchi::Matcher::RaiseException.new(NameError)
43
+ # matcher.matches? { Boom } # => true
44
+ # matcher.matches? { true } # => false
45
+ #
46
+ # @example Truth matcher
47
+ # matcher = be_true # => Matchi::Matcher::BeTrue.new
48
+ # matcher.matches? { true } # => true
49
+ # matcher.matches? { false } # => false
50
+ # matcher.matches? { nil } # => false
51
+ # matcher.matches? { 4 } # => false
52
+ #
53
+ # @example Untruth matcher
54
+ # matcher = be_false # => Matchi::Matcher::BeFalse.new
55
+ # matcher.matches? { false } # => true
56
+ # matcher.matches? { true } # => false
57
+ # matcher.matches? { nil } # => false
58
+ # matcher.matches? { 4 } # => false
59
+ #
60
+ # @example Nil matcher
61
+ # matcher = be_nil # => Matchi::Matcher::BeNil.new
62
+ # matcher.matches? { nil } # => true
63
+ # matcher.matches? { false } # => false
64
+ # matcher.matches? { true } # => false
65
+ # matcher.matches? { 4 } # => false
66
+ #
67
+ # @example Type/class matcher
68
+ # matcher = be_instance_of(String) # => Matchi::Matcher::BeInstanceOf.new(String)
69
+ # matcher.matches? { "foo" } # => true
70
+ # matcher.matches? { 4 } # => false
71
+ #
72
+ # matcher = be_an_instance_of(String) # => Matchi::Matcher::BeAnInstanceOf.new(String)
73
+ # matcher.matches? { "foo" } # => true
74
+ # matcher.matches? { 4 } # => false
75
+ #
76
+ # @see https://github.com/fixrb/matchi
77
+ # @see https://github.com/fixrb/matchi-rspec
78
+ module Base
79
+ include ::Matchi::Helper
80
+
81
+ # Mark a spec as pending, expectation results will be ignored.
82
+ #
83
+ # @param description [String] The reason why the example is pending.
84
+ #
85
+ # @return [nil] Write a message to STDOUT.
86
+ #
87
+ # @example Output a message to the console and return nil
88
+ # pending("something else getting finished") # => nil
89
+ #
90
+ # @api public
91
+ def pending(description)
92
+ Pending.result(description)
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "base"
4
+ require_relative File.join("..", "expectation_target")
5
+
6
+ module RSpec
7
+ module ExpectationHelper
8
+ # `it` expectation helper module.
9
+ module It
10
+ include Base
11
+
12
+ # Create an expectation for a spec.
13
+ #
14
+ # @param value [#object_id, nil] An actual value.
15
+ # @param block [#call, nil] A code to evaluate.
16
+ #
17
+ # @return [Block, Value] The wrapped target of an expectation.
18
+ #
19
+ # @example
20
+ # expect("foo") # => #<RSpec::ExpectationTarget::Value:0x00007fb6b82311a0 @actual="foo">
21
+ # expect { Boom } # => #<RSpec::ExpectationTarget::Block:0x00007fb6b8263df8 @callable=#<Proc:0x00007fb6b8263e20>>
22
+ #
23
+ # @api public
24
+ def expect(value = self.class.superclass, &block)
25
+ ExpectationTarget.call(self.class.superclass, value, block)
26
+ end
27
+
28
+ # Wraps the target of an expectation with the subject as actual value.
29
+ #
30
+ # @return (see #expect)
31
+ #
32
+ # @example
33
+ # is_expected # => #<RSpec::ExpectationTarget::Block:0x00007fb6b8263df8 @callable=#<Proc:0x00007fb6b8263e20>>
34
+ #
35
+ # @api public
36
+ def is_expected
37
+ expect { subject }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "base"
4
+ require_relative File.join("..", "expectation_target", "block")
5
+
6
+ module RSpec
7
+ module ExpectationHelper
8
+ # `its` expectation helper module.
9
+ module Its
10
+ include Base
11
+
12
+ # Wraps the target of an expectation with the actual value.
13
+ #
14
+ # @return [Block] The wrapped target of an expectation.
15
+ #
16
+ # @example
17
+ # is_expected # => #<RSpec::ExpectationTarget::Block:0x00007fb6b8263df8 @callable=#<Proc:0x00007fb6b8263e20>>
18
+ #
19
+ # @api public
20
+ def is_expected
21
+ ExpectationTarget::Block.new(method(:actual))
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSpec
4
+ # Wraps the target of an expectation.
5
+ #
6
+ # @api private
7
+ module ExpectationTarget
8
+ # @param undefined_value A sentinel value to be able to tell when the user
9
+ # did not pass an argument. We can't use `nil` for that because `nil` is a
10
+ # valid value to pass.
11
+ # @param value [#object_id, nil] An actual value.
12
+ # @param block [#call, nil] A code to evaluate.
13
+ #
14
+ # @return [Block, Value] The wrapped target of an expectation.
15
+ def self.call(undefined_value, value, block)
16
+ if undefined_value.equal?(value)
17
+ raise ::ArgumentError, "Pass either an argument or a block" unless block
18
+
19
+ Block.new(block)
20
+ else
21
+ raise ::ArgumentError, "Can't pass both an argument and a block" if block
22
+
23
+ Value.new(value)
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ require_relative File.join("expectation_target", "block")
30
+ require_relative File.join("expectation_target", "value")
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "expresenter"
4
+
5
+ module RSpec
6
+ module ExpectationTarget
7
+ # Abstract expectation target base class.
8
+ #
9
+ # @note `RSpec::ExpectationTarget::Base` is not intended to be instantiated
10
+ # directly by users. Use `expect` instead.
11
+ class Base
12
+ # Runs the given expectation, passing if `matcher` returns true.
13
+ #
14
+ # @example _Absolute requirement_ definition
15
+ # expect { "foo".upcase }.to eq("foo")
16
+ #
17
+ # @param matcher [#matches?] The matcher.
18
+ #
19
+ # @raise (see #result)
20
+ # @return (see #result)
21
+ #
22
+ # @api public
23
+ def to(matcher)
24
+ absolute_requirement(matcher: matcher, negate: false)
25
+ end
26
+
27
+ # Runs the given expectation, passing if `matcher` returns false.
28
+ #
29
+ # @example _Absolute prohibition_ definition
30
+ # expect { "foo".size }.not_to be(4)
31
+ #
32
+ # @param (see #to)
33
+ #
34
+ # @raise (see #result)
35
+ # @return (see #result)
36
+ #
37
+ # @api public
38
+ def not_to(matcher)
39
+ absolute_requirement(matcher: matcher, negate: true)
40
+ end
41
+
42
+ protected
43
+
44
+ # @param actual [#object_id] The actual value.
45
+ # @param error [Exception, nil] Any raised exception.
46
+ # @param got [Boolean, nil] Any returned value.
47
+ # @param matcher [#matches?] The matcher.
48
+ # @param negate [Boolean] The assertion is positive or negative.
49
+ # @param valid [Boolean] The result of an expectation.
50
+ #
51
+ # @return [nil] Write a message to STDOUT.
52
+ #
53
+ # @raise [SystemExit] Terminate execution immediately by calling
54
+ # `Kernel.exit(false)` with a failure message written to STDERR.
55
+ #
56
+ # @api private
57
+ def result(actual:, error:, got:, matcher:, negate:, valid:)
58
+ puts " " + ::Expresenter.call(valid).with(
59
+ actual: actual,
60
+ error: error,
61
+ expected: matcher.expected,
62
+ got: got,
63
+ negate: negate,
64
+ valid: valid,
65
+ matcher: matcher.class.to_sym,
66
+ level: :MUST
67
+ ).colored_string
68
+ rescue ::Expresenter::Fail => e
69
+ abort " #{e.colored_string}"
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spectus/exam"
4
+
5
+ require_relative "base"
6
+
7
+ module RSpec
8
+ module ExpectationTarget
9
+ # Wraps the target of an expectation with a block.
10
+ #
11
+ # @example
12
+ # expect { something } # => ExpectationTarget::Block wrapping something
13
+ #
14
+ # # used with `to`
15
+ # expect { actual }.to be(42)
16
+ #
17
+ # # with `not_to`
18
+ # expect { actual }.not_to be(4)
19
+ #
20
+ # @note `RSpec::ExpectationTarget::Block` is not intended to be instantiated
21
+ # directly by users. Use `expect` instead.
22
+ class Block < Base
23
+ # Instantiate a new expectation target.
24
+ #
25
+ # @param block [#call] The code to evaluate.
26
+ def initialize(block)
27
+ super()
28
+
29
+ @callable = block
30
+ end
31
+
32
+ protected
33
+
34
+ # @param matcher [#matches?] The matcher.
35
+ # @param negate [Boolean] The assertion is positive or negative.
36
+ #
37
+ # @return [nil] Write a message to STDOUT.
38
+ #
39
+ # @raise [SystemExit] Terminate execution immediately by calling
40
+ # `Kernel.exit(false)` with a failure message written to STDERR.
41
+ def absolute_requirement(matcher:, negate:)
42
+ exam = ::Spectus::Exam.new(
43
+ callable: @callable,
44
+ isolation: false,
45
+ negate: negate,
46
+ matcher: matcher
47
+ )
48
+
49
+ result(
50
+ actual: exam.actual,
51
+ error: exam.exception,
52
+ got: exam.got,
53
+ matcher: matcher,
54
+ negate: negate,
55
+ valid: exam.valid?
56
+ )
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "base"
4
+
5
+ module RSpec
6
+ module ExpectationTarget
7
+ # Wraps the target of an expectation with a value.
8
+ #
9
+ # @example
10
+ # expect(something) # => ExpectationTarget::Value wrapping something
11
+ #
12
+ # # used with `to`
13
+ # expect(actual).to be(42)
14
+ #
15
+ # # with `not_to`
16
+ # expect(actual).not_to be(4)
17
+ #
18
+ # @note `RSpec::ExpectationTarget::Value` is not intended to be instantiated
19
+ # directly by users. Use `expect` instead.
20
+ class Value < Base
21
+ # Instantiate a new expectation target.
22
+ #
23
+ # @param actual [#object_id] The actual value.
24
+ def initialize(actual)
25
+ super()
26
+
27
+ @actual = actual
28
+ end
29
+
30
+ protected
31
+
32
+ # @param matcher [#matches?] The matcher.
33
+ # @param negate [Boolean] The assertion is positive or negative.
34
+ #
35
+ # @return [nil] Write a message to STDOUT.
36
+ #
37
+ # @raise [SystemExit] Terminate execution immediately by calling
38
+ # `Kernel.exit(false)` with a failure message written to STDERR.
39
+ def absolute_requirement(matcher:, negate:)
40
+ valid = negate ^ matcher.matches? { @actual }
41
+
42
+ result(
43
+ actual: @actual,
44
+ error: nil,
45
+ got: valid,
46
+ matcher: matcher,
47
+ negate: negate,
48
+ valid: valid
49
+ )
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "expresenter"
4
+
5
+ module RSpec
6
+ # Exception for pending expectations.
7
+ #
8
+ # @api private
9
+ class Pending < ::NotImplementedError
10
+ # @param message [String] The not implemented expectation description.
11
+ #
12
+ # @return [nil] Write a pending expectation to STDOUT.
13
+ def self.result(message)
14
+ warn " " + ::Expresenter.call(true).with(
15
+ actual: new(message),
16
+ error: nil,
17
+ expected: self,
18
+ got: false,
19
+ matcher: :raise_exception,
20
+ negate: true,
21
+ level: :SHOULD,
22
+ valid: false
23
+ ).colored_string
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSpec
4
+ # Namespace to collect test classes.
5
+ #
6
+ # @api private
7
+ module Sandbox
8
+ end
9
+ end
metadata CHANGED
@@ -1,175 +1,211 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 1.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Kato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-12 00:00:00.000000000 Z
11
+ date: 2021-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: fix-expect
14
+ name: expresenter
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.5
19
+ version: 1.2.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: 0.3.5
26
+ version: 1.2.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: fix-its
28
+ name: matchi-rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.4
33
+ version: 1.1.1
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: 0.5.4
40
+ version: 1.1.1
41
41
  - !ruby/object:Gem::Dependency
42
- name: matchi-rspec
42
+ name: spectus
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.3
47
+ version: 3.3.2
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: 0.1.3
54
+ version: 3.3.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '12.3'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '12.3'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop
84
+ name: rubocop-md
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0.67'
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0.67'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: simplecov
98
+ name: rubocop-performance
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0.16'
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0.16'
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: spectus
112
+ name: rubocop-rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '3.0'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
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
+ - - ">="
123
151
  - !ruby/object:Gem::Version
124
- version: '3.0'
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'
125
167
  - !ruby/object:Gem::Dependency
126
168
  name: yard
127
169
  requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
- - - "~>"
171
+ - - ">="
130
172
  - !ruby/object:Gem::Version
131
- version: '0.9'
173
+ version: '0'
132
174
  type: :development
133
175
  prerelease: false
134
176
  version_requirements: !ruby/object:Gem::Requirement
135
177
  requirements:
136
- - - "~>"
178
+ - - ">="
137
179
  - !ruby/object:Gem::Version
138
- version: '0.9'
139
- description: A small Rspec clone based on Fix specing framework.
140
- email:
141
- - contact@cyril.email
180
+ version: '0'
181
+ description: A minimalist RSpec clone with all the essentials.
182
+ email: contact@cyril.email
142
183
  executables: []
143
184
  extensions: []
144
185
  extra_rdoc_files: []
145
186
  files:
146
- - ".gitignore"
147
- - ".rubocop.yml"
148
- - ".rubocop_todo.yml"
149
- - ".travis.yml"
150
- - ".yardopts"
151
- - CODE_OF_CONDUCT.md
152
- - Gemfile
153
187
  - LICENSE.md
154
188
  - README.md
155
- - Rakefile
156
- - VERSION.semver
157
- - bin/console
158
- - bin/setup
159
- - checksum/r_spec-0.1.0.gem.sha512
160
- - checksum/r_spec-0.1.1.gem.sha512
161
- - checksum/r_spec-0.2.0.gem.sha512
162
- - checksum/r_spec-0.3.0.gem.sha512
163
- - checksum/r_spec-0.3.1.gem.sha512
164
- - lib/fix/it.rb
165
- - lib/fix/on.rb
166
189
  - lib/r_spec.rb
167
- - pkg_checksum
168
- - r_spec.gemspec
169
- homepage: https://github.com/cyril/r_spec
190
+ - lib/r_spec/dsl.rb
191
+ - lib/r_spec/expectation_helper.rb
192
+ - lib/r_spec/expectation_helper/base.rb
193
+ - lib/r_spec/expectation_helper/it.rb
194
+ - lib/r_spec/expectation_helper/its.rb
195
+ - lib/r_spec/expectation_target.rb
196
+ - lib/r_spec/expectation_target/base.rb
197
+ - lib/r_spec/expectation_target/block.rb
198
+ - lib/r_spec/expectation_target/value.rb
199
+ - lib/r_spec/pending.rb
200
+ - lib/r_spec/sandbox.rb
201
+ homepage: https://r-spec.dev/
170
202
  licenses:
171
203
  - MIT
172
- metadata: {}
204
+ metadata:
205
+ bug_tracker_uri: https://github.com/cyril/r_spec.rb/issues
206
+ documentation_uri: https://rubydoc.info/gems/r_spec
207
+ source_code_uri: https://github.com/cyril/r_spec.rb
208
+ wiki_uri: https://github.com/cyril/r_spec.rb/wiki
173
209
  post_install_message:
174
210
  rdoc_options: []
175
211
  require_paths:
@@ -178,15 +214,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
178
214
  requirements:
179
215
  - - ">="
180
216
  - !ruby/object:Gem::Version
181
- version: '0'
217
+ version: 2.7.0
182
218
  required_rubygems_version: !ruby/object:Gem::Requirement
183
219
  requirements:
184
- - - ">="
220
+ - - ">"
185
221
  - !ruby/object:Gem::Version
186
- version: '0'
222
+ version: 1.3.1
187
223
  requirements: []
188
- rubygems_version: 3.0.3
224
+ rubygems_version: 3.1.6
189
225
  signing_key:
190
226
  specification_version: 4
191
- summary: Rspec clone with Fix.
227
+ summary: A minimalist RSpec clone
192
228
  test_files: []