fix 1.0.0.beta8 → 1.0.0.beta9

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