minitest-focus 1.1.1 → 1.3.1

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
- SHA1:
3
- metadata.gz: 91e484220abdaac05a44cc94aae1f1ecaf490a43
4
- data.tar.gz: d318bbb58af9200ee0c239e812b5072d7c46c9bb
2
+ SHA256:
3
+ metadata.gz: 34dbd2617058d83323bc7e66b0fc842b4bc7d3bcdbc89a53c5338d0a0c2ac50c
4
+ data.tar.gz: bd8aa9bef1a614ae2620f45ecf85b6dcdfe8858a93b846c31af4f4d8b32d59e8
5
5
  SHA512:
6
- metadata.gz: 24af3861763a6dbf76e03754b139863122b22948abb37e1d8002a6675c1c4289f3924b5a228712a8858b14c878e88db3a27a2f06840c550241d5533acdbfde3b
7
- data.tar.gz: 3787d6ad7040348be68e9067adaede54c6499a7a62d37217799e51bc0663e4f3683372cf945db39cf6f0812e5bd24378f16df0a74ebb6acf675c8ac3321bbad5
6
+ metadata.gz: 45f19c7c909942e9ce71dce0f734f316dcfd98d5b8cc64088454611d4aa1055dd7547be06ea7c000db44b314477d5104c2bf79155a687a9d545e903fd100b705
7
+ data.tar.gz: 4cc6a394a4f36d153bafe5b83753f2a90c045621b592964eb5c706eb72700166e04c05076fa59de9f4b4a8cb58e6eaa0265feda76682dcd596a71ec4e308af6b
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,38 @@
1
+ === 1.3.1 / 2021-05-26
2
+
3
+ * 1 bug fix:
4
+
5
+ * Fixed missing require. (ryanseys)
6
+
7
+ === 1.3.0 / 2021-05-22
8
+
9
+ * 1 major enhancement:
10
+
11
+ * Removed minitest4 support.
12
+
13
+ * 2 minor enhancements:
14
+
15
+ * Added support for `focus def test_method`.
16
+ * Improved documentation for both test- and spec-style.
17
+
18
+ === 1.2.1 / 2020-06-14
19
+
20
+ * 1 bug fix:
21
+
22
+ * Prevent a crash if the gem is installed but never required. (dazuma)
23
+
24
+ === 1.2.0 / 2020-05-15
25
+
26
+ * 1 major enhancement:
27
+
28
+ * Converted to a minitest plugin. (jbourassa)
29
+
30
+ === 1.1.2 / 2015-07-25
31
+
32
+ * 1 bug fix:
33
+
34
+ * Fixed focus handling when run under Rake's rake_test_loader.rb.
35
+
1
36
  === 1.1.1 / 2015-03-12
2
37
 
3
38
  * 1 minor enhancement:
@@ -16,4 +51,3 @@
16
51
  * 1 major enhancement
17
52
 
18
53
  * Birthday!
19
-
data/Manifest.txt CHANGED
@@ -4,6 +4,5 @@ Manifest.txt
4
4
  README.txt
5
5
  Rakefile
6
6
  lib/minitest/focus.rb
7
- lib/minitest/focus4.rb
8
- lib/minitest/focus5.rb
7
+ lib/minitest/focus_plugin.rb
9
8
  test/minitest/test_focus.rb
data/README.txt CHANGED
@@ -23,17 +23,26 @@ Inspired by https://github.com/seattlerb/minitest/issues/213
23
23
  require "minitest/focus"
24
24
 
25
25
  class MyTest < MiniTest::Unit::TestCase
26
- def test_unrelated; ...; end
26
+ def test_unrelated; ...; end # will NOT run
27
+
28
+ focus def test_method2; ...; end # will run (direct--preferred)
27
29
 
28
30
  focus
29
- def test_method; ...; end # only this one will run
31
+ def test_method; ...; end # will run (indirect)
32
+
33
+ def test_method_edgecase; ...; end # will NOT run
34
+ end
35
+
36
+ # or, with spec-style:
30
37
 
31
- def test_method_edgecase; ...; end
38
+ describe "MyTest2" do
39
+ focus; it "does something" do pass end
40
+ focus it("does something else") { pass } # block precedence needs {}
32
41
  end
33
42
 
34
43
  == REQUIREMENTS:
35
44
 
36
- * minitest 4.3.4+
45
+ * minitest 5+
37
46
 
38
47
  == INSTALL:
39
48
 
@@ -1,7 +1,61 @@
1
- begin
2
- require "minitest/test"
3
- require "minitest/focus5.rb"
4
- rescue LoadError
5
- require "minitest/unit"
6
- require "minitest/focus4.rb"
1
+ require "minitest/test"
2
+
3
+ class Minitest::Test # :nodoc:
4
+ class Focus # :nodoc:
5
+ VERSION = "1.3.1" # :nodoc:
6
+ end
7
+
8
+ @@filtered_names = [] # :nodoc:
9
+
10
+ def self.add_to_filter name
11
+ @@filtered_names << "#{self}##{name}"
12
+ end
13
+
14
+ def self.filtered_names
15
+ @@filtered_names
16
+ end
17
+
18
+ ##
19
+ # Focus on the next test defined. Cumulative. Equivalent to
20
+ # running with command line arg: -n /test_name|.../
21
+ #
22
+ # class MyTest < Minitest::Test
23
+ #
24
+ # # direct approach
25
+ # focus def test_method1 # will run
26
+ # ...
27
+ # end
28
+ #
29
+ # # indirect approach
30
+ # focus
31
+ # def test_method2 # will run
32
+ # ...
33
+ # end
34
+ #
35
+ # def test_method3 # will NOT run
36
+ # ...
37
+ # end
38
+ # end
39
+
40
+ def self.focus name = nil
41
+ if name then
42
+ add_to_filter name
43
+ else
44
+ set_focus_trap
45
+ end
46
+ end
47
+
48
+ ##
49
+ # Sets a one-off method_added callback to set focus on the method
50
+ # defined next.
51
+
52
+ def self.set_focus_trap
53
+ meta = class << self; self; end
54
+
55
+ meta.send :define_method, :method_added do |name|
56
+ add_to_filter name
57
+
58
+ meta.send :remove_method, :method_added
59
+ end
60
+ end
7
61
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Minitest
4
+ def self.plugin_focus_options(_opts, options)
5
+ return unless Minitest::Test.respond_to? :filtered_names
6
+ return if Minitest::Test.filtered_names.empty?
7
+
8
+ index = ARGV.index { |arg| arg =~ /^-n/ || arg =~ /^--name/ }
9
+ if index
10
+ warn 'Ignoring -n / --name, using `focus` filters instead'
11
+ ARGV.delete_at index
12
+ end
13
+
14
+ re = "/^(#{Regexp.union(Minitest::Test.filtered_names).source})$/"
15
+
16
+ options[:filter] = re
17
+ end
18
+ end
@@ -1,17 +1,19 @@
1
1
  require "minitest/autorun"
2
2
  require "minitest/focus"
3
3
 
4
- test_cls = defined?(Minitest::Test) ? Minitest::Test : MiniTest::Unit::TestCase
5
-
6
- class MyTest1 < test_cls
4
+ class MyTest1 < Minitest::Test
7
5
  def test_fail; flunk; end
8
6
  focus; def test_method; pass; end
7
+ focus def test_method2; pass; end
8
+ focus \
9
+ def test_method3; pass; end
9
10
  def test_method_edgecase; flunk; end
10
11
  end
11
12
 
12
13
  describe "MyTest2" do
13
14
  it "is ignored" do flunk end
14
15
  focus; it "does something" do pass end
16
+ focus it("does something else") { pass } # stupid block precedence needs {}
15
17
  it "bombs" do flunk end
16
18
  focus; it "has non-word ['chars'" do pass end # Will raise invalid RegExp unless correctly escaped
17
19
  end
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-focus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBAjANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE0MDkxNzIzMDcwN1oXDTE1MDkxNzIzMDcwN1owRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIwMTIyMjIwMzgzMFoXDTIxMTIyMjIwMzgzMFowRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -21,64 +21,70 @@ cert_chain:
21
21
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
- HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
25
- AQAFoDJRokCQdxFfOrmsKX41KOFlU/zjrbDVM9hgB/Ur999M6OXGSi8FitXNtMwY
26
- FVjsiAPeU7HaWVVcZkj6IhINelTkXsxgGz/qCzjHy3iUMuZWw36cS0fiWJ5rvH+e
27
- hD7uXxJSFuyf1riDGI1aeWbQ74WMwvNstOxLUMiV5a1fzBhlxPqb537ubDjq/M/h
28
- zPUFPVYeL5KjDHLCqI2FwIk2sEMOQgjpXHzl+3NlD2LUgUhHDMevmgVua0e2GT1B
29
- xJcC6UN6NHMOVMyAXsr2HR0gRRx4ofN1LoP2KhXzSr8UMvQYlwPmE0N5GQv1b5AO
30
- VpzF30vNaJK6ZT7xlIsIlwmH
24
+ HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
+ AQAE3XRm1YZcCVjAJy5yMZvTOFrS7B2SYErc+0QwmKYbHztTTDY2m5Bii+jhpuxh
26
+ H+ETcU1z8TUKLpsBUP4kUpIRowkVN1p/jKapV8T3Rbwq+VuYFe+GMKsf8wGZSecG
27
+ oMQ8DzzauZfbvhe2kDg7G9BBPU0wLQlY25rDcCy9bLnD7R0UK3ONqpwvsI5I7x5X
28
+ ZIMXR0a9/DG+55mawwdGzCQobDKiSNLK89KK7OcNTALKU0DfgdTkktdgKchzKHqZ
29
+ d/AHw/kcnU6iuMUoJEcGiJd4gVCTn1l3cDcIvxakGslCA88Jubw0Sqatan0TnC9g
30
+ KToW560QIey7SPfHWduzFJnV
31
31
  -----END CERTIFICATE-----
32
- date: 2015-03-12 00:00:00.000000000 Z
32
+ date: 2021-05-26 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: minitest
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4'
41
- - - <
41
+ - - "<"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '6'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - '>='
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
50
  version: '4'
51
- - - <
51
+ - - "<"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '6'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rdoc
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ~>
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '4.0'
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '7'
61
64
  type: :development
62
65
  prerelease: false
63
66
  version_requirements: !ruby/object:Gem::Requirement
64
67
  requirements:
65
- - - ~>
68
+ - - ">="
66
69
  - !ruby/object:Gem::Version
67
70
  version: '4.0'
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '7'
68
74
  - !ruby/object:Gem::Dependency
69
75
  name: hoe
70
76
  requirement: !ruby/object:Gem::Requirement
71
77
  requirements:
72
- - - ~>
78
+ - - "~>"
73
79
  - !ruby/object:Gem::Version
74
- version: '3.13'
80
+ version: '3.22'
75
81
  type: :development
76
82
  prerelease: false
77
83
  version_requirements: !ruby/object:Gem::Requirement
78
84
  requirements:
79
- - - ~>
85
+ - - "~>"
80
86
  - !ruby/object:Gem::Version
81
- version: '3.13'
87
+ version: '3.22'
82
88
  description: |-
83
89
  Allows you to focus on a few tests with ease without having to use
84
90
  command-line arguments. Good for tools like guard that don't have
@@ -95,40 +101,38 @@ extra_rdoc_files:
95
101
  - Manifest.txt
96
102
  - README.txt
97
103
  files:
98
- - .autotest
99
- - .gemtest
104
+ - ".autotest"
100
105
  - History.txt
101
106
  - Manifest.txt
102
107
  - README.txt
103
108
  - Rakefile
104
109
  - lib/minitest/focus.rb
105
- - lib/minitest/focus4.rb
106
- - lib/minitest/focus5.rb
110
+ - lib/minitest/focus_plugin.rb
107
111
  - test/minitest/test_focus.rb
108
112
  homepage: https://github.com/seattlerb/minitest-focus
109
113
  licenses:
110
114
  - MIT
111
- metadata: {}
112
- post_install_message:
115
+ metadata:
116
+ homepage_uri: https://github.com/seattlerb/minitest-focus
117
+ post_install_message:
113
118
  rdoc_options:
114
- - --main
119
+ - "--main"
115
120
  - README.txt
116
121
  require_paths:
117
122
  - lib
118
123
  required_ruby_version: !ruby/object:Gem::Requirement
119
124
  requirements:
120
- - - '>='
125
+ - - ">="
121
126
  - !ruby/object:Gem::Version
122
127
  version: '0'
123
128
  required_rubygems_version: !ruby/object:Gem::Requirement
124
129
  requirements:
125
- - - '>='
130
+ - - ">="
126
131
  - !ruby/object:Gem::Version
127
132
  version: '0'
128
133
  requirements: []
129
- rubyforge_project:
130
- rubygems_version: 2.4.5
131
- signing_key:
134
+ rubygems_version: 3.2.16
135
+ signing_key:
132
136
  specification_version: 4
133
137
  summary: Allows you to focus on a few tests with ease without having to use command-line
134
138
  arguments
metadata.gz.sig CHANGED
Binary file
data/.gemtest DELETED
File without changes
@@ -1,26 +0,0 @@
1
- class MiniTest::Unit::TestCase # :nodoc:
2
- ##
3
- # Focus on the next test defined. Cumulative. Equivalent to
4
- # running with command line arg: -n /test_name|.../
5
- #
6
- # class MyTest < MiniTest::Unit::TestCase
7
- # ...
8
- # focus
9
- # def test_pass; ... end # this one will run
10
- # ...
11
- # end
12
-
13
- def self.focus
14
- opts = MiniTest::Unit.runner.options
15
- meta = class << self; self; end
16
-
17
- opts[:names] ||= []
18
-
19
- meta.send :define_method, :method_added do |name|
20
- opts[:names] << name.to_s
21
- opts[:filter] = "/^(#{Regexp.union(opts[:names]).source})$/"
22
-
23
- meta.send :remove_method, :method_added
24
- end
25
- end
26
- end
@@ -1,37 +0,0 @@
1
- class Minitest::Test # :nodoc:
2
- class Focus # :nodoc:
3
- VERSION = "1.1.1" # :nodoc:
4
- end
5
-
6
- @@filtered_names = [] # :nodoc:
7
-
8
- ##
9
- # Focus on the next test defined. Cumulative. Equivalent to
10
- # running with command line arg: -n /test_name|.../
11
- #
12
- # class MyTest < MiniTest::Unit::TestCase
13
- # ...
14
- # focus
15
- # def test_pass; ... end # this one will run
16
- # ...
17
- # end
18
-
19
- def self.focus
20
- meta = class << self; self; end
21
-
22
- meta.send :define_method, :method_added do |name|
23
- @@filtered_names << "#{self}##{name}"
24
- filter = "/^(#{Regexp.union(@@filtered_names).source})$/"
25
-
26
- index = ARGV.index("-n")
27
- unless index then
28
- index = ARGV.size
29
- ARGV << "-n"
30
- end
31
-
32
- ARGV[index + 1] = filter
33
-
34
- meta.send :remove_method, :method_added
35
- end
36
- end
37
- end