minitest-keyword 1.0.2 → 2.0.0
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/.github/workflows/main.yml +2 -1
- data/CHANGELOG.md +11 -2
- data/Gemfile.lock +5 -5
- data/README.md +14 -12
- data/bin/readme +54 -0
- data/lib/minitest/keyword/version.rb +1 -1
- data/lib/minitest/keyword.rb +4 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b569537ff4f2eacfd9b0e3dfdbb4ba8d0864eed8e3c3c0fab016ab865c308c2
|
4
|
+
data.tar.gz: e77fefde1103684177cbcd645cde4eb74d1002ecbf7ec6cd3cb9752ff4af90ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cee286ebf8de7e7c68695604998ce3bd93a9451d7eb1a52eb69489a000b3a5220ba46b404e81a59ac65877eb46e62ec9343f8e8bd0339b1cde92c4480b43678
|
7
|
+
data.tar.gz: 35ad6969492e0bb920897e0b2e85d0e415be703c98f0d5f30fbdda8100877f4a402880aac9958e93ef6ca0532d8be2780f8eb23f3b970d0da8939b878338e7ce
|
data/.github/workflows/main.yml
CHANGED
@@ -14,10 +14,11 @@ jobs:
|
|
14
14
|
- uses: actions/checkout@master
|
15
15
|
- uses: ruby/setup-ruby@v1
|
16
16
|
with:
|
17
|
-
ruby-version: '3.
|
17
|
+
ruby-version: '3.3'
|
18
18
|
bundler-cache: true
|
19
19
|
- name: Lint and test
|
20
20
|
run: |
|
21
21
|
bundle exec rake stree:check
|
22
22
|
bundle exec rubocop --parallel
|
23
23
|
bundle exec rake test
|
24
|
+
bin/readme
|
data/CHANGELOG.md
CHANGED
@@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
-
## [
|
9
|
+
## [2.0.0] - 2024-01-23
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
|
13
|
+
- `assert_send` is no longer decorated, since it is deprecated.
|
14
|
+
- `assert_operator` and `refute_operator` have changed their keywords from `o1`, `op`, and `o2` to `receiver`, `operator`, and `argument`, respectively.
|
15
|
+
- `assert_predicate` and `refute_predicate` have changed their keywords from `o1` and `op` to `receiver` and `operator`, respectively.
|
16
|
+
|
17
|
+
## [1.0.2] - 2024-01-12
|
10
18
|
|
11
19
|
### Changed
|
12
20
|
|
@@ -24,7 +32,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
24
32
|
|
25
33
|
- The name of the underlying parameter changed for `assert_in_epsilon` from `a` and `b` to `exp` and `act`. As such, in order to normalize, those were aliased to `expected` and `actual` as well.
|
26
34
|
|
27
|
-
[unreleased]: https://github.com/kddnewton/minitest-keyword/compare/
|
35
|
+
[unreleased]: https://github.com/kddnewton/minitest-keyword/compare/v2.0.0...HEAD
|
36
|
+
[2.0.0]: https://github.com/kddnewton/minitest-keyword/compare/v1.0.2...v2.0.0
|
28
37
|
[1.0.2]: https://github.com/kddnewton/minitest-keyword/compare/v1.0.1...v1.0.2
|
29
38
|
[1.0.1]: https://github.com/kddnewton/minitest-keyword/compare/v1.0.0...v1.0.1
|
30
39
|
[1.0.0]: https://github.com/kddnewton/minitest-keyword/compare/846f1f...v1.0.0
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
minitest-keyword (
|
4
|
+
minitest-keyword (2.0.0)
|
5
5
|
minitest (~> 5.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -11,9 +11,9 @@ GEM
|
|
11
11
|
docile (1.4.0)
|
12
12
|
json (2.7.1)
|
13
13
|
language_server-protocol (3.17.0.3)
|
14
|
-
minitest (5.21.
|
14
|
+
minitest (5.21.2)
|
15
15
|
parallel (1.24.0)
|
16
|
-
parser (3.3.0.
|
16
|
+
parser (3.3.0.4)
|
17
17
|
ast (~> 2.4.1)
|
18
18
|
racc
|
19
19
|
prettier_print (1.2.1)
|
@@ -22,11 +22,11 @@ GEM
|
|
22
22
|
rake (13.1.0)
|
23
23
|
regexp_parser (2.9.0)
|
24
24
|
rexml (3.2.6)
|
25
|
-
rubocop (1.
|
25
|
+
rubocop (1.60.1)
|
26
26
|
json (~> 2.3)
|
27
27
|
language_server-protocol (>= 3.17.0)
|
28
28
|
parallel (~> 1.10)
|
29
|
-
parser (>= 3.
|
29
|
+
parser (>= 3.3.0.2)
|
30
30
|
rainbow (>= 2.2.2, < 4.0)
|
31
31
|
regexp_parser (>= 1.8, < 3.0)
|
32
32
|
rexml (>= 3.2.5, < 4.0)
|
data/README.md
CHANGED
@@ -45,18 +45,19 @@ The actual keyword method creation is done through introspection, but the equiva
|
|
45
45
|
assert test:, message: nil
|
46
46
|
assert_empty object:, message: nil
|
47
47
|
assert_equal expected:, actual:, message: nil
|
48
|
-
assert_in_delta expected:, actual:, delta
|
49
|
-
assert_in_epsilon expected:, actual:, epsilon
|
48
|
+
assert_in_delta expected:, actual:, delta: 0.001, message: nil
|
49
|
+
assert_in_epsilon expected:, actual:, epsilon: 0.001, message: nil
|
50
50
|
assert_includes collection:, object:, message: nil
|
51
51
|
assert_instance_of class:, object:, message: nil
|
52
52
|
assert_kind_of class:, object:, message: nil
|
53
53
|
assert_match matcher:, object:, message: nil
|
54
54
|
assert_nil object:, message: nil
|
55
|
-
assert_operator
|
56
|
-
assert_output stdout
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
assert_operator receiver:, operator:, argument: UNDEFINED, message: nil
|
56
|
+
assert_output stdout: nil, stderr: nil
|
57
|
+
assert_path_exists path:, message: nil
|
58
|
+
assert_predicate receiver:, operator:, message: nil
|
59
|
+
assert_raises expected: []
|
60
|
+
assert_respond_to object:, method:, message: nil, include_all: false
|
60
61
|
assert_same expected:, actual:, message: nil
|
61
62
|
assert_throws symbol:, message: nil
|
62
63
|
```
|
@@ -67,16 +68,17 @@ The associated refutations are also overridden, with the below signatures.
|
|
67
68
|
refute test:, message: nil
|
68
69
|
refute_empty object:, message: nil
|
69
70
|
refute_equal expected:, actual:, message: nil
|
70
|
-
refute_in_delta expected:, actual:, delta
|
71
|
-
refute_in_epsilon expected:, actual:, epsilon
|
71
|
+
refute_in_delta expected:, actual:, delta: 0.001, message: nil
|
72
|
+
refute_in_epsilon expected:, actual:, epsilon: 0.001, message: nil
|
72
73
|
refute_includes collection:, object:, message: nil
|
73
74
|
refute_instance_of class:, object:, message: nil
|
74
75
|
refute_kind_of class:, object:, message: nil
|
75
76
|
refute_match matcher:, object:, message: nil
|
76
77
|
refute_nil object:, message: nil
|
77
|
-
refute_operator
|
78
|
-
|
79
|
-
|
78
|
+
refute_operator receiver:, operator:, argument: UNDEFINED, message: nil
|
79
|
+
refute_path_exists path:, message: nil
|
80
|
+
refute_predicate receiver:, operator:, message: nil
|
81
|
+
refute_respond_to object:, method:, message: nil, include_all: false
|
80
82
|
refute_same expected:, actual:, message: nil
|
81
83
|
```
|
82
84
|
|
data/bin/readme
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "bundler/setup"
|
5
|
+
require "minitest/keyword"
|
6
|
+
|
7
|
+
aliases = Hash.new { |hash, key| hash[key] = key }
|
8
|
+
aliases.merge!(Minitest::Keyword::ALIASES)
|
9
|
+
|
10
|
+
source = Minitest::Assertions
|
11
|
+
source.instance_methods.grep(/^(assert|refute)/).sort.each do |method_name|
|
12
|
+
method = source.instance_method(method_name)
|
13
|
+
parameters = method.parameters
|
14
|
+
|
15
|
+
next if parameters.empty? || method_name == :assert_send
|
16
|
+
|
17
|
+
iseq = RubyVM::InstructionSequence.of(method).to_a
|
18
|
+
opt_index = 0
|
19
|
+
|
20
|
+
values =
|
21
|
+
parameters.map do |(parameter_type, parameter_name)|
|
22
|
+
name = aliases[parameter_name]
|
23
|
+
|
24
|
+
case parameter_type
|
25
|
+
in :req
|
26
|
+
"#{name}:"
|
27
|
+
in :opt
|
28
|
+
stack = []
|
29
|
+
iseq[13][iseq[13].index(iseq[11][:opt][opt_index])..].each do |insn|
|
30
|
+
case insn
|
31
|
+
in Symbol | Integer
|
32
|
+
next
|
33
|
+
in [:opt_getconstant_path, path]
|
34
|
+
stack << path.join("::")
|
35
|
+
in [:putobject, object]
|
36
|
+
stack << object.inspect
|
37
|
+
in [:putnil]
|
38
|
+
stack << "nil"
|
39
|
+
in [/^setlocal/, Integer]
|
40
|
+
break
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
opt_index += 1
|
45
|
+
"#{name}: #{stack.pop}"
|
46
|
+
in :key
|
47
|
+
"#{name}: #{iseq[11][:keyword].assoc(parameter_name)[1]}"
|
48
|
+
in :rest
|
49
|
+
"#{name}: []"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
puts "%-18s %s" % [method_name, values.join(", ")]
|
54
|
+
end
|
data/lib/minitest/keyword.rb
CHANGED
@@ -17,6 +17,9 @@ module Minitest
|
|
17
17
|
meth: :method,
|
18
18
|
msg: :message,
|
19
19
|
obj: :object,
|
20
|
+
op: :operator,
|
21
|
+
o1: :receiver,
|
22
|
+
o2: :argument,
|
20
23
|
sym: :symbol
|
21
24
|
}.freeze
|
22
25
|
|
@@ -47,7 +50,7 @@ module Minitest
|
|
47
50
|
.grep(/assert|refute/)
|
48
51
|
.each do |method_name|
|
49
52
|
parameters = Assertions.instance_method(method_name).parameters
|
50
|
-
next if parameters.empty?
|
53
|
+
next if parameters.empty? || method_name == :assert_send
|
51
54
|
|
52
55
|
define_method(method_name) do |*args, **kwargs, &block|
|
53
56
|
passed_args = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-keyword
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Newton
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- README.md
|
115
115
|
- Rakefile
|
116
116
|
- bin/console
|
117
|
+
- bin/readme
|
117
118
|
- bin/setup
|
118
119
|
- lib/minitest/keyword.rb
|
119
120
|
- lib/minitest/keyword/version.rb
|
@@ -123,7 +124,7 @@ licenses:
|
|
123
124
|
- MIT
|
124
125
|
metadata:
|
125
126
|
bug_tracker_uri: https://github.com/kddnewton/minitest-keyword/issues
|
126
|
-
changelog_uri: https://github.com/kddnewton/minitest-keyword/blob/
|
127
|
+
changelog_uri: https://github.com/kddnewton/minitest-keyword/blob/v2.0.0/CHANGELOG.md
|
127
128
|
source_code_uri: https://github.com/kddnewton/minitest-keyword
|
128
129
|
rubygems_mfa_required: 'true'
|
129
130
|
post_install_message:
|