minitag 0.6.1 → 0.7.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: edc15f86cd75fafe193dda4ce0c3ec53195a3c831b3b364c1268468cec1fa58b
4
- data.tar.gz: a7cba97a2c8f4cde4263f7d4e880510a6f14a6606649eb3920bfe0a569ef9805
3
+ metadata.gz: 3646bf309682ea51b369657ae95ffd834ce56fcb1c90c95ee431bcca34c559cb
4
+ data.tar.gz: 908854e7069bd036e32f5abedacff5ecf2f0978e06f3ebfa8f0e9a34af37b978
5
5
  SHA512:
6
- metadata.gz: 4e2aa1f83f281212d0417747906b9ec9cc0e7e97f9aa7d0d38eac636d1d8d0f98c555cace09b410ee2655c060e4008fa5eaafae7225f4a674f26e1bb9a19810c
7
- data.tar.gz: 31b67943091e116adf9ec47a751075b8d1e5fac32480a04bbbd406bcaa732252d31fb274cfd5645f6a2cf8ded9318817dce1537eaf707572aa090e9b3a438421
6
+ metadata.gz: c9899ffdd7c90f07dc1e0eaa0cdd006aaa041b7b8b3143376c5f21c209d2a7610709ce6cf274447d1806c2ae2781ed5f853a65b1e86474bc9204f897c1440e09
7
+ data.tar.gz: faa93a0697581e1121c2407eb6210e2903903179b1ac588860b62ac26a44ce32703843fe7053a55a43dece599e70b7c7a30ed5a54a4d5ffc1c9e2436051ae9e5
@@ -6,12 +6,12 @@ jobs:
6
6
  runs-on: ubuntu-latest
7
7
  strategy:
8
8
  matrix:
9
- ruby: [ '2.6', '2.7' ]
9
+ ruby: [ '2.5', '2.6', '2.7' ]
10
10
  name: Ruby ${{ matrix.ruby }}
11
11
  steps:
12
- - uses: actions/checkout@v2
12
+ - uses: actions/checkout@v3
13
13
  - name: Set up Ruby ${{ matrix.ruby }}
14
- uses: actions/setup-ruby@v1
14
+ uses: ruby/setup-ruby@v1
15
15
  with:
16
16
  ruby-version: ${{ matrix.ruby }}
17
17
  - name: Cache gems
data/.rubocop.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
+ TargetRubyVersion: 2.5
3
4
 
4
5
  Layout/LineLength:
5
6
  Max: 120
@@ -10,3 +11,11 @@ Metrics/ClassLength:
10
11
  Metrics/BlockLength:
11
12
  Exclude:
12
13
  - 'test/**/*_test.rb'
14
+
15
+ Lint/EmptyBlock:
16
+ Exclude:
17
+ - 'test/**/*_test.rb'
18
+
19
+ Naming/VariableNumber:
20
+ Exclude:
21
+ - 'test/**/*_test.rb'
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
 
5
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
- ruby '>= 2.6'
7
+ ruby '>= 2.5'
8
8
 
9
9
  # Specify your gem's dependencies in minitag.gemspec
10
10
  gemspec
data/Gemfile.lock CHANGED
@@ -1,46 +1,48 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minitag (0.6.1)
4
+ minitag (0.6.2)
5
5
  minitest (~> 5.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.4.1)
11
- minitest (5.14.1)
12
- parallel (1.19.2)
13
- parser (2.7.1.4)
10
+ ast (2.4.2)
11
+ minitest (5.14.4)
12
+ parallel (1.20.1)
13
+ parser (3.0.2.0)
14
14
  ast (~> 2.4.1)
15
15
  rainbow (3.0.0)
16
- rake (13.0.1)
17
- regexp_parser (1.7.1)
16
+ rake (13.0.6)
17
+ regexp_parser (2.1.1)
18
18
  rexml (3.2.5)
19
- rubocop (0.87.1)
19
+ rubocop (1.18.4)
20
20
  parallel (~> 1.10)
21
- parser (>= 2.7.1.1)
21
+ parser (>= 3.0.0.0)
22
22
  rainbow (>= 2.2.2, < 4.0)
23
- regexp_parser (>= 1.7)
23
+ regexp_parser (>= 1.8, < 3.0)
24
24
  rexml
25
- rubocop-ast (>= 0.1.0, < 1.0)
25
+ rubocop-ast (>= 1.8.0, < 2.0)
26
26
  ruby-progressbar (~> 1.7)
27
- unicode-display_width (>= 1.4.0, < 2.0)
28
- rubocop-ast (0.1.0)
29
- parser (>= 2.7.0.1)
30
- ruby-progressbar (1.10.1)
31
- unicode-display_width (1.7.0)
27
+ unicode-display_width (>= 1.4.0, < 3.0)
28
+ rubocop-ast (1.8.0)
29
+ parser (>= 3.0.1.1)
30
+ ruby-progressbar (1.11.0)
31
+ unicode-display_width (2.0.0)
32
32
 
33
33
  PLATFORMS
34
34
  ruby
35
+ universal-darwin-20
36
+ x86_64-linux
35
37
 
36
38
  DEPENDENCIES
37
- bundler (~> 1.17)
39
+ bundler (>= 2.2.10)
38
40
  minitag!
39
41
  rake (>= 12.3.3)
40
- rubocop (~> 0.87.1)
42
+ rubocop (~> 1.18)
41
43
 
42
44
  RUBY VERSION
43
45
  ruby 2.6.3p62
44
46
 
45
47
  BUNDLED WITH
46
- 1.17.2
48
+ 2.2.25
@@ -46,7 +46,7 @@ module Minitag
46
46
  # @return [void]
47
47
  def add_filter(tag)
48
48
  if tag.start_with?('~')
49
- @exclusive_filters << tag[1..]
49
+ @exclusive_filters << tag[1..tag.length - 1]
50
50
  else
51
51
  @inclusive_filters << tag
52
52
  end
@@ -36,6 +36,21 @@ module Minitag
36
36
  Minitag.register_for_extension(self)
37
37
  end
38
38
 
39
+ def run_one_method(klass, method_name, reporter) # rubocop:disable Metrics/AbcSize
40
+ return super if !Minitag.skip_filtered? || Minitag.context.no_filters? ||
41
+ Minitag.context.match?(namespace: to_s, name: method_name)
42
+
43
+ # Skip this test
44
+ test = klass.new(method_name)
45
+ test.time = 0
46
+ skip = Minitest::Skip.new('This test did not match filters')
47
+ source = test.method(method_name).source_location
48
+ skip.set_backtrace(["#{source[0]}:#{source[1]}"])
49
+ test.failures << skip
50
+ reporter.prerecord(self, method_name)
51
+ reporter.record(Minitest::Result.from(test))
52
+ end
53
+
39
54
  # Decides which methods to run based on an Array of test names provided by
40
55
  # the superclass and the tags defined within test classes.
41
56
  #
@@ -46,7 +61,7 @@ module Minitag
46
61
  # @return [Array] the list of test names that should run.
47
62
  def runnable_methods
48
63
  methods = super.dup
49
- return methods if Minitag.context.no_filters?
64
+ return methods if Minitag.skip_filtered? || Minitag.context.no_filters?
50
65
 
51
66
  methods.select do |runnable_method|
52
67
  Minitag.context.match?(namespace: to_s, name: runnable_method)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minitag
4
- VERSION = '0.6.1'
4
+ VERSION = '0.7.0'
5
5
  end
data/lib/minitag.rb CHANGED
@@ -12,6 +12,8 @@ require 'minitag/tag_extension'
12
12
  # to Minitest::Test
13
13
  module Minitag
14
14
  class << self
15
+ attr_writer :skip_filtered
16
+
15
17
  # Registry of classes that requires extension by Minitag::TagExtension.
16
18
  def extension_registry
17
19
  @extension_registry ||= ExtensionRegistry.new
@@ -41,5 +43,10 @@ module Minitag
41
43
  def pending_tags=(tags)
42
44
  @pending_tags = Array(tags)
43
45
  end
46
+
47
+ # Whether to skip (true) or hide (false) filtered tests.
48
+ def skip_filtered?
49
+ @skip_filtered || false
50
+ end
44
51
  end
45
52
  end
@@ -10,11 +10,17 @@ module Minitest
10
10
  options[:tags] ||= []
11
11
  options[:tags] << tag.to_s.strip.downcase
12
12
  end
13
+
14
+ opts.on '--skip-filtered' do
15
+ options[:skip_filtered] = true
16
+ end
13
17
  end
14
18
 
15
19
  def self.plugin_minitag_init(options)
16
20
  Array(options[:tags]).each do |tag|
17
21
  Minitag.add_filter(tag)
18
22
  end
23
+
24
+ Minitag.skip_filtered = options.fetch(:skip_filtered, false)
19
25
  end
20
26
  end
data/minitag.gemspec CHANGED
@@ -23,9 +23,11 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ['lib']
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.17'
26
+ spec.add_development_dependency 'bundler', '>= 2.2.10'
27
27
  spec.add_development_dependency 'rake', '>= 12.3.3'
28
- spec.add_development_dependency 'rubocop', '~> 0.87.1'
28
+ spec.add_development_dependency 'rubocop', '~> 1.18'
29
29
 
30
30
  spec.add_dependency 'minitest', '~> 5.0'
31
+
32
+ spec.required_ruby_version = '>= 2.5.0'
31
33
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernardo de Araujo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2023-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: 2.2.10
20
20
  type: :development
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: '1.17'
26
+ version: 2.2.10
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.87.1
47
+ version: '1.18'
48
48
  type: :development
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: 0.87.1
54
+ version: '1.18'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '5.0'
69
- description:
69
+ description:
70
70
  email:
71
71
  - bernardo.amc@gmail.com
72
72
  executables: []
@@ -97,7 +97,7 @@ homepage: https://github.com/bernardoamc/minitag
97
97
  licenses:
98
98
  - MIT
99
99
  metadata: {}
100
- post_install_message:
100
+ post_install_message:
101
101
  rdoc_options: []
102
102
  require_paths:
103
103
  - lib
@@ -105,15 +105,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - ">="
107
107
  - !ruby/object:Gem::Version
108
- version: '0'
108
+ version: 2.5.0
109
109
  required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - ">="
112
112
  - !ruby/object:Gem::Version
113
113
  version: '0'
114
114
  requirements: []
115
- rubygems_version: 3.0.3
116
- signing_key:
115
+ rubygems_version: 3.4.10
116
+ signing_key:
117
117
  specification_version: 4
118
118
  summary: Provides the ability to tag your minitest tests.
119
119
  test_files: []