retest 0.4.1 → 0.6.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: 9e6c73bd5706c122dee68acdb92dfca665a74492305529fa99c4d80103c6d168
4
- data.tar.gz: 19316bc71ded84cd88a5153cd823d3349ecab93b22c7cf67d4ce2727eaf96f24
3
+ metadata.gz: e1d5cde47e268fbb49f94510bb8bde3398974672fae9ad770dbe85f542764e6d
4
+ data.tar.gz: db1d76a1b2329a2e1619a34778c305280cbc50d2b99fd87998ae0c1b3406fb1b
5
5
  SHA512:
6
- metadata.gz: dcfda7049983085a516331b968a45138079afe95816000eec33f36254737b751557646363b639e73bf1dd7f9078db594082544a0ded74a3817b66245b732846b
7
- data.tar.gz: 574eccec94ab742f2fa83123032bfe8214b46a135a86a5d4b56b4186809c90c760c35d378828ee227c1bcb76d163bc8aa0dc788622e58e3d90cb162a686608f8
6
+ metadata.gz: 9ed11c05236d2f50d54b644d02fa1c37c9d928f7a6b452e60a5ea9c23deab95d6e7a3e178f3047b3dcbce945c0cf9bee3e31682fd9b53d1f7df4b01a2303d476
7
+ data.tar.gz: 417d8fb0439869a1be651efa2daece0cf1a1fab705495a4bc72b9827355fb054f34e3c93d92177be8a43aba028b36c2c876bc70801ba71083ca832da9efda731
@@ -0,0 +1,39 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ main ]
13
+ pull_request:
14
+ branches: [ main ]
15
+
16
+ jobs:
17
+ test:
18
+ runs-on: ${{ matrix.os }}
19
+ strategy:
20
+ matrix:
21
+ os: [ubuntu-latest]
22
+ ruby:
23
+ - 2.5
24
+ - 2.6
25
+ - 2.7
26
+ include:
27
+ - os: macos-latest
28
+ ruby: 2.5
29
+ name: Ruby ${{ matrix.ruby }} test (${{ matrix.os }})
30
+ steps:
31
+ - uses: actions/checkout@v2
32
+ - name: Set up Ruby
33
+ uses: ruby/setup-ruby@v1
34
+ with:
35
+ ruby-version: ${{ matrix.ruby }}
36
+ bundler-cache: true
37
+ - run: bundle install
38
+ - run: bundle exec rake
39
+ - run: CUCUMBER_PUBLISH_QUIET=true bundle exec cucumber
@@ -0,0 +1 @@
1
+ 2.6.6
data/Gemfile CHANGED
@@ -3,6 +3,8 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in retest.gemspec
4
4
  gemspec
5
5
 
6
+ gem "cucumber", "~> 5.1"
7
+ gem "aruba", "~> 1.0"
6
8
  gem "rake", "~> 12.0"
7
9
  gem "minitest", "~> 5.0"
8
10
  gem "byebug"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- retest (0.4.1)
4
+ retest (0.6.0)
5
5
  listen (~> 3.2)
6
6
  string-similarity (~> 2.1)
7
7
 
@@ -61,7 +61,7 @@ GEM
61
61
  ffi (1.13.1)
62
62
  i18n (1.8.5)
63
63
  concurrent-ruby (~> 1.0)
64
- listen (3.2.1)
64
+ listen (3.3.1)
65
65
  rb-fsevent (~> 0.10, >= 0.10.3)
66
66
  rb-inotify (~> 0.9, >= 0.9.10)
67
67
  middleware (0.1.0)
@@ -93,9 +93,9 @@ PLATFORMS
93
93
  ruby
94
94
 
95
95
  DEPENDENCIES
96
- aruba
96
+ aruba (~> 1.0)
97
97
  byebug
98
- cucumber
98
+ cucumber (~> 5.1)
99
99
  minitest (~> 5.0)
100
100
  rake (~> 12.0)
101
101
  retest!
data/README.md CHANGED
@@ -63,6 +63,10 @@ $ retest 'bundle exec rails test <test>'
63
63
  * If an error comes in try using `bundle exec` like so: `$ retest 'bundle exec rake test <test>'`
64
64
  * Aliases saved on ~/.bashrc or ~/.zshrc cannot be run that way with the `retest` command
65
65
 
66
+ ## Ruby Support
67
+
68
+ Retest supports ruby 2.5 and above.
69
+
66
70
  ## Roadmap
67
71
 
68
72
  - [x] MVP
@@ -73,7 +77,7 @@ $ retest 'bundle exec rails test <test>'
73
77
  - [x] Bundler Gem
74
78
  - [x] Rails
75
79
  - [x] Ad-hoc scripts
76
- - [ ] Hanami
80
+ - [x] Hanami
77
81
  - [ ] Sinatra
78
82
  - [ ] Cuba? Padrino?
79
83
  - [ ] Handle other languages: Elixir, Node, Python, PHP
data/exe/retest CHANGED
@@ -1,21 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'retest'
4
- require 'listen'
5
4
 
6
- puts "Launching Retest..."
5
+ $stdout.sync = true
7
6
 
8
- command = Retest::Command.for(ARGV.join)
7
+ puts "Launching Retest..."
9
8
 
10
- listener = Listen.to('.', ignore: /node_modules|tmp/, relative: true) do |modified, added, removed|
11
- if modified.any?
12
- system("clear") || system("cls")
13
- command.run(modified.first.strip)
14
- end
15
- rescue => e
16
- puts "Something went wrong: #{e.message}"
17
- end
9
+ Retest
10
+ .build(command: Retest::Command.for(ARGV.join))
11
+ .start # not blocking
18
12
 
19
- listener.start # not blocking
20
13
  puts "Ready to refactor! You can make file changes now"
14
+
21
15
  sleep
@@ -1,9 +1,25 @@
1
+ require 'listen'
2
+ require 'string/similarity'
3
+
1
4
  require "retest/version"
2
5
  require "retest/command"
3
6
  require "retest/repository"
4
7
  require "retest/test_options"
5
- require 'string/similarity'
8
+ require "retest/listen_options"
6
9
 
7
10
  module Retest
8
11
  class Error < StandardError; end
12
+
13
+ def self.build(command:)
14
+ Listen.to('.', ListenOptions.to_h) do |modified, added, removed|
15
+ begin
16
+ if modified.any?
17
+ system('clear 2>/dev/null') || system('cls 2>/dev/null')
18
+ command.run(modified.first.strip)
19
+ end
20
+ rescue => e
21
+ puts "Something went wrong: #{e.message}"
22
+ end
23
+ end
24
+ end
9
25
  end
@@ -0,0 +1,36 @@
1
+ module Retest
2
+ class ListenOptions
3
+ IGNORE_REGEX = /node_modules|tmp|\.sqlite|\.byebug_history/
4
+
5
+ class << self
6
+ def to_h(tool = GitTool.new)
7
+ return {ignore: IGNORE_REGEX, relative: true} unless tool.installed?
8
+
9
+ {only: regex_for(tool.files), relative: true}
10
+ end
11
+
12
+ private
13
+
14
+ def regex_for(files)
15
+ Regexp.new files.split("\n").join('|')
16
+ end
17
+ end
18
+ end
19
+
20
+ class GitTool
21
+ attr_reader :name
22
+ alias :to_s :name
23
+
24
+ def initialize
25
+ @name = 'git'
26
+ end
27
+
28
+ def installed?
29
+ system "git -C . rev-parse 2>/dev/null"
30
+ end
31
+
32
+ def files
33
+ `git ls-files`
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module Retest
2
- VERSION = "0.4.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -27,6 +27,4 @@ Gem::Specification.new do |spec|
27
27
  spec.require_paths = ["lib"]
28
28
  spec.add_runtime_dependency "string-similarity", ["~> 2.1"]
29
29
  spec.add_runtime_dependency "listen", ["~> 3.2"]
30
- spec.add_development_dependency "cucumber"
31
- spec.add_development_dependency "aruba"
32
30
  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: 0.4.1
4
+ version: 0.6.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: 2020-11-04 00:00:00.000000000 Z
11
+ date: 2020-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: string-similarity
@@ -38,35 +38,7 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.2'
41
- - !ruby/object:Gem::Dependency
42
- name: cucumber
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: aruba
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- description:
41
+ description:
70
42
  email:
71
43
  - alex@abletech.nz
72
44
  executables:
@@ -74,8 +46,9 @@ executables:
74
46
  extensions: []
75
47
  extra_rdoc_files: []
76
48
  files:
49
+ - ".github/workflows/ci.yml"
77
50
  - ".gitignore"
78
- - ".travis.yml"
51
+ - ".ruby-version"
79
52
  - Gemfile
80
53
  - Gemfile.lock
81
54
  - LICENSE.txt
@@ -87,6 +60,7 @@ files:
87
60
  - exe/retest
88
61
  - lib/retest.rb
89
62
  - lib/retest/command.rb
63
+ - lib/retest/listen_options.rb
90
64
  - lib/retest/repository.rb
91
65
  - lib/retest/test_options.rb
92
66
  - lib/retest/version.rb
@@ -97,7 +71,7 @@ licenses:
97
71
  metadata:
98
72
  homepage_uri: https://github.com/AlexB52/retest
99
73
  source_code_uri: https://github.com/AlexB52/retest
100
- post_install_message:
74
+ post_install_message:
101
75
  rdoc_options: []
102
76
  require_paths:
103
77
  - lib
@@ -112,8 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
86
  - !ruby/object:Gem::Version
113
87
  version: '0'
114
88
  requirements: []
115
- rubygems_version: 3.1.2
116
- signing_key:
89
+ rubygems_version: 3.0.3
90
+ signing_key:
117
91
  specification_version: 4
118
92
  summary: A simple command line tool to watch file change and run its matching spec.
119
93
  test_files: []
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.7.0
6
- before_install: gem install bundler -v 2.1.4