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 +4 -4
- data/LICENSE.md +2 -2
- data/README.md +27 -26
- data/lib/fix/dsl.rb +9 -9
- data/lib/fix/matcher.rb +6 -8
- data/lib/fix/requirement.rb +5 -80
- data/lib/fix/run.rb +3 -3
- data/lib/fix/set.rb +5 -5
- data/lib/fix.rb +1 -1
- data/lib/kernel.rb +5 -4
- metadata +11 -122
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d266f76f9d9f0ee694cade79ee90b02d1a662709bb31c548da80be1ab42d689
|
4
|
+
data.tar.gz: e38fa445573fe8b23df2cea139c4d2879a49652afdb6543aebd05525a5ca0da9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2496a36150fc8640b16ab0942592dfcb47cf0cc0db0abb9d6c716387e73a8a16f329459be64d74c00a7604ec9081191d0580de45cbe62f585fdc9aff744d2b4f
|
7
|
+
data.tar.gz: 0b09e865870d08db2b9147fd9977aa7b0df27d44a63e3138c8e699258cc49dfcee3f81000f4491a896275b79d54c45b1e3b1f3e9fe881cc9152fa7e48a1f0f61
|
data/LICENSE.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
The MIT License
|
1
|
+
# The MIT License
|
2
2
|
|
3
|
-
Copyright (c) 2014-
|
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
|
[](https://fixrb.dev/)
|
4
|
-
[](https://github.com/fixrb/fix/
|
4
|
+
[](https://github.com/fixrb/fix/tags)
|
5
5
|
[](https://rubydoc.info/github/fixrb/fix/main)
|
6
|
-
[](https://github.com/fixrb/fix/actions?query=workflow%3Aruby+branch%3Amain)
|
7
7
|
[](https://github.com/fixrb/fix/actions?query=workflow%3Arubocop+branch%3Amain)
|
8
8
|
[](https://github.com/fixrb/fix/raw/main/LICENSE.md)
|
9
9
|
|
10
|
-
|
10
|
+

|
11
11
|
|
12
|
-
|
12
|
+
## Project Goals
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
21
|
+
Add to your Gemfile:
|
24
22
|
|
25
23
|
```ruby
|
26
|
-
gem "fix", ">= 1.0.0.
|
24
|
+
gem "fix", ">= 1.0.0.beta9"
|
27
25
|
```
|
28
26
|
|
29
|
-
|
27
|
+
Then execute:
|
30
28
|
|
31
29
|
```sh
|
32
|
-
bundle
|
30
|
+
bundle install
|
33
31
|
```
|
34
32
|
|
35
|
-
Or install it yourself
|
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
|
-
|
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
|
-
|
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
|
-
|
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].
|
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
|
-
|
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
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
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="
|
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, &
|
32
|
-
private define_method(name, &
|
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, &
|
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(&
|
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.
|
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::
|
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,
|
191
|
-
::Matchi::Change.new(object, method,
|
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(&
|
206
|
-
::Matchi::Satisfy.new(&
|
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,
|
215
|
+
def method_missing(name, ...)
|
218
216
|
return super unless predicate_matcher_name?(name)
|
219
217
|
|
220
|
-
::Matchi::Predicate.new(name,
|
218
|
+
::Matchi::Predicate.new(name, ...)
|
221
219
|
end
|
222
220
|
|
223
221
|
# :nocov:
|
data/lib/fix/requirement.rb
CHANGED
@@ -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::
|
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::
|
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
|
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
|
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.
|
58
|
+
result = runner.test(&subject)
|
59
59
|
|
60
60
|
failed! if result.failed?
|
61
|
-
report!(location, result, 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:
|
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
data/lib/kernel.rb
CHANGED
@@ -17,20 +17,21 @@ module Kernel
|
|
17
17
|
# end
|
18
18
|
#
|
19
19
|
# # A test
|
20
|
-
# Fix[:Answer].
|
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 [#
|
25
|
+
# @return [#test] The collection of specifications.
|
26
26
|
#
|
27
27
|
# @api public
|
28
|
-
def Fix(name = nil, &
|
28
|
+
def Fix(name = nil, &)
|
29
29
|
klass = ::Class.new(::Fix::Dsl)
|
30
30
|
klass.const_set(:CONTEXTS, [klass])
|
31
|
-
klass.instance_eval(&
|
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.
|
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:
|
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:
|
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:
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
95
|
+
rubygems_version: 3.4.19
|
207
96
|
signing_key:
|
208
97
|
specification_version: 4
|
209
98
|
summary: Specing framework.
|