guard-minitest 2.1.3 → 2.2.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
  SHA1:
3
- metadata.gz: 03fcf735ea315aeea1180da2950b3a10c51d3d93
4
- data.tar.gz: 374bb02df4b1f3331f436ad951ec398d5dd1b700
3
+ metadata.gz: 0a09241c76a0ba099f355b5e3eaab0f2c19f70f9
4
+ data.tar.gz: 7ccf0058158fead7d166775673bb6c195d378ba6
5
5
  SHA512:
6
- metadata.gz: 74e3e84be1e2643cd5f2e12c878e4972d708f9930dabbf8b9aeb78ec22c36cccedf282a04744ab045cfacabf7b6e2159a9fbc7455c0c6ff06f4eb7b2443fb795
7
- data.tar.gz: 8f67befd05e5da8f3309a468b5e4ec901f90429abf581a1b7b02b92b9adf7c207b2516ff8a1ecf14527add07d3acc5918eb2d2188d8443bcaead5864140a880e
6
+ metadata.gz: 1aab8e10cc6c4e63086298a1ed20e309192ba73121ea0b8b5c9b61869ce6dbfebf10e67a4fd65e6257cc8dd0cbc33ae3822e8d95a6f36c9667495c747644a06c
7
+ data.tar.gz: d018ea3126b79602c3931a30a225362da779d3959fa36e5a5a620ba393c54da06228595c83c42a5d3252e31012d84800a43bd20871b3453cd6eab7b5f0aa3865
data/README.md CHANGED
@@ -70,9 +70,9 @@ Please read [guard doc](http://github.com/guard/guard#readme) for more info abou
70
70
 
71
71
  ```ruby
72
72
  guard :minitest do
73
- watch(%r{^test/(.*)\/?test_(.*)\.rb})
74
- watch(%r{^lib/(.*/)?([^/]+)\.rb}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
75
- watch(%r{^test/test_helper\.rb}) { 'test' }
73
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
74
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
75
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
76
76
  end
77
77
  ```
78
78
 
@@ -80,9 +80,9 @@ end
80
80
 
81
81
  ```ruby
82
82
  guard :minitest do
83
- watch(%r{^spec/(.*)_spec\.rb})
84
- watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
85
- watch(%r{^spec/spec_helper\.rb}) { 'spec' }
83
+ watch(%r{^spec/(.*)_spec\.rb$})
84
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
85
+ watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
86
86
  end
87
87
  ```
88
88
 
@@ -92,6 +92,7 @@ end
92
92
 
93
93
  ```ruby
94
94
  all_on_start: false # run all tests in group on startup, default: true
95
+ all_after_pass: true # run all tests in group after changed specs pass, default: false
95
96
  cli: '--test' # pass arbitrary Minitest CLI arguments, default: ''
96
97
  test_folders: ['tests'] # specify an array of paths that contain test files, default: %w[test spec]
97
98
  include: ['lib'] # specify an array of include paths to the command that runs the tests
@@ -4,19 +4,18 @@ require 'guard/plugin'
4
4
  module Guard
5
5
  class Minitest < Plugin
6
6
 
7
- require 'guard/minitest/inspector'
8
7
  require 'guard/minitest/runner'
9
8
  require 'guard/minitest/utils'
10
9
  require 'guard/minitest/version'
11
10
 
11
+ attr_accessor :runner
12
+
12
13
  def initialize(options = {})
13
14
  super
14
15
  @options = {
15
16
  all_on_start: true
16
17
  }.merge(options)
17
-
18
- @runner = Runner.new(@options)
19
- @inspector = Inspector.new(@runner.test_folders, @runner.test_file_patterns)
18
+ @runner = Runner.new(@options)
20
19
  end
21
20
 
22
21
  def start
@@ -33,22 +32,19 @@ module Guard
33
32
  end
34
33
 
35
34
  def run_all
36
- paths = @inspector.clean_all
37
- @runner.run(paths, message: 'Running all tests')
35
+ runner.run_all
38
36
  end
39
37
 
40
- def run_on_changes(paths = [])
41
- paths = @inspector.clean(paths)
42
- @runner.run(paths)
38
+ def run_on_modifications(paths = [])
39
+ runner.run_on_modifications(paths)
43
40
  end
44
41
 
45
42
  def run_on_additions(paths)
46
- @inspector.clear_memoized_test_files
47
- @runner.run(paths)
43
+ runner.run_on_additions(paths)
48
44
  end
49
45
 
50
46
  def run_on_removals(paths)
51
- @inspector.clear_memoized_test_files
47
+ runner.run_on_removals(paths)
52
48
  end
53
49
 
54
50
  end
@@ -25,7 +25,11 @@ module Guard
25
25
  end
26
26
 
27
27
  def clear_memoized_test_files
28
- @_all_test_files = nil
28
+ @all_test_files = nil
29
+ end
30
+
31
+ def all_test_files
32
+ @all_test_files ||= _test_files_for_paths
29
33
  end
30
34
 
31
35
  private
@@ -37,12 +41,8 @@ module Guard
37
41
  Dir["#{paths}/**/#{files}"]
38
42
  end
39
43
 
40
- def _all_test_files
41
- @_all_test_files ||= _test_files_for_paths
42
- end
43
-
44
44
  def _test_file?(path)
45
- _all_test_files.include?(path)
45
+ _test_files_for_paths.include?(path)
46
46
  end
47
47
 
48
48
  def _join_for_glob(fragments)
@@ -1,13 +1,13 @@
1
+ require 'guard/minitest/inspector'
2
+
1
3
  module Guard
2
4
  class Minitest
3
5
  class Runner
4
-
5
- def self.run(paths = [], options = {})
6
- new(options).run(paths, options)
7
- end
6
+ attr_accessor :inspector
8
7
 
9
8
  def initialize(options = {})
10
9
  @options = {
10
+ all_after_pass: false,
11
11
  bundler: File.exist?("#{Dir.pwd}/Gemfile"),
12
12
  rubygems: false,
13
13
  drb: false,
@@ -24,10 +24,12 @@ module Guard
24
24
  [:test_folders, :test_file_patterns].each do |k|
25
25
  @options[k] = Array(@options[k]).uniq.compact
26
26
  end
27
+
28
+ @inspector = Inspector.new(test_folders, test_file_patterns)
27
29
  end
28
30
 
29
31
  def run(paths, options = {})
30
- message = options[:message] || "Running: #{paths.join(' ')}"
32
+ message = "Running: #{options[:all] ? 'all tests' : paths.join(' ')}"
31
33
  UI.info message, reset: true
32
34
 
33
35
  status = if bundler?
@@ -48,7 +50,30 @@ module Guard
48
50
  ::Guard::Notifier.notify(message, title: 'Minitest results', image: status ? :success : :failed)
49
51
  end
50
52
 
51
- status
53
+ if @options[:all_after_pass] && status && !options[:all]
54
+ run_all
55
+ else
56
+ status
57
+ end
58
+ end
59
+
60
+ def run_all
61
+ paths = inspector.clean_all
62
+ run(paths, all: true)
63
+ end
64
+
65
+ def run_on_modifications(paths = [])
66
+ paths = inspector.clean(paths)
67
+ run(paths, all: all_paths?(paths))
68
+ end
69
+
70
+ def run_on_additions(paths)
71
+ inspector.clear_memoized_test_files
72
+ true
73
+ end
74
+
75
+ def run_on_removals(paths)
76
+ inspector.clear_memoized_test_files
52
77
  end
53
78
 
54
79
  def cli_options
@@ -75,6 +100,10 @@ module Guard
75
100
  @options[:spring].is_a?(String) || @options[:spring]
76
101
  end
77
102
 
103
+ def all_after_pass?
104
+ @options[:all_after_pass]
105
+ end
106
+
78
107
  def test_folders
79
108
  @options[:test_folders]
80
109
  end
@@ -156,6 +185,10 @@ module Guard
156
185
  paths.map { |p| "./#{p}" }
157
186
  end
158
187
 
188
+ def all_paths?(paths)
189
+ paths == inspector.all_test_files
190
+ end
191
+
159
192
  def parse_deprecated_options
160
193
  if @options.key?(:notify)
161
194
  UI.info %{DEPRECATION WARNING: The :notify option is deprecated. Guard notification configuration is used.}
@@ -1,25 +1,25 @@
1
1
  guard :minitest do
2
2
  # with Minitest::Unit
3
- watch(%r{^test/(.*)\/?test_(.*)\.rb})
4
- watch(%r{^lib/(.*/)?([^/]+)\.rb}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
5
- watch(%r{^test/test_helper\.rb}) { 'test' }
3
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
4
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
5
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
6
6
 
7
7
  # with Minitest::Spec
8
- # watch(%r{^spec/(.*)_spec\.rb})
9
- # watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
10
- # watch(%r{^spec/spec_helper\.rb}) { 'spec' }
8
+ # watch(%r{^spec/(.*)_spec\.rb$})
9
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
10
+ # watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
11
11
 
12
12
  # Rails 4
13
- # watch(%r{^app/(.+)\.rb}) { |m| "test/#{m[1]}_test.rb" }
14
- # watch(%r{^app/controllers/application_controller\.rb}) { 'test/controllers' }
15
- # watch(%r{^app/controllers/(.+)_controller\.rb}) { |m| "test/integration/#{m[1]}_test.rb" }
13
+ # watch(%r{^app/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
14
+ # watch(%r{^app/controllers/application_controller\.rb$}) { 'test/controllers' }
15
+ # watch(%r{^app/controllers/(.+)_controller\.rb$}) { |m| "test/integration/#{m[1]}_test.rb" }
16
16
  # watch(%r{^app/views/(.+)_mailer/.+}) { |m| "test/mailers/#{m[1]}_mailer_test.rb" }
17
- # watch(%r{^lib/(.+)\.rb}) { |m| "test/lib/#{m[1]}_test.rb" }
18
- # watch(%r{^test/.+_test\.rb})
19
- # watch(%r{^test/test_helper\.rb}) { 'test' }
17
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "test/lib/#{m[1]}_test.rb" }
18
+ # watch(%r{^test/.+_test\.rb$})
19
+ # watch(%r{^test/test_helper\.rb$}) { 'test' }
20
20
 
21
21
  # Rails < 4
22
- # watch(%r{^app/controllers/(.*)\.rb}) { |m| "test/functional/#{m[1]}_test.rb" }
23
- # watch(%r{^app/helpers/(.*)\.rb}) { |m| "test/helpers/#{m[1]}_test.rb" }
24
- # watch(%r{^app/models/(.*)\.rb}) { |m| "test/unit/#{m[1]}_test.rb" }
22
+ # watch(%r{^app/controllers/(.*)\.rb$}) { |m| "test/functional/#{m[1]}_test.rb" }
23
+ # watch(%r{^app/helpers/(.*)\.rb$}) { |m| "test/helpers/#{m[1]}_test.rb" }
24
+ # watch(%r{^app/models/(.*)\.rb$}) { |m| "test/unit/#{m[1]}_test.rb" }
25
25
  end
@@ -1,7 +1,7 @@
1
1
  module Guard
2
2
  class MinitestVersion
3
3
 
4
- VERSION = '2.1.3'
4
+ VERSION = '2.2.0'
5
5
 
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Lugrin
@@ -9,48 +9,48 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-13 00:00:00.000000000 Z
12
+ date: 2014-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '2.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '2.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: minitest
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '3.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  description: Guard::Minitest automatically run your tests with Minitest framework
@@ -61,6 +61,10 @@ executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
+ - CHANGELOG.md
65
+ - LICENSE
66
+ - README.md
67
+ - lib/guard/minitest.rb
64
68
  - lib/guard/minitest/inspector.rb
65
69
  - lib/guard/minitest/notifier.rb
66
70
  - lib/guard/minitest/reporter.rb
@@ -70,11 +74,7 @@ files:
70
74
  - lib/guard/minitest/templates/Guardfile
71
75
  - lib/guard/minitest/utils.rb
72
76
  - lib/guard/minitest/version.rb
73
- - lib/guard/minitest.rb
74
77
  - lib/minitest/guard_minitest_plugin.rb
75
- - CHANGELOG.md
76
- - LICENSE
77
- - README.md
78
78
  homepage: https://rubygems.org/gems/guard-minitest
79
79
  licenses:
80
80
  - MIT
@@ -85,17 +85,17 @@ require_paths:
85
85
  - lib
86
86
  required_ruby_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: 1.9.2
91
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - '>='
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  requirements: []
97
97
  rubyforge_project:
98
- rubygems_version: 2.0.3
98
+ rubygems_version: 2.2.0
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Guard plugin for the Minitest framework