retest 1.8.0 → 1.10.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: 89898cfd99c7a977326f854924113de57fe34273748eaabadae36ebf8a9995db
4
- data.tar.gz: cbdd88f75d340d6ea46bc878ee9083a4b335b25c0014d3cf72de18dbe1bb3b2a
3
+ metadata.gz: ec0496e89c678c022c2e9f07edc70d9bb9f10e80ff9be3079ea1c00242e35920
4
+ data.tar.gz: a8b2c71b0be9ed265a1c04d1276c9a2ad84919a5349956fcaa5c5b497d241445
5
5
  SHA512:
6
- metadata.gz: cac17fe3587fa15b76f6c6fc13463bc5b9d5d3cfe2ca8d8ca57e67b7a5cbdb630905f3d74ddbeea00c1a3b16a176928222db29b10ecf6ad684020718519966e5
7
- data.tar.gz: 3f6b4e80e958f5de28fd35e2c0c32954d96061729190d9d88228c7fd0c1cdf8c176afcf3f45cbd9e7f48cfead91834cd5fe4f8ba26db6a804b9f163fafd6a32c
6
+ metadata.gz: c1754d242669324f364419af2718449fb337435596079f3bce0b8ba54cce782af9480f1eb98635cf3e84901c0e478aaeeefa6e59d4c2953807dfb9ce54efbe14
7
+ data.tar.gz: 27771c70fada9ebcd67460982bf0d2a1d5b1440eee17b58328a674a5cba2e54fa3b2ab63a3e61c0a96634e4e5567a8ac3c8bd6b89b5e119a432dc0fecb7cdb48
@@ -52,6 +52,7 @@ jobs:
52
52
  - rails-app
53
53
  - rspec-rails
54
54
  - rspec-ruby
55
+ - bundler-app
55
56
  steps:
56
57
  - uses: actions/checkout@v2
57
58
  - name: Set up Ruby
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ .ruby-version
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- retest (1.8.0)
4
+ retest (1.10.0)
5
5
  listen (~> 3.2)
6
6
  string-similarity (~> 2.1)
7
7
  tty-option (~> 0.1)
@@ -16,7 +16,7 @@ GEM
16
16
  rb-inotify (~> 0.9, >= 0.9.10)
17
17
  minitest (5.15.0)
18
18
  rake (12.3.3)
19
- rb-fsevent (0.11.1)
19
+ rb-fsevent (0.11.2)
20
20
  rb-inotify (0.10.1)
21
21
  ffi (~> 1.0)
22
22
  string-similarity (2.1.0)
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+
3
+ bundle install
4
+ bundle exec rake build
5
+ ls -t pkg | head -n1 | xargs -I {} mv pkg/{} features/bundler-app/retest.gem
6
+ docker-compose -f features/bundler-app/docker-compose.yml up --build --exit-code-from retest
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?
@@ -23,7 +23,7 @@ module Retest
23
23
  test_files.each { |test_file| puts " - #{test_file}" }
24
24
 
25
25
  puts "Running tests..."
26
- runner.run_all_tests command.format_batch(test_files)
26
+ runner.run_all_tests command.format_batch(*test_files)
27
27
  end
28
28
  end
29
29
  end
@@ -2,15 +2,16 @@ require 'forwardable'
2
2
 
3
3
  module Retest
4
4
  class TestOptions
5
- def self.for(path, files: [])
6
- new(path, files: files).filtered_results
5
+ def self.for(path, files: [], limit: nil)
6
+ new(path, files: files, limit: limit).filtered_results
7
7
  end
8
8
 
9
9
  attr_reader :path, :files
10
10
 
11
- def initialize(path, files: [])
11
+ def initialize(path, files: [], limit: 5)
12
12
  @path = Path.new(path)
13
13
  @files = files
14
+ @limit = limit || 5
14
15
  end
15
16
 
16
17
  def filtered_results
@@ -27,7 +28,7 @@ module Retest
27
28
 
28
29
  def possible_tests
29
30
  @possible_tests ||= filter_by_string_similarities(path, files)
30
- .last(5)
31
+ .last(@limit)
31
32
  .reverse
32
33
  end
33
34
 
@@ -62,11 +63,11 @@ module Retest
62
63
  end
63
64
 
64
65
  def test?
65
- test_regex =~ to_s
66
+ test_regexs.any? { |regex| regex =~ to_s }
66
67
  end
67
68
 
68
69
  def possible_test?(file)
69
- possible_test_regex =~ file
70
+ possible_test_regexs.any? { |regex| regex =~ file }
70
71
  end
71
72
 
72
73
  def similarity_score(file)
@@ -75,12 +76,22 @@ module Retest
75
76
 
76
77
  private
77
78
 
78
- def test_regex
79
- Regexp.new(".*(?:spec|test)#{extname}")
79
+ def test_regexs
80
+ [
81
+ Regexp.new("^(.*\/)?.*_(?:spec|test)#{extname}$"),
82
+ Regexp.new("^(.*\/)?(?:spec|test)_.*#{extname}$"),
83
+ ]
80
84
  end
81
85
 
82
- def possible_test_regex
83
- Regexp.new(".*#{basename(extname)}_(?:spec|test)#{extname}")
86
+ def possible_test_regexs
87
+ [
88
+ Regexp.new("^(.*\/)?.*#{filename}_(?:spec|test)#{extname}$"),
89
+ Regexp.new("^(.*\/)?.*(?:spec|test)_#{filename}#{extname}$"),
90
+ ]
91
+ end
92
+
93
+ def filename
94
+ basename(extname)
84
95
  end
85
96
  end
86
97
  end
@@ -1,3 +1,3 @@
1
1
  module Retest
2
- VERSION = "1.8.0"
2
+ VERSION = "1.10.0"
3
3
  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.8.0
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Barret
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-23 00:00:00.000000000 Z
11
+ date: 2022-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: string-similarity
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.1'
55
- description:
55
+ description:
56
56
  email:
57
57
  - alex@abletech.nz
58
58
  executables:
@@ -62,7 +62,6 @@ extra_rdoc_files: []
62
62
  files:
63
63
  - ".github/workflows/ci.yml"
64
64
  - ".gitignore"
65
- - ".ruby-version"
66
65
  - Gemfile
67
66
  - Gemfile.lock
68
67
  - LICENSE.txt
@@ -72,6 +71,7 @@ files:
72
71
  - bin/console
73
72
  - bin/debug
74
73
  - bin/setup
74
+ - bin/test/bundler-app
75
75
  - bin/test/git-ruby
76
76
  - bin/test/hanami-app
77
77
  - bin/test/rails-app
@@ -109,7 +109,7 @@ licenses:
109
109
  metadata:
110
110
  homepage_uri: https://github.com/AlexB52/retest
111
111
  source_code_uri: https://github.com/AlexB52/retest
112
- post_install_message:
112
+ post_install_message:
113
113
  rdoc_options: []
114
114
  require_paths:
115
115
  - lib
@@ -124,8 +124,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  requirements: []
127
- rubygems_version: 3.1.6
128
- signing_key:
127
+ rubygems_version: 3.3.7
128
+ signing_key:
129
129
  specification_version: 4
130
130
  summary: A simple command line tool to watch file change and run its matching spec.
131
131
  test_files: []
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.7.5