minitest-keyword 2.0.0 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b569537ff4f2eacfd9b0e3dfdbb4ba8d0864eed8e3c3c0fab016ab865c308c2
4
- data.tar.gz: e77fefde1103684177cbcd645cde4eb74d1002ecbf7ec6cd3cb9752ff4af90ac
3
+ metadata.gz: 1b364876ff4ff76e2547510f40c1ff01b133222e53aee1e3580316c27a3e17de
4
+ data.tar.gz: 3b13150d418ab6e0684c463e3fb5586127112d675f9a2229e56ee70c69effa05
5
5
  SHA512:
6
- metadata.gz: 8cee286ebf8de7e7c68695604998ce3bd93a9451d7eb1a52eb69489a000b3a5220ba46b404e81a59ac65877eb46e62ec9343f8e8bd0339b1cde92c4480b43678
7
- data.tar.gz: 35ad6969492e0bb920897e0b2e85d0e415be703c98f0d5f30fbdda8100877f4a402880aac9958e93ef6ca0532d8be2780f8eb23f3b970d0da8939b878338e7ce
6
+ metadata.gz: 37025f541764496e4dd279f137a34677aa3169847d8ad095fb2c4dc98c89cd13dcc88b112260948b7c5d4f263479d94579f4806c825e92df8b87b26503c1a002
7
+ data.tar.gz: 3ae02edd1590ae4c01d22140b2d2c3fa78e8f4f45bfa30120cff3d313cd6141691cf7e56d44664a01c10e251be07625839fe8153dff22ca133ab8834b0210f37
@@ -12,7 +12,7 @@ jobs:
12
12
  steps:
13
13
  - name: Dependabot metadata
14
14
  id: metadata
15
- uses: dependabot/fetch-metadata@v1.6.0
15
+ uses: dependabot/fetch-metadata@v2.4.0
16
16
  with:
17
17
  github-token: "${{ secrets.GITHUB_TOKEN }}"
18
18
  - name: Enable auto-merge for Dependabot PRs
data/.rubocop.yml CHANGED
@@ -6,7 +6,7 @@ AllCops:
6
6
  DisplayStyleGuide: true
7
7
  NewCops: enable
8
8
  SuggestExtensions: false
9
- TargetRubyVersion: 2.7
9
+ TargetRubyVersion: 3.0
10
10
  Exclude:
11
11
  - '{tmp,vendor,yard}/**/*'
12
12
 
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.1.0] - 2025-12-18
10
+
11
+ ### Added
12
+
13
+ - Explicit support for Minitest 6.
14
+
9
15
  ## [2.0.0] - 2024-01-23
10
16
 
11
17
  ### Changed
@@ -32,7 +38,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
32
38
 
33
39
  - 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.
34
40
 
35
- [unreleased]: https://github.com/kddnewton/minitest-keyword/compare/v2.0.0...HEAD
41
+ [unreleased]: https://github.com/kddnewton/minitest-keyword/compare/v2.1.0...HEAD
42
+ [2.1.0]: https://github.com/kddnewton/minitest-keyword/compare/v2.0.0...v2.1.0
36
43
  [2.0.0]: https://github.com/kddnewton/minitest-keyword/compare/v1.0.2...v2.0.0
37
44
  [1.0.2]: https://github.com/kddnewton/minitest-keyword/compare/v1.0.1...v1.0.2
38
45
  [1.0.1]: https://github.com/kddnewton/minitest-keyword/compare/v1.0.0...v1.0.1
data/Gemfile.lock CHANGED
@@ -1,50 +1,55 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minitest-keyword (2.0.0)
5
- minitest (~> 5.0)
4
+ minitest-keyword (2.1.0)
5
+ minitest (>= 5)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.4.2)
11
- docile (1.4.0)
12
- json (2.7.1)
13
- language_server-protocol (3.17.0.3)
14
- minitest (5.21.2)
15
- parallel (1.24.0)
16
- parser (3.3.0.4)
10
+ ast (2.4.3)
11
+ docile (1.4.1)
12
+ json (2.18.0)
13
+ language_server-protocol (3.17.0.5)
14
+ lint_roller (1.1.0)
15
+ minitest (6.0.0)
16
+ prism (~> 1.5)
17
+ parallel (1.27.0)
18
+ parser (3.3.10.0)
17
19
  ast (~> 2.4.1)
18
20
  racc
19
21
  prettier_print (1.2.1)
20
- racc (1.7.3)
22
+ prism (1.7.0)
23
+ racc (1.8.1)
21
24
  rainbow (3.1.1)
22
- rake (13.1.0)
23
- regexp_parser (2.9.0)
24
- rexml (3.2.6)
25
- rubocop (1.60.1)
25
+ rake (13.3.1)
26
+ regexp_parser (2.11.3)
27
+ rubocop (1.82.0)
26
28
  json (~> 2.3)
27
- language_server-protocol (>= 3.17.0)
29
+ language_server-protocol (~> 3.17.0.2)
30
+ lint_roller (~> 1.1.0)
28
31
  parallel (~> 1.10)
29
32
  parser (>= 3.3.0.2)
30
33
  rainbow (>= 2.2.2, < 4.0)
31
- regexp_parser (>= 1.8, < 3.0)
32
- rexml (>= 3.2.5, < 4.0)
33
- rubocop-ast (>= 1.30.0, < 2.0)
34
+ regexp_parser (>= 2.9.3, < 3.0)
35
+ rubocop-ast (>= 1.48.0, < 2.0)
34
36
  ruby-progressbar (~> 1.7)
35
- unicode-display_width (>= 2.4.0, < 3.0)
36
- rubocop-ast (1.30.0)
37
- parser (>= 3.2.1.0)
37
+ unicode-display_width (>= 2.4.0, < 4.0)
38
+ rubocop-ast (1.48.0)
39
+ parser (>= 3.3.7.2)
40
+ prism (~> 1.4)
38
41
  ruby-progressbar (1.13.0)
39
42
  simplecov (0.22.0)
40
43
  docile (~> 1.1)
41
44
  simplecov-html (~> 0.11)
42
45
  simplecov_json_formatter (~> 0.1)
43
- simplecov-html (0.12.3)
46
+ simplecov-html (0.13.2)
44
47
  simplecov_json_formatter (0.1.4)
45
- syntax_tree (6.2.0)
48
+ syntax_tree (6.3.0)
46
49
  prettier_print (>= 1.2.0)
47
- unicode-display_width (2.5.0)
50
+ unicode-display_width (3.2.0)
51
+ unicode-emoji (~> 4.1)
52
+ unicode-emoji (4.2.0)
48
53
 
49
54
  PLATFORMS
50
55
  ruby
data/README.md CHANGED
@@ -52,7 +52,7 @@ 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 receiver:, operator:, argument: UNDEFINED, message: nil
55
+ assert_operator receiver:, operator:, argument: Minitest::Assertions::UNDEFINED, message: nil
56
56
  assert_output stdout: nil, stderr: nil
57
57
  assert_path_exists path:, message: nil
58
58
  assert_predicate receiver:, operator:, message: nil
@@ -75,7 +75,7 @@ refute_instance_of class:, object:, message: nil
75
75
  refute_kind_of class:, object:, message: nil
76
76
  refute_match matcher:, object:, message: nil
77
77
  refute_nil object:, message: nil
78
- refute_operator receiver:, operator:, argument: UNDEFINED, message: nil
78
+ refute_operator receiver:, operator:, argument: Minitest::Assertions::UNDEFINED, message: nil
79
79
  refute_path_exists path:, message: nil
80
80
  refute_predicate receiver:, operator:, message: nil
81
81
  refute_respond_to object:, method:, message: nil, include_all: false
data/bin/readme CHANGED
@@ -11,15 +11,19 @@ source = Minitest::Assertions
11
11
  source.instance_methods.grep(/^(assert|refute)/).sort.each do |method_name|
12
12
  method = source.instance_method(method_name)
13
13
  parameters = method.parameters
14
-
15
14
  next if parameters.empty? || method_name == :assert_send
16
15
 
16
+ parameter_aliases = aliases
17
+ if Minitest::VERSION >= "6.0.0" && method_name == :refute_includes
18
+ parameter_aliases = { **aliases, obj: :collection, sub: :object }
19
+ end
20
+
17
21
  iseq = RubyVM::InstructionSequence.of(method).to_a
18
22
  opt_index = 0
19
23
 
20
24
  values =
21
25
  parameters.map do |(parameter_type, parameter_name)|
22
- name = aliases[parameter_name]
26
+ name = parameter_aliases[parameter_name]
23
27
 
24
28
  case parameter_type
25
29
  in :req
@@ -31,7 +35,7 @@ source.instance_methods.grep(/^(assert|refute)/).sort.each do |method_name|
31
35
  in Symbol | Integer
32
36
  next
33
37
  in [:opt_getconstant_path, path]
34
- stack << path.join("::")
38
+ stack << [source.name, *path].join("::")
35
39
  in [:putobject, object]
36
40
  stack << object.inspect
37
41
  in [:putnil]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Minitest
4
4
  module Keyword
5
- VERSION = "2.0.0"
5
+ VERSION = "2.1.0"
6
6
  end
7
7
  end
@@ -52,18 +52,23 @@ module Minitest
52
52
  parameters = Assertions.instance_method(method_name).parameters
53
53
  next if parameters.empty? || method_name == :assert_send
54
54
 
55
+ aliases = ALIASES
56
+ if Minitest::VERSION >= "6.0.0" && method_name == :refute_includes
57
+ aliases = { **ALIASES, obj: :collection, sub: :object }
58
+ end
59
+
55
60
  define_method(method_name) do |*args, **kwargs, &block|
56
61
  passed_args = []
57
62
  passed_kwargs = {}
58
63
 
59
64
  parameters.each.with_index do |(type, arg_name), index|
60
65
  if args.length > index &&
61
- (kwargs.key?(arg_name) || kwargs.key?(ALIASES[arg_name]))
66
+ (kwargs.key?(arg_name) || kwargs.key?(aliases[arg_name]))
62
67
  raise OverloadedArgumentError.new(method_name, arg_name)
63
68
  end
64
69
 
65
70
  if type == :req && args.length <= index && !kwargs.key?(arg_name) &&
66
- !kwargs.key?(ALIASES[arg_name])
71
+ !kwargs.key?(aliases[arg_name])
67
72
  raise MissingRequiredArgumentError.new(method_name, arg_name)
68
73
  end
69
74
 
@@ -73,15 +78,15 @@ module Minitest
73
78
  if args.any?
74
79
  args[index..-1]
75
80
  else
76
- kwargs[arg_name] || kwargs[ALIASES[arg_name]]
81
+ kwargs[arg_name] || kwargs[aliases[arg_name]]
77
82
  end
78
83
  when :key
79
84
  passed_kwargs[arg_name] = (
80
- kwargs[arg_name] || kwargs[ALIASES[arg_name]]
85
+ kwargs[arg_name] || kwargs[aliases[arg_name]]
81
86
  )
82
87
  when :req, :opt
83
88
  passed_args << (
84
- args[index] || kwargs[arg_name] || kwargs[ALIASES[arg_name]]
89
+ args[index] || kwargs[arg_name] || kwargs[aliases[arg_name]]
85
90
  )
86
91
  else
87
92
  raise "Unknown parameter type #{type}"
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_dependency "minitest", "~> 5.0"
33
+ spec.add_dependency "minitest", ">= 5"
34
34
 
35
35
  spec.add_development_dependency "bundler", "~> 2.0"
36
36
  spec.add_development_dependency "rake", "~> 13.0"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-keyword
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.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-23 00:00:00.000000000 Z
11
+ date: 2025-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '5'
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: '5.0'
26
+ version: '5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -124,7 +124,7 @@ licenses:
124
124
  - MIT
125
125
  metadata:
126
126
  bug_tracker_uri: https://github.com/kddnewton/minitest-keyword/issues
127
- changelog_uri: https://github.com/kddnewton/minitest-keyword/blob/v2.0.0/CHANGELOG.md
127
+ changelog_uri: https://github.com/kddnewton/minitest-keyword/blob/v2.1.0/CHANGELOG.md
128
128
  source_code_uri: https://github.com/kddnewton/minitest-keyword
129
129
  rubygems_mfa_required: 'true'
130
130
  post_install_message:
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
144
  requirements: []
145
- rubygems_version: 3.4.1
145
+ rubygems_version: 3.5.16
146
146
  signing_key:
147
147
  specification_version: 4
148
148
  summary: Use Minitest assertions with keyword arguments