fix 1.0.0.beta8 → 1.0.0.beta9

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: 9d095777befeb78f0e16a218f3f14c0f8b39955265db3848cd26a0afb0b224f3
4
- data.tar.gz: d918e8bfd693765450dfb14477f4fe9285642e22a35995446b89acac78662837
3
+ metadata.gz: 0d266f76f9d9f0ee694cade79ee90b02d1a662709bb31c548da80be1ab42d689
4
+ data.tar.gz: e38fa445573fe8b23df2cea139c4d2879a49652afdb6543aebd05525a5ca0da9
5
5
  SHA512:
6
- metadata.gz: c063f295f4d133635d70da15659c613018b51931db21d40c3bedb7db9b442fa756e8ed52833fc49333a816749df99c73956d43c237159f7bd6e728ea36e7791d
7
- data.tar.gz: 1e4317121e610e67d0d396571b86e0a82b07c16122cc0be5c2c7ee5514136d9ec349282b643f06fe6d7f7b33cd04584048cf72ec3d8d88345e93f1135e7d5dee
6
+ metadata.gz: 2496a36150fc8640b16ab0942592dfcb47cf0cc0db0abb9d6c716387e73a8a16f329459be64d74c00a7604ec9081191d0580de45cbe62f585fdc9aff744d2b4f
7
+ data.tar.gz: 0b09e865870d08db2b9147fd9977aa7b0df27d44a63e3138c8e699258cc49dfcee3f81000f4491a896275b79d54c45b1e3b1f3e9fe881cc9152fa7e48a1f0f61
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
- The MIT License (MIT)
1
+ # The MIT License
2
2
 
3
- Copyright (c) 2014-2021 Cyril Kato
3
+ Copyright (c) 2014-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,38 +1,36 @@
1
1
  # Fix
2
2
 
3
3
  [![Home](https://img.shields.io/badge/Home-fixrb.dev-00af8b)](https://fixrb.dev/)
4
- [![Version](https://img.shields.io/github/v/tag/fixrb/fix?label=Version&logo=github)](https://github.com/fixrb/fix/releases)
4
+ [![Version](https://img.shields.io/github/v/tag/fixrb/fix?label=Version&logo=github)](https://github.com/fixrb/fix/tags)
5
5
  [![Yard documentation](https://img.shields.io/badge/Yard-documentation-blue.svg?logo=github)](https://rubydoc.info/github/fixrb/fix/main)
6
- [![CI](https://github.com/fixrb/fix/workflows/CI/badge.svg?branch=main)](https://github.com/fixrb/fix/actions?query=workflow%3Aci+branch%3Amain)
6
+ [![Ruby](https://github.com/fixrb/fix/workflows/Ruby/badge.svg?branch=main)](https://github.com/fixrb/fix/actions?query=workflow%3Aruby+branch%3Amain)
7
7
  [![RuboCop](https://github.com/fixrb/fix/workflows/RuboCop/badge.svg?branch=main)](https://github.com/fixrb/fix/actions?query=workflow%3Arubocop+branch%3Amain)
8
8
  [![License](https://img.shields.io/github/license/fixrb/fix?label=License&logo=github)](https://github.com/fixrb/fix/raw/main/LICENSE.md)
9
9
 
10
- ⚠️ This project is still in the experimental phase. May be used at your own risk.
10
+ ![Fix specing framework for Ruby](https://fixrb.dev/fix.webp "Fix")
11
11
 
12
- ![Fix specing framework for Ruby](https://fixrb.dev/fix.webp)
12
+ ## Project Goals
13
13
 
14
- ## Project goals
15
-
16
- * Extract specs from the tests.
17
- * Look like English documents.
18
- * Be minimalist and easy to use.
19
- * Run tests quickly.
14
+ - **Distinguish Specifications from Examples**: Clear separation between what is expected (specifications) and how it's demonstrated (examples).
15
+ - **Logic-Free Specification Documents**: Create specifications that are straightforward and free of complex logic, focusing purely on defining expected behaviors.
16
+ - **Nuanced Semantic Language in Specifications**: Utilize a rich, nuanced semantic language, similar to that in RFC 2119, employing keywords like MUST, SHOULD, and MAY to define different levels of requirement in specifications.
17
+ - **Fast and Individual Test Execution**: Enable quick execution of tests on an individual basis, providing immediate feedback on compliance with specifications.
20
18
 
21
19
  ## Installation
22
20
 
23
- Add this line to your application's Gemfile:
21
+ Add to your Gemfile:
24
22
 
25
23
  ```ruby
26
- gem "fix", ">= 1.0.0.beta8"
24
+ gem "fix", ">= 1.0.0.beta9"
27
25
  ```
28
26
 
29
- And then execute:
27
+ Then execute:
30
28
 
31
29
  ```sh
32
- bundle
30
+ bundle install
33
31
  ```
34
32
 
35
- Or install it yourself as:
33
+ Or install it yourself:
36
34
 
37
35
  ```sh
38
36
  gem install fix --pre
@@ -40,7 +38,7 @@ gem install fix --pre
40
38
 
41
39
  ## Example
42
40
 
43
- Given these specifications:
41
+ Specifications for a `Duck` class:
44
42
 
45
43
  ```ruby
46
44
  # examples/duck/fix.rb
@@ -65,10 +63,11 @@ Fix :Duck do
65
63
  end
66
64
  ```
67
65
 
68
- When we load this `Duck` application:
66
+ Implementing the `Duck` class:
69
67
 
70
68
  ```ruby
71
69
  # examples/duck/app.rb
70
+
72
71
  class Duck
73
72
  def walks
74
73
  "Klop klop!"
@@ -84,7 +83,7 @@ class Duck
84
83
  end
85
84
  ```
86
85
 
87
- And we run this test:
86
+ Running the test:
88
87
 
89
88
  ```ruby
90
89
  # examples/duck/test.rb
@@ -92,14 +91,16 @@ And we run this test:
92
91
  require_relative "app"
93
92
  require_relative "fix"
94
93
 
95
- Fix[:Duck].against { Duck.new }
94
+ Fix[:Duck].test { Duck.new }
96
95
  ```
97
96
 
97
+ Execute:
98
+
98
99
  ```sh
99
100
  ruby examples/duck/test.rb
100
101
  ```
101
102
 
102
- We should see this output:
103
+ Expected output:
103
104
 
104
105
  ```txt
105
106
  (irb):3 Success: expected #<Duck:0x00007fb2fa208708> to be an instance of Duck.
@@ -111,10 +112,10 @@ We should see this output:
111
112
 
112
113
  ## Contact
113
114
 
114
- * Home page: [https://fixrb.dev/](https://fixrb.dev/)
115
- * Source code: [https://github.com/fixrb/fix](https://github.com/fixrb/fix)
116
- * API Doc: [https://rubydoc.info/gems/fix](https://rubydoc.info/gems/fix)
117
- * Twitter: [https://twitter.com/fix\_rb](https://twitter.com/fix\_rb)
115
+ - [Home page](https://fixrb.dev/)
116
+ - [Source code](https://github.com/fixrb/fix)
117
+ - [API Documentation](https://rubydoc.info/gems/fix)
118
+ - [Twitter](https://twitter.com/fix_rb)
118
119
 
119
120
  ## Versioning
120
121
 
@@ -124,11 +125,11 @@ __Fix__ follows [Semantic Versioning 2.0](https://semver.org/).
124
125
 
125
126
  The [gem](https://rubygems.org/gems/fix) is available as open source under the terms of the [MIT License](https://github.com/fixrb/fix/raw/main/LICENSE.md).
126
127
 
127
- ***
128
+ ---
128
129
 
129
130
  <p>
130
131
  This project is sponsored by:<br />
131
132
  <a href="https://sashite.com/"><img
132
133
  src="https://github.com/fixrb/fix/raw/main/img/sashite.png"
133
- alt="Sashite" /></a>
134
+ alt="Sashité" /></a>
134
135
  </p>
data/lib/fix/dsl.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "defi"
3
+ require "defi/method"
4
4
 
5
5
  require_relative "matcher"
6
6
  require_relative "requirement"
@@ -28,8 +28,8 @@ module Fix
28
28
  # @return [Symbol] A private method that define the block content.
29
29
  #
30
30
  # @api public
31
- def self.let(name, &block)
32
- private define_method(name, &block)
31
+ def self.let(name, &)
32
+ private define_method(name, &)
33
33
  end
34
34
 
35
35
  # Defines an example group with user-defined properties that describes a
@@ -48,11 +48,11 @@ module Fix
48
48
  # @param block [Proc] The block to define the specs.
49
49
  #
50
50
  # @api public
51
- def self.with(**kwargs, &block)
51
+ def self.with(**kwargs, &)
52
52
  klass = ::Class.new(self)
53
53
  klass.const_get(:CONTEXTS) << klass
54
54
  kwargs.each { |name, value| klass.let(name) { value } }
55
- klass.instance_eval(&block)
55
+ klass.instance_eval(&)
56
56
  klass
57
57
  end
58
58
 
@@ -75,10 +75,10 @@ module Fix
75
75
  klass = ::Class.new(self)
76
76
  klass.const_get(:CONTEXTS) << klass
77
77
 
78
- const_set("Child#{block.object_id}", klass)
78
+ const_set(:"Child#{block.object_id}", klass)
79
79
 
80
80
  klass.define_singleton_method(:challenges) do
81
- challenge = ::Defi.send(method_name, *args, **kwargs)
81
+ challenge = ::Defi::Method.new(method_name, *args, **kwargs)
82
82
  super() + [challenge]
83
83
  end
84
84
 
@@ -98,14 +98,14 @@ module Fix
98
98
  location = caller_locations(1, 1).fetch(0)
99
99
  location = [location.path, location.lineno].join(":")
100
100
 
101
- define_method("test_#{requirement.object_id}") do
101
+ define_method(:"test_#{requirement.object_id}") do
102
102
  [location, requirement, self.class.challenges]
103
103
  end
104
104
  end
105
105
 
106
106
  # The list of challenges to be addressed to the object to be tested.
107
107
  #
108
- # @return [Array<Defi::Challenge>] A list of challenges.
108
+ # @return [Array<Defi::Method>] A list of challenges.
109
109
  def self.challenges
110
110
  []
111
111
  end
data/lib/fix/matcher.rb CHANGED
@@ -181,14 +181,12 @@ module Fix
181
181
  #
182
182
  # @param object [#object_id] An object.
183
183
  # @param method [Symbol] The name of a method.
184
- # @param args [Array] A list of arguments.
185
- # @param kwargs [Hash] A list of keyword arguments.
186
184
  #
187
185
  # @return [#matches?] A change matcher.
188
186
  #
189
187
  # @api public
190
- def change(object, method, *args, **kwargs, &block)
191
- ::Matchi::Change.new(object, method, *args, **kwargs, &block)
188
+ def change(object, method, ...)
189
+ ::Matchi::Change.new(object, method, ...)
192
190
  end
193
191
 
194
192
  # Satisfy matcher
@@ -202,8 +200,8 @@ module Fix
202
200
  # @return [#matches?] A satisfy matcher.
203
201
  #
204
202
  # @api public
205
- def satisfy(&expected)
206
- ::Matchi::Satisfy.new(&expected)
203
+ def satisfy(&)
204
+ ::Matchi::Satisfy.new(&)
207
205
  end
208
206
 
209
207
  private
@@ -214,10 +212,10 @@ module Fix
214
212
  # matcher = be_empty
215
213
  # matcher.matches? { [] } # => true
216
214
  # matcher.matches? { [4] } # => false
217
- def method_missing(name, *args, **kwargs, &block)
215
+ def method_missing(name, ...)
218
216
  return super unless predicate_matcher_name?(name)
219
217
 
220
- ::Matchi::Predicate.new(name, *args, **kwargs, &block)
218
+ ::Matchi::Predicate.new(name, ...)
221
219
  end
222
220
 
223
221
  # :nocov:
@@ -20,22 +20,7 @@ module Fix
20
20
  #
21
21
  # @api public
22
22
  def MUST(matcher)
23
- ::Spectus::Requirement::Required.new(
24
- isolate: false,
25
- negate: false,
26
- matcher: matcher
27
- )
28
- end
29
-
30
- # @see MUST
31
- #
32
- # @api public
33
- def MUST!(matcher)
34
- ::Spectus::Requirement::Required.new(
35
- isolate: true,
36
- negate: false,
37
- matcher: matcher
38
- )
23
+ ::Spectus::Requirement::Required.new(negate: false, matcher:)
39
24
  end
40
25
 
41
26
  # This method mean that the definition is an absolute prohibition of the specification.
@@ -46,22 +31,7 @@ module Fix
46
31
  #
47
32
  # @api public
48
33
  def MUST_NOT(matcher)
49
- ::Spectus::Requirement::Required.new(
50
- isolate: false,
51
- negate: true,
52
- matcher: matcher
53
- )
54
- end
55
-
56
- # @see MUST_NOT
57
- #
58
- # @api public
59
- def MUST_NOT!(matcher)
60
- ::Spectus::Requirement::Required.new(
61
- isolate: true,
62
- negate: true,
63
- matcher: matcher
64
- )
34
+ ::Spectus::Requirement::Required.new(negate: true, matcher:)
65
35
  end
66
36
 
67
37
  # This method mean that there may exist valid reasons in particular
@@ -74,22 +44,7 @@ module Fix
74
44
  #
75
45
  # @api public
76
46
  def SHOULD(matcher)
77
- ::Spectus::Requirement::Recommended.new(
78
- isolate: false,
79
- negate: false,
80
- matcher: matcher
81
- )
82
- end
83
-
84
- # @see SHOULD
85
- #
86
- # @api public
87
- def SHOULD!(matcher)
88
- ::Spectus::Requirement::Recommended.new(
89
- isolate: true,
90
- negate: false,
91
- matcher: matcher
92
- )
47
+ ::Spectus::Requirement::Recommended.new(negate: false, matcher:)
93
48
  end
94
49
 
95
50
  # This method mean that there may exist valid reasons in particular
@@ -104,22 +59,7 @@ module Fix
104
59
  #
105
60
  # @api public
106
61
  def SHOULD_NOT(matcher)
107
- ::Spectus::Requirement::Recommended.new(
108
- isolate: false,
109
- negate: true,
110
- matcher: matcher
111
- )
112
- end
113
-
114
- # @see SHOULD_NOT
115
- #
116
- # @api public
117
- def SHOULD_NOT!(matcher)
118
- ::Spectus::Requirement::Recommended.new(
119
- isolate: true,
120
- negate: true,
121
- matcher: matcher
122
- )
62
+ ::Spectus::Requirement::Recommended.new(negate: true, matcher:)
123
63
  end
124
64
 
125
65
  # This method mean that an item is truly optional.
@@ -139,22 +79,7 @@ module Fix
139
79
  #
140
80
  # @api public
141
81
  def MAY(matcher)
142
- ::Spectus::Requirement::Optional.new(
143
- isolate: false,
144
- negate: false,
145
- matcher: matcher
146
- )
147
- end
148
-
149
- # @see MAY
150
- #
151
- # @api public
152
- def MAY!(matcher)
153
- ::Spectus::Requirement::Optional.new(
154
- isolate: true,
155
- negate: false,
156
- matcher: matcher
157
- )
82
+ ::Spectus::Requirement::Optional.new(negate: false, matcher:)
158
83
  end
159
84
 
160
85
  # rubocop:enable Naming/MethodName
data/lib/fix/run.rb CHANGED
@@ -13,12 +13,12 @@ module Fix
13
13
  # @return [::Spectus::Requirement::Base] An expectation.
14
14
  attr_reader :requirement
15
15
 
16
- # @return [Array<::Defi::Challenge>] A list of challenges.
16
+ # @return [Array<::Defi::Method>] A list of challenges.
17
17
  attr_reader :challenges
18
18
 
19
19
  # @param environment [::Fix::Dsl] A context instance.
20
20
  # @param requirement [::Spectus::Requirement::Base] An expectation.
21
- # @param challenges [Array<::Defi::Challenge>] A list of challenges.
21
+ # @param challenges [Array<::Defi::Method>] A list of challenges.
22
22
  def initialize(environment, requirement, *challenges)
23
23
  @environment = environment
24
24
  @requirement = requirement
@@ -33,7 +33,7 @@ module Fix
33
33
  # @return [::Expresenter::Pass] A passed spec instance.
34
34
  #
35
35
  # @see https://github.com/fixrb/expresenter
36
- def against(&subject)
36
+ def test(&subject)
37
37
  requirement.call { actual_value(&subject) }
38
38
  rescue ::Expresenter::Fail => e
39
39
  e
data/lib/fix/set.rb CHANGED
@@ -50,15 +50,15 @@ module Fix
50
50
  # @raise [::SystemExit] The test set failed!
51
51
  #
52
52
  # @api public
53
- def against(log_level: 5, &subject)
53
+ def test(log_level: 5, &subject)
54
54
  randomize!
55
55
 
56
56
  specs.each do |environment, location, requirement, challenges|
57
57
  runner = Run.new(environment, requirement, *challenges)
58
- result = runner.against(&subject)
58
+ result = runner.test(&subject)
59
59
 
60
60
  failed! if result.failed?
61
- report!(location, result, log_level: log_level)
61
+ report!(location, result, log_level:)
62
62
  end
63
63
 
64
64
  passed? || ::Kernel.exit(false)
@@ -80,13 +80,13 @@ module Fix
80
80
  end
81
81
 
82
82
  def report!(path, result, log_level:)
83
- return unless report?(result, log_level: log_level)
83
+ return unless report?(result, log_level:)
84
84
 
85
85
  puts "#{path} #{result.colored_string}"
86
86
  end
87
87
 
88
88
  def report?(result, log_level:)
89
- LOG_LEVELS[1..log_level].any? { |name| result.public_send("#{name}?") }
89
+ LOG_LEVELS[1..log_level].any? { |name| result.public_send(:"#{name}?") }
90
90
  end
91
91
  end
92
92
  end
data/lib/fix.rb CHANGED
@@ -11,7 +11,7 @@ module Fix
11
11
  # Test a built specification.
12
12
  #
13
13
  # @example Run _Answer_ specification against `42`.
14
- # Fix[:Answer].against(42)
14
+ # Fix[:Answer].test { 42 }
15
15
  #
16
16
  # @param name [String, Symbol] The constant name of the specifications.
17
17
  #
data/lib/kernel.rb CHANGED
@@ -17,20 +17,21 @@ module Kernel
17
17
  # end
18
18
  #
19
19
  # # A test
20
- # Fix[:Answer].against { 42 }
20
+ # Fix[:Answer].test { 42 }
21
21
  #
22
22
  # @param name [String, Symbol] The constant name of the specifications.
23
23
  # @param block [Proc] The specifications.
24
24
  #
25
- # @return [#against] The collection of specifications.
25
+ # @return [#test] The collection of specifications.
26
26
  #
27
27
  # @api public
28
- def Fix(name = nil, &block)
28
+ def Fix(name = nil, &)
29
29
  klass = ::Class.new(::Fix::Dsl)
30
30
  klass.const_set(:CONTEXTS, [klass])
31
- klass.instance_eval(&block)
31
+ klass.instance_eval(&)
32
32
  ::Fix::Doc.const_set(name, klass) unless name.nil?
33
33
  ::Fix::Set.new(*klass.const_get(:CONTEXTS))
34
34
  end
35
+
35
36
  # rubocop:enable Naming/MethodName
36
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fix
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta8
4
+ version: 1.0.0.beta9
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-07-30 00:00:00.000000000 Z
11
+ date: 2024-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: defi
@@ -16,154 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.5
19
+ version: 3.0.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: 2.0.5
26
+ version: 3.0.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.0
33
+ version: 3.3.2
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.0
40
+ version: 3.3.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: spectus
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 4.0.2
47
+ version: 5.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: 4.0.2
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-thread_safety
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: simplecov
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: yard
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'
54
+ version: 5.0.0
167
55
  description: Specing framework.
168
56
  email: contact@cyril.email
169
57
  executables: []
@@ -188,6 +76,7 @@ metadata:
188
76
  documentation_uri: https://rubydoc.info/gems/fix
189
77
  source_code_uri: https://github.com/fixrb/fix
190
78
  wiki_uri: https://github.com/fixrb/fix/wiki
79
+ rubygems_mfa_required: 'true'
191
80
  post_install_message:
192
81
  rdoc_options: []
193
82
  require_paths:
@@ -196,14 +85,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
85
  requirements:
197
86
  - - ">="
198
87
  - !ruby/object:Gem::Version
199
- version: 2.7.0
88
+ version: 3.2.0
200
89
  required_rubygems_version: !ruby/object:Gem::Requirement
201
90
  requirements:
202
91
  - - ">"
203
92
  - !ruby/object:Gem::Version
204
93
  version: 1.3.1
205
94
  requirements: []
206
- rubygems_version: 3.1.6
95
+ rubygems_version: 3.4.19
207
96
  signing_key:
208
97
  specification_version: 4
209
98
  summary: Specing framework.