retest 1.8.0 → 1.10.0

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
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