retest 1.6.2 → 1.9.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/Gemfile.lock +1 -1
- data/exe/retest +10 -3
- data/lib/retest/command.rb +0 -1
- data/lib/retest/options.rb +22 -22
- data/lib/retest/version.rb +1 -1
- data/lib/retest.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4a4d202f2a63a0cabc5afc27b9beb0c2bf4a6b71a02d7827246536cc82961ee
|
4
|
+
data.tar.gz: 6e9822b0c5153506ec6c3a3df5c5a05ecc9f56c946c1bb5e432f7b32068eb108
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77aabd6ad0bfd3b27b2c4ed2958cdeac3cc92bfe1e15cbf99bf88af6cfb3161ab455197d1dcfabc509477c03177827ff178fea4f6b8321984c7967cf7d972000
|
7
|
+
data.tar.gz: 75b55fe45e376a6a1f95ec46d258835be120826fe1a2a4644070ba213a4d1a1a41027818ed8fa6b4a45600c16b6c307d138a50db1ef7c9037e361246672eb4f0
|
data/Gemfile.lock
CHANGED
data/exe/retest
CHANGED
@@ -4,6 +4,8 @@ require 'retest'
|
|
4
4
|
|
5
5
|
$stdout.sync = true
|
6
6
|
|
7
|
+
Signal.trap(:INT) { $stdout.puts "Goodbye"; exit }
|
8
|
+
|
7
9
|
options = Retest::Options.new(ARGV)
|
8
10
|
|
9
11
|
if options.help?
|
@@ -30,16 +32,21 @@ if options.params[:diff]
|
|
30
32
|
return
|
31
33
|
end
|
32
34
|
|
35
|
+
launching_message = "Launching Retest..."
|
36
|
+
if options.force_polling?
|
37
|
+
launching_message = "Launching Retest with polling method..."
|
38
|
+
end
|
39
|
+
|
33
40
|
# Main action
|
34
41
|
|
35
|
-
$stdout.puts
|
36
|
-
|
42
|
+
$stdout.puts launching_message
|
43
|
+
Retest.listen(options) do |modified, added, removed|
|
37
44
|
begin
|
38
45
|
program.run(modified, added, removed)
|
39
46
|
rescue => e
|
40
47
|
$stdout.puts "Something went wrong: #{e.message}"
|
41
48
|
end
|
42
|
-
end
|
49
|
+
end
|
43
50
|
$stdout.puts "Ready to refactor! You can make file changes now"
|
44
51
|
|
45
52
|
# not blocking
|
data/lib/retest/command.rb
CHANGED
data/lib/retest/options.rb
CHANGED
@@ -13,13 +13,18 @@ module Retest
|
|
13
13
|
|
14
14
|
example <<~EOS
|
15
15
|
Runs a matching rails test after a file change
|
16
|
-
$ retest '
|
16
|
+
$ retest 'bin/rails test <test>'
|
17
17
|
$ retest --rails
|
18
18
|
EOS
|
19
19
|
|
20
|
+
example <<~EOS
|
21
|
+
Runs rubocop and matching rails test after a file change
|
22
|
+
$ retest 'rubocop <changed> && bin/rails test <test>'
|
23
|
+
EOS
|
24
|
+
|
20
25
|
example <<~EOS
|
21
26
|
Runs all rails tests after a file change
|
22
|
-
$ retest '
|
27
|
+
$ retest 'bin/rails test'
|
23
28
|
$ retest --rails --all
|
24
29
|
EOS
|
25
30
|
|
@@ -31,19 +36,17 @@ module Retest
|
|
31
36
|
example <<~EOS
|
32
37
|
Let retest identify which command to run
|
33
38
|
$ retest
|
34
|
-
$ retest --auto
|
35
39
|
EOS
|
36
40
|
|
37
41
|
example <<~EOS
|
38
42
|
Let retest identify which command to run for all tests
|
39
43
|
$ retest --all
|
40
|
-
$ retest --auto --all
|
41
44
|
EOS
|
42
45
|
|
43
46
|
example <<~EOS
|
44
47
|
Run a sanity check on changed files from a branch
|
48
|
+
$ retest --diff main
|
45
49
|
$ retest --diff origin/main --rails
|
46
|
-
$ retest --diff main --auto
|
47
50
|
EOS
|
48
51
|
end
|
49
52
|
|
@@ -51,7 +54,7 @@ module Retest
|
|
51
54
|
optional
|
52
55
|
desc <<~EOS
|
53
56
|
The test command to rerun when a file changes.
|
54
|
-
Use <test>
|
57
|
+
Use <test> or <changed> placeholders to tell retest where to reference the matching spec or the changed file in the command.
|
55
58
|
EOS
|
56
59
|
end
|
57
60
|
|
@@ -71,11 +74,6 @@ module Retest
|
|
71
74
|
desc "Run all the specs of a specificied ruby setup"
|
72
75
|
end
|
73
76
|
|
74
|
-
flag :auto do
|
75
|
-
long "--auto"
|
76
|
-
desc "Indentify repository setup and runs appropriate command"
|
77
|
-
end
|
78
|
-
|
79
77
|
flag :notify do
|
80
78
|
long "--notify"
|
81
79
|
desc "Play a sound when specs pass or fail (macOS only)"
|
@@ -87,6 +85,15 @@ module Retest
|
|
87
85
|
desc "Print usage"
|
88
86
|
end
|
89
87
|
|
88
|
+
option :polling do
|
89
|
+
long '--polling'
|
90
|
+
desc <<~DESC.strip
|
91
|
+
Use polling method when listening to file changes
|
92
|
+
Some filesystems won't work without it
|
93
|
+
VM/Vagrant Shared folders, NFS, Samba, sshfs...
|
94
|
+
DESC
|
95
|
+
end
|
96
|
+
|
90
97
|
flag :rspec do
|
91
98
|
long "--rspec"
|
92
99
|
desc "Shortcut for a standard RSpec setup"
|
@@ -130,23 +137,16 @@ module Retest
|
|
130
137
|
params[:all]
|
131
138
|
end
|
132
139
|
|
133
|
-
def auto?
|
134
|
-
return true if no_options_passed?
|
135
|
-
params[:auto]
|
136
|
-
end
|
137
|
-
|
138
140
|
def notify?
|
139
141
|
params[:notify]
|
140
142
|
end
|
141
143
|
|
142
|
-
def
|
143
|
-
|
144
|
+
def force_polling?
|
145
|
+
params[:polling]
|
144
146
|
end
|
145
147
|
|
146
|
-
|
147
|
-
|
148
|
-
def no_options_passed?
|
149
|
-
params.to_h.values.compact.uniq == ["\\.rb$", false]
|
148
|
+
def extension
|
149
|
+
Regexp.new(params[:ext])
|
150
150
|
end
|
151
151
|
end
|
152
152
|
end
|
data/lib/retest/version.rb
CHANGED
data/lib/retest.rb
CHANGED
@@ -16,4 +16,10 @@ require "retest/sounds"
|
|
16
16
|
|
17
17
|
module Retest
|
18
18
|
class Error < StandardError; end
|
19
|
+
|
20
|
+
def self.listen(options, listener: Listen)
|
21
|
+
listener.to('.', only: options.extension, relative: true, force_polling: options.force_polling?) do |modified, added, removed|
|
22
|
+
yield modified, added, removed
|
23
|
+
end.start
|
24
|
+
end
|
19
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: retest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Barret
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: string-similarity
|