guard-rubocop 1.1.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +30 -0
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/.rubocop.yml +36 -4
- data/.rubocop_todo.yml +12 -0
- data/CHANGELOG.md +18 -0
- data/Gemfile +3 -10
- data/Guardfile +4 -2
- data/README.md +27 -10
- data/Rakefile +4 -17
- data/guard-rubocop.gemspec +17 -14
- data/lib/guard/rubocop/runner.rb +29 -18
- data/lib/guard/rubocop/templates/Guardfile +1 -1
- data/lib/guard/rubocop/version.rb +10 -12
- data/lib/guard/rubocop.rb +8 -6
- data/spec/guard/rubocop/runner_spec.rb +93 -48
- data/spec/guard/rubocop_spec.rb +21 -23
- data/spec/spec_helper.rb +20 -20
- data/spec/support/silence_output.rb +6 -2
- data/spec/support/simplecov.rb +19 -0
- metadata +50 -49
- data/.travis.yml +0 -10
- data/spec/.rubocop.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f4fd50bb78f68a751f5fcc10f383377a222c9929ed882c62e44a93f15de13054
|
4
|
+
data.tar.gz: 0ec423fa69f1af3cc9e784a576ecd6c91995f3ab03afdb5ea54226a7bdf97a0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de52917c49a6988e46ab3c8c2a933e6c590df311252c0d0e8a5828113242448c8f0f1deeaa7c4c57a1290a91f8ae9869bafa73a36c9fdf74c840d1b199fd5f84
|
7
|
+
data.tar.gz: 8a9f56e402052cdbe167ddf27fd6f736e659a1dd864861d7aef07017e3c3f88b3395ac7b9e2ee2eecb57dc4fb84d72720845d2a86f3ae47b7b165ba603b7dd87
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: CI
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
rspec:
|
5
|
+
name: RSpec
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
strategy:
|
8
|
+
matrix:
|
9
|
+
ruby: ['2.5', '2.6', '2.7', '3.0']
|
10
|
+
steps:
|
11
|
+
- uses: actions/checkout@v2
|
12
|
+
- uses: ruby/setup-ruby@v1
|
13
|
+
with:
|
14
|
+
ruby-version: ${{ matrix.ruby }}
|
15
|
+
- run: bundle install
|
16
|
+
- run: bundle exec rspec
|
17
|
+
# FIXME: https://github.com/rubocop/guard-rubocop/pull/48#issuecomment-906893891
|
18
|
+
# - uses: coverallsapp/github-action@master
|
19
|
+
# with:
|
20
|
+
# github-token: ${{ secrets.GITHUB_TOKEN }}
|
21
|
+
rubocop:
|
22
|
+
name: RuboCop
|
23
|
+
runs-on: ubuntu-latest
|
24
|
+
steps:
|
25
|
+
- uses: actions/checkout@v2
|
26
|
+
- uses: ruby/setup-ruby@v1
|
27
|
+
with:
|
28
|
+
ruby-version: 2.5
|
29
|
+
- run: bundle install
|
30
|
+
- run: bundle exec rubocop
|
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--require spec_helper
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,39 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
TargetRubyVersion: 2.5
|
5
|
+
|
6
|
+
Layout/FirstArrayElementIndentation:
|
7
|
+
EnforcedStyle: consistent
|
8
|
+
|
9
|
+
Layout/LineLength:
|
3
10
|
Max: 100
|
4
11
|
|
5
|
-
|
6
|
-
|
12
|
+
Lint/MissingSuper:
|
13
|
+
Exclude:
|
14
|
+
- spec/support/silence_output.rb
|
15
|
+
|
16
|
+
Metrics/BlockLength:
|
17
|
+
Exclude:
|
18
|
+
- 'spec/**/*.rb'
|
19
|
+
|
20
|
+
Metrics/MethodLength:
|
7
21
|
Max: 15
|
22
|
+
|
23
|
+
Naming/HeredocDelimiterNaming:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
Naming/RescuedExceptionsVariableName:
|
27
|
+
PreferredName: error
|
28
|
+
|
29
|
+
Style/EmptyMethod:
|
30
|
+
EnforcedStyle: expanded
|
31
|
+
|
32
|
+
Style/FrozenStringLiteralComment:
|
33
|
+
Exclude:
|
34
|
+
- lib/guard/rubocop/templates/Guardfile
|
35
|
+
|
36
|
+
Style/RegexpLiteral:
|
37
|
+
Exclude:
|
38
|
+
- '**/*.gemspec'
|
39
|
+
- '**/Guardfile'
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2018-01-20 14:55:30 +0900 using RuboCop version 0.52.1.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
# Configuration parameters: CountComments.
|
11
|
+
Metrics/ClassLength:
|
12
|
+
Max: 103
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
## Development
|
4
4
|
|
5
|
+
## v1.5.0
|
6
|
+
|
7
|
+
* Drop support Ruby 2.4. [#50](https://github.com/rubocop/guard-rubocop/pull/50)
|
8
|
+
* Allow custom `cmd` option for rubocop. [#48](https://github.com/rubocop/guard-rubocop/pull/48)
|
9
|
+
|
10
|
+
## v1.4.0
|
11
|
+
|
12
|
+
* Support RuboCop 1.0
|
13
|
+
|
14
|
+
## v1.3.0
|
15
|
+
|
16
|
+
* Add `:launchy` option ([#21](https://github.com/yujinakayama/guard-rubocop/pull/21), [#35](https://github.com/yujinakayama/guard-rubocop/pull/35))
|
17
|
+
* Modify the `Guardfile` template so that RuboCop can be run when `.rubocop_todo.yml` is modified ([#36](https://github.com/yujinakayama/guard-rubocop/pull/36))
|
18
|
+
|
19
|
+
## v1.2.0
|
20
|
+
|
21
|
+
* Add `:hide_stdout` option ([#15](https://github.com/yujinakayama/guard-rubocop/pull/15))
|
22
|
+
|
5
23
|
## v1.1.0
|
6
24
|
|
7
25
|
* Use RuboCop's `--force-exclusion` option to always ignore files specified in the `Exclude` configuration in `.rubocop.yml`
|
data/Gemfile
CHANGED
@@ -1,16 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source 'https://rubygems.org'
|
2
4
|
|
3
5
|
gemspec
|
4
6
|
|
5
7
|
group :test do
|
6
|
-
gem '
|
7
|
-
gem 'simplecov-rcov', '~> 0.2'
|
8
|
-
gem 'ci_reporter', '~> 1.8'
|
9
|
-
end
|
10
|
-
|
11
|
-
platforms :rbx do
|
12
|
-
gem 'rubysl'
|
13
|
-
gem 'rubinius-developer_tools'
|
14
|
-
gem 'json'
|
15
|
-
gem 'racc' # Needed for RuboCop
|
8
|
+
gem 'simplecov-lcov'
|
16
9
|
end
|
data/Guardfile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# A sample Guardfile
|
2
4
|
# More info at https://github.com/guard/guard#readme
|
3
5
|
|
@@ -5,8 +7,8 @@ group :red_green_refactor, halt_on_fail: true do
|
|
5
7
|
guard :rspec, all_after_pass: true, all_on_start: true, cmd: 'bundle exec rspec' do
|
6
8
|
watch(%r{^spec/.+_spec\.rb$})
|
7
9
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
8
|
-
watch('spec/spec_helper.rb') {
|
9
|
-
watch(%r{^spec/support/.+\.rb$}) {
|
10
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
11
|
+
watch(%r{^spec/support/.+\.rb$}) { 'spec' }
|
10
12
|
end
|
11
13
|
|
12
14
|
guard :rubocop do
|
data/README.md
CHANGED
@@ -1,14 +1,13 @@
|
|
1
|
-
[![Gem Version](
|
2
|
-
[![
|
3
|
-
[![
|
4
|
-
[![
|
5
|
-
[![Code Climate](http://img.shields.io/codeclimate/github/yujinakayama/guard-rubocop.svg)](https://codeclimate.com/github/yujinakayama/guard-rubocop)
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/guard-rubocop.svg)](http://badge.fury.io/rb/guard-rubocop)
|
2
|
+
[![CI](https://github.com/rubocop/guard-rubocop/workflows/CI/badge.svg)](https://github.com/rubocop/guard-rubocop/actions)
|
3
|
+
[![Coverage Status](https://coveralls.io/repos/rubocop/guard-rubocop/badge.svg?branch=master&service=github)](https://coveralls.io/github/rubocop/guard-rubocop?branch=master)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/rubocop/guard-rubocop/badges/gpa.svg)](https://codeclimate.com/github/rubocop/guard-rubocop)
|
6
5
|
|
7
6
|
# guard-rubocop
|
8
7
|
|
9
|
-
**guard-rubocop** allows you to automatically check Ruby code style with [RuboCop](https://github.com/
|
8
|
+
**guard-rubocop** allows you to automatically check Ruby code style with [RuboCop](https://github.com/rubocop/rubocop) when files are modified.
|
10
9
|
|
11
|
-
Tested on MRI
|
10
|
+
Tested on MRI 2.5 - 3.0.
|
12
11
|
|
13
12
|
## Installation
|
14
13
|
|
@@ -34,7 +33,7 @@ or install it yourself as:
|
|
34
33
|
$ gem install guard-rubocop
|
35
34
|
```
|
36
35
|
|
37
|
-
Add the default Guard::
|
36
|
+
Add the default Guard::RuboCop definition to your `Guardfile` by running:
|
38
37
|
|
39
38
|
```sh
|
40
39
|
$ guard init rubocop
|
@@ -62,6 +61,11 @@ all_on_start: true # Check all files at Guard startup.
|
|
62
61
|
cli: '--rails' # Pass arbitrary RuboCop CLI arguments.
|
63
62
|
# An array or string is acceptable.
|
64
63
|
# default: nil
|
64
|
+
cmd: './bin/rubocop' # Pass custom cmd to run rubocop.
|
65
|
+
# default: rubocop
|
66
|
+
|
67
|
+
hide_stdout: false # Do not display console output (in case outputting to file).
|
68
|
+
# default: false
|
65
69
|
keep_failed: true # Keep failed files until they pass.
|
66
70
|
# default: true
|
67
71
|
notification: :failed # Display Growl notification after each run.
|
@@ -69,6 +73,19 @@ notification: :failed # Display Growl notification after each run.
|
|
69
73
|
# false - Never notify
|
70
74
|
# :failed - Notify only when failed
|
71
75
|
# default: :failed
|
76
|
+
launchy: nil # Filename to launch using Launchy after RuboCop runs.
|
77
|
+
# default: nil
|
78
|
+
```
|
79
|
+
|
80
|
+
### Using Launchy to view results
|
81
|
+
|
82
|
+
guard-rubocop can be configured to launch a results file in lieu of or in addition to outputing results to the terminal.
|
83
|
+
Configure your Guardfile with the launchy option:
|
84
|
+
|
85
|
+
``` ruby
|
86
|
+
guard :rubocop, cli: %w(--format fuubar --format html -o ./tmp/rubocop_results.html), launchy: './tmp/rubocop_results.html' do
|
87
|
+
# ...
|
88
|
+
end
|
72
89
|
```
|
73
90
|
|
74
91
|
## Advanced Tips
|
@@ -79,7 +96,7 @@ you might be uncomfortable with the offense reports from RuboCop in the red-gree
|
|
79
96
|
* In the red-green phase, you're not necessarily required to write clean code – you just focus writing code to pass the test. It means, in this phase, `guard-rspec` should be run but `guard-rubocop` should not.
|
80
97
|
* In the refactor phase, you're required to make the code clean while keeping the test passing. In this phase, both `guard-rspec` and `guard-rubocop` should be run.
|
81
98
|
|
82
|
-
In this case, you may
|
99
|
+
In this case, you may consider making use of the [group method](https://github.com/guard/guard/wiki/Guardfile-DSL---Configuring-Guard#group) in your `Guardfile`:
|
83
100
|
|
84
101
|
```ruby
|
85
102
|
# This group allows to skip running RuboCop when RSpec failed.
|
@@ -106,6 +123,6 @@ Note: You need to use `guard-rspec` 4.2.3 or later due to a [bug](https://github
|
|
106
123
|
|
107
124
|
## License
|
108
125
|
|
109
|
-
Copyright (c) 2013–
|
126
|
+
Copyright (c) 2013–2020 Yuji Nakayama
|
110
127
|
|
111
128
|
See the [LICENSE.txt](LICENSE.txt) for details.
|
data/Rakefile
CHANGED
@@ -1,23 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'bundler/gem_tasks'
|
2
4
|
require 'rspec/core/rake_task'
|
3
5
|
require 'rubocop/rake_task'
|
4
6
|
|
5
7
|
RSpec::Core::RakeTask.new(:spec)
|
6
|
-
|
7
|
-
|
8
|
-
namespace :ci do
|
9
|
-
task :spec do
|
10
|
-
ENV['CI'] = 'true'
|
11
|
-
|
12
|
-
ENV['CI_REPORTS'] = 'spec/reports'
|
13
|
-
require 'ci/reporter/rake/rspec'
|
14
|
-
Rake::Task['ci:setup:rspec'].invoke
|
15
|
-
|
16
|
-
Rake::Task['spec'].invoke
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
desc 'Run RSpec and RuboCop'
|
21
|
-
task all: [:spec, :style]
|
8
|
+
RuboCop::RakeTask.new(:style)
|
22
9
|
|
23
|
-
task
|
10
|
+
task ci: %i[spec style]
|
data/guard-rubocop.gemspec
CHANGED
@@ -1,32 +1,35 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
|
6
6
|
require 'guard/rubocop/version'
|
7
7
|
|
8
8
|
Gem::Specification.new do |spec|
|
9
9
|
spec.name = 'guard-rubocop'
|
10
|
-
spec.version =
|
10
|
+
spec.version = GuardRuboCopVersion.to_s
|
11
11
|
spec.authors = ['Yuji Nakayama']
|
12
12
|
spec.email = ['nkymyj@gmail.com']
|
13
13
|
spec.summary = 'Guard plugin for RuboCop'
|
14
|
-
spec.description = 'Guard::
|
15
|
-
|
14
|
+
spec.description = 'Guard::RuboCop automatically checks Ruby code style with RuboCop ' \
|
15
|
+
'when files are modified.'
|
16
|
+
spec.homepage = 'https://github.com/rubocop/guard-rubocop'
|
16
17
|
spec.license = 'MIT'
|
17
18
|
|
18
|
-
spec.
|
19
|
-
|
20
|
-
spec.
|
19
|
+
spec.required_ruby_version = '>= 2.5'
|
20
|
+
|
21
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
22
|
+
spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
|
23
|
+
spec.test_files = spec.files.grep(/^spec\//)
|
21
24
|
spec.require_paths = ['lib']
|
22
25
|
|
23
26
|
spec.add_runtime_dependency 'guard', '~> 2.0'
|
24
|
-
spec.add_runtime_dependency 'rubocop', '
|
27
|
+
spec.add_runtime_dependency 'rubocop', '< 2.0'
|
25
28
|
|
26
|
-
spec.add_development_dependency 'bundler'
|
27
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
28
|
-
spec.add_development_dependency 'rspec', '~> 3.0.0.beta1'
|
29
|
-
spec.add_development_dependency 'simplecov', '~> 0.7'
|
29
|
+
spec.add_development_dependency 'bundler'
|
30
30
|
spec.add_development_dependency 'guard-rspec', '>= 4.2.3', '< 5.0'
|
31
|
-
spec.add_development_dependency '
|
31
|
+
spec.add_development_dependency 'launchy', '~> 2.4'
|
32
|
+
spec.add_development_dependency 'rake', '>= 12.0'
|
33
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
34
|
+
spec.add_development_dependency 'simplecov', '~> 0.7'
|
32
35
|
end
|
data/lib/guard/rubocop/runner.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'json'
|
4
4
|
|
5
5
|
module Guard
|
6
|
-
class
|
6
|
+
class RuboCop
|
7
7
|
# This class runs `rubocop` command, retrieves result and notifies.
|
8
8
|
# An instance of this class is intended to invoke `rubocop` only once in its lifetime.
|
9
9
|
class Runner
|
@@ -22,14 +22,16 @@ module Guard
|
|
22
22
|
notify(passed)
|
23
23
|
end
|
24
24
|
|
25
|
+
open_launchy_if_needed
|
26
|
+
|
25
27
|
passed
|
26
28
|
end
|
27
29
|
|
28
30
|
def build_command(paths)
|
29
|
-
command = ['rubocop']
|
31
|
+
command = [@options[:cmd] || 'rubocop']
|
30
32
|
|
31
|
-
|
32
|
-
command.concat(%w
|
33
|
+
if should_add_default_formatter_for_console?
|
34
|
+
command.concat(%w[--format progress]) # Keep default formatter for console.
|
33
35
|
end
|
34
36
|
|
35
37
|
command.concat(['--format', 'json', '--out', json_file_path])
|
@@ -38,6 +40,10 @@ module Guard
|
|
38
40
|
command.concat(paths)
|
39
41
|
end
|
40
42
|
|
43
|
+
def should_add_default_formatter_for_console?
|
44
|
+
!@options[:hide_stdout] && !include_formatter_for_console?(args_specified_by_user)
|
45
|
+
end
|
46
|
+
|
41
47
|
def args_specified_by_user
|
42
48
|
@args_specified_by_user ||= begin
|
43
49
|
args = @options[:cli]
|
@@ -45,7 +51,7 @@ module Guard
|
|
45
51
|
when Array then args
|
46
52
|
when String then args.shellsplit
|
47
53
|
when NilClass then []
|
48
|
-
else
|
54
|
+
else raise ArgumentError, ':cli option must be either an array or string'
|
49
55
|
end
|
50
56
|
end
|
51
57
|
end
|
@@ -74,11 +80,9 @@ module Guard
|
|
74
80
|
end
|
75
81
|
|
76
82
|
def result
|
77
|
-
@result ||=
|
78
|
-
|
79
|
-
|
80
|
-
JSON.parse(file.read, symbolize_names: true)
|
81
|
-
end
|
83
|
+
@result ||= File.open(json_file_path) do |file|
|
84
|
+
# Rubinius 2.0.0.rc1 does not support `JSON.load` with 3 args.
|
85
|
+
JSON.parse(file.read, symbolize_names: true)
|
82
86
|
end
|
83
87
|
end
|
84
88
|
|
@@ -109,19 +113,26 @@ module Guard
|
|
109
113
|
end
|
110
114
|
|
111
115
|
def pluralize(number, thing, options = {})
|
112
|
-
text =
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
end
|
116
|
+
text =
|
117
|
+
if number.zero? && options[:no_for_zero]
|
118
|
+
+'no'
|
119
|
+
else
|
120
|
+
number.to_s
|
121
|
+
end
|
119
122
|
|
120
123
|
text << " #{thing}"
|
121
124
|
text << 's' unless number == 1
|
122
125
|
|
123
126
|
text
|
124
127
|
end
|
128
|
+
|
129
|
+
def open_launchy_if_needed
|
130
|
+
return unless (output_path = @options[:launchy])
|
131
|
+
return unless File.exist?(output_path)
|
132
|
+
|
133
|
+
require 'launchy'
|
134
|
+
::Launchy.open(output_path)
|
135
|
+
end
|
125
136
|
end
|
126
137
|
end
|
127
138
|
end
|
@@ -1,16 +1,14 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
PATCH = 0
|
3
|
+
# A workaround for declaring `class RuboCop`
|
4
|
+
# before `class RuboCop < Guard` in rubocop.rb
|
5
|
+
module GuardRuboCopVersion
|
6
|
+
# http://semver.org/
|
7
|
+
MAJOR = 1
|
8
|
+
MINOR = 5
|
9
|
+
PATCH = 0
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
end
|
11
|
+
def self.to_s
|
12
|
+
[MAJOR, MINOR, PATCH].join('.')
|
15
13
|
end
|
16
14
|
end
|
data/lib/guard/rubocop.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'guard'
|
4
4
|
require 'guard/plugin'
|
5
5
|
|
6
6
|
module Guard
|
7
|
-
# This class gets API calls from `guard` and runs `rubocop` command via {Guard::
|
7
|
+
# This class gets API calls from `guard` and runs `rubocop` command via {Guard::RuboCop::Runner}.
|
8
8
|
# An instance of this class stays alive in a `guard` command session.
|
9
|
-
class
|
9
|
+
class RuboCop < Plugin
|
10
10
|
autoload :Runner, 'guard/rubocop/runner'
|
11
11
|
|
12
12
|
attr_reader :options, :failed_paths
|
@@ -16,9 +16,10 @@ module Guard
|
|
16
16
|
|
17
17
|
@options = {
|
18
18
|
all_on_start: true,
|
19
|
-
keep_failed:
|
19
|
+
keep_failed: true,
|
20
20
|
notification: :failed,
|
21
|
-
cli: nil
|
21
|
+
cli: nil,
|
22
|
+
hide_stdout: false
|
22
23
|
}.merge(options)
|
23
24
|
|
24
25
|
@failed_paths = []
|
@@ -64,7 +65,7 @@ module Guard
|
|
64
65
|
passed = runner.run(paths)
|
65
66
|
@failed_paths = runner.failed_paths
|
66
67
|
throw :task_has_failed unless passed
|
67
|
-
rescue => error
|
68
|
+
rescue StandardError => error
|
68
69
|
UI.error 'The following exception occurred while running guard-rubocop: ' \
|
69
70
|
"#{error.backtrace.first} #{error.message} (#{error.class.name})"
|
70
71
|
end
|
@@ -75,6 +76,7 @@ module Guard
|
|
75
76
|
paths.uniq!
|
76
77
|
paths.reject! do |path|
|
77
78
|
next true unless File.exist?(path)
|
79
|
+
|
78
80
|
included_in_other_path?(path, paths)
|
79
81
|
end
|
80
82
|
paths
|
@@ -1,9 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'launchy'
|
4
4
|
|
5
|
-
describe Guard::
|
6
|
-
subject(:runner) { Guard::
|
5
|
+
RSpec.describe Guard::RuboCop::Runner do
|
6
|
+
subject(:runner) { Guard::RuboCop::Runner.new(options) }
|
7
7
|
let(:options) { {} }
|
8
8
|
|
9
9
|
describe '#run' do
|
@@ -77,43 +77,94 @@ describe Guard::Rubocop::Runner do
|
|
77
77
|
|
78
78
|
context 'when :notification option is true' do
|
79
79
|
let(:options) { { notification: true } }
|
80
|
-
include_examples 'notification',
|
80
|
+
include_examples 'notification', passed: true, failed: true
|
81
81
|
end
|
82
82
|
|
83
83
|
context 'when :notification option is :failed' do
|
84
84
|
let(:options) { { notification: :failed } }
|
85
|
-
include_examples 'notification',
|
85
|
+
include_examples 'notification', passed: false, failed: true
|
86
86
|
end
|
87
87
|
|
88
88
|
context 'when :notification option is false' do
|
89
89
|
let(:options) { { notification: false } }
|
90
|
-
include_examples 'notification',
|
90
|
+
include_examples 'notification', passed: false, failed: false
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'when :launchy option is present' do
|
94
|
+
let(:options) { { launchy: 'launchy_path' } }
|
95
|
+
|
96
|
+
before do
|
97
|
+
allow(File).to receive(:exist?).with('launchy_path').and_return(true)
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'opens Launchy' do
|
101
|
+
expect(Launchy).to receive(:open).with('launchy_path')
|
102
|
+
runner.run(paths)
|
103
|
+
end
|
91
104
|
end
|
92
105
|
end
|
93
106
|
|
94
107
|
describe '#build_command' do
|
95
108
|
subject(:build_command) { runner.build_command(paths) }
|
96
|
-
let(:options) { { cli: %w
|
97
|
-
let(:paths) { %w
|
109
|
+
let(:options) { { cli: %w[--debug --rails] } }
|
110
|
+
let(:paths) { %w[file1.rb file2.rb] }
|
98
111
|
|
99
|
-
|
100
|
-
|
112
|
+
describe ':cmd option' do
|
113
|
+
context 'when set' do
|
114
|
+
let(:options) { { cmd: 'bin/rubocop' } }
|
115
|
+
|
116
|
+
it 'uses the supplied :cmd' do
|
117
|
+
expect(build_command[0]).to eq('bin/rubocop')
|
118
|
+
end
|
119
|
+
end
|
101
120
|
|
102
|
-
|
103
|
-
|
121
|
+
context 'when not set' do
|
122
|
+
it 'uses the default command' do
|
123
|
+
expect(build_command[0]).to eq('rubocop')
|
124
|
+
end
|
104
125
|
end
|
105
126
|
end
|
106
127
|
|
107
|
-
context 'when :
|
108
|
-
|
128
|
+
context 'when :hide_stdout is not set' do
|
129
|
+
context 'and :cli option includes formatter for console' do
|
130
|
+
before { options[:cli] = %w[--format simple] }
|
109
131
|
|
110
|
-
|
111
|
-
|
132
|
+
it 'does not add args for the default formatter for console' do
|
133
|
+
expect(build_command[0..2]).not_to eq(%w[rubocop --format progress])
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
context 'and :cli option does not include formatter for console' do
|
138
|
+
before { options[:cli] = %w[--format simple --out simple.txt] }
|
139
|
+
|
140
|
+
it 'adds args for the default formatter for console' do
|
141
|
+
expect(build_command[0..2]).to eq(%w[rubocop --format progress])
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
context 'when :hide_stdout is set' do
|
147
|
+
before { options[:hide_stdout] = true }
|
148
|
+
|
149
|
+
context 'and :cli option includes formatter for console' do
|
150
|
+
before { options[:cli] = %w[--format simple] }
|
151
|
+
|
152
|
+
it 'does not add args for the default formatter for console' do
|
153
|
+
expect(build_command[0..2]).not_to eq(%w[rubocop --format progress])
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
context 'and :cli option does not include formatter for console' do
|
158
|
+
before { options[:cli] = %w[--format simple --out simple.txt] }
|
159
|
+
|
160
|
+
it 'does not add args for the default formatter for console' do
|
161
|
+
expect(build_command[0..2]).not_to eq(%w[rubocop --format progress])
|
162
|
+
end
|
112
163
|
end
|
113
164
|
end
|
114
165
|
|
115
166
|
it 'adds args for JSON formatter' do
|
116
|
-
expect(build_command[3..4]).to eq(%w
|
167
|
+
expect(build_command[3..4]).to eq(%w[--format json])
|
117
168
|
end
|
118
169
|
|
119
170
|
it 'adds args for output file path of JSON formatter' do
|
@@ -126,11 +177,11 @@ describe Guard::Rubocop::Runner do
|
|
126
177
|
end
|
127
178
|
|
128
179
|
it 'adds args specified by user' do
|
129
|
-
expect(build_command[8..9]).to eq(%w
|
180
|
+
expect(build_command[8..9]).to eq(%w[--debug --rails])
|
130
181
|
end
|
131
182
|
|
132
183
|
it 'adds the passed paths' do
|
133
|
-
expect(build_command[10..-1]).to eq(%w
|
184
|
+
expect(build_command[10..-1]).to eq(%w[file1.rb file2.rb])
|
134
185
|
end
|
135
186
|
end
|
136
187
|
|
@@ -163,7 +214,7 @@ describe Guard::Rubocop::Runner do
|
|
163
214
|
let(:options) { { cli: { key: 'value' } } }
|
164
215
|
|
165
216
|
it 'raises error' do
|
166
|
-
expect { runner.args_specified_by_user }.to raise_error
|
217
|
+
expect { runner.args_specified_by_user }.to raise_error(ArgumentError)
|
167
218
|
end
|
168
219
|
end
|
169
220
|
end
|
@@ -173,7 +224,7 @@ describe Guard::Rubocop::Runner do
|
|
173
224
|
|
174
225
|
context 'when the passed args include a -f/--format' do
|
175
226
|
context 'but does not include an -o/--output' do
|
176
|
-
let(:args) { %w
|
227
|
+
let(:args) { %w[--format simple --debug] }
|
177
228
|
|
178
229
|
it 'returns true' do
|
179
230
|
expect(include_formatter_for_console?).to be_truthy
|
@@ -181,7 +232,7 @@ describe Guard::Rubocop::Runner do
|
|
181
232
|
end
|
182
233
|
|
183
234
|
context 'and include an -o/--output just after the -f/--format' do
|
184
|
-
let(:args) { %w
|
235
|
+
let(:args) { %w[--format simple --out simple.txt] }
|
185
236
|
|
186
237
|
it 'returns false' do
|
187
238
|
expect(include_formatter_for_console?).to be_falsey
|
@@ -189,7 +240,7 @@ describe Guard::Rubocop::Runner do
|
|
189
240
|
end
|
190
241
|
|
191
242
|
context 'and include an -o/--output after the -f/--format across another arg' do
|
192
|
-
let(:args) { %w
|
243
|
+
let(:args) { %w[--format simple --debug --out simple.txt] }
|
193
244
|
|
194
245
|
it 'returns false' do
|
195
246
|
expect(include_formatter_for_console?).to be_falsey
|
@@ -199,7 +250,7 @@ describe Guard::Rubocop::Runner do
|
|
199
250
|
|
200
251
|
context 'when the passed args include a -f with its arg without separator' do
|
201
252
|
context 'but does not include an -o/--output' do
|
202
|
-
let(:args) { %w
|
253
|
+
let(:args) { %w[-fs --debug] }
|
203
254
|
|
204
255
|
it 'returns true' do
|
205
256
|
expect(include_formatter_for_console?).to be_truthy
|
@@ -207,7 +258,7 @@ describe Guard::Rubocop::Runner do
|
|
207
258
|
end
|
208
259
|
|
209
260
|
context 'and include an -o with its arg without separator just after the -f/--format' do
|
210
|
-
let(:args) { %w
|
261
|
+
let(:args) { %w[-fs -osimple.txt] }
|
211
262
|
|
212
263
|
it 'returns false' do
|
213
264
|
expect(include_formatter_for_console?).to be_falsey
|
@@ -217,7 +268,7 @@ describe Guard::Rubocop::Runner do
|
|
217
268
|
|
218
269
|
context 'when the passed args include multiple -f/--format' do
|
219
270
|
context 'and all -f/--format have associated -o/--out' do
|
220
|
-
let(:args) { %w
|
271
|
+
let(:args) { %w[--format simple --out simple.txt --format emacs --out emacs.txt] }
|
221
272
|
|
222
273
|
it 'returns false' do
|
223
274
|
expect(include_formatter_for_console?).to be_falsey
|
@@ -225,7 +276,7 @@ describe Guard::Rubocop::Runner do
|
|
225
276
|
end
|
226
277
|
|
227
278
|
context 'and any -f/--format has associated -o/--out' do
|
228
|
-
let(:args) { %w
|
279
|
+
let(:args) { %w[--format simple --format emacs --out emacs.txt] }
|
229
280
|
|
230
281
|
it 'returns true' do
|
231
282
|
expect(include_formatter_for_console?).to be_truthy
|
@@ -233,7 +284,7 @@ describe Guard::Rubocop::Runner do
|
|
233
284
|
end
|
234
285
|
|
235
286
|
context 'and no -f/--format has associated -o/--out' do
|
236
|
-
let(:args) { %w
|
287
|
+
let(:args) { %w[--format simple --format emacs] }
|
237
288
|
|
238
289
|
it 'returns true' do
|
239
290
|
expect(include_formatter_for_console?).to be_truthy
|
@@ -242,7 +293,7 @@ describe Guard::Rubocop::Runner do
|
|
242
293
|
end
|
243
294
|
|
244
295
|
context 'when the passed args do not include -f/--format' do
|
245
|
-
let(:args) { %w
|
296
|
+
let(:args) { %w[--debug] }
|
246
297
|
|
247
298
|
it 'returns false' do
|
248
299
|
expect(include_formatter_for_console?).to be_falsey
|
@@ -312,12 +363,10 @@ describe Guard::Rubocop::Runner do
|
|
312
363
|
describe '#notify' do
|
313
364
|
before do
|
314
365
|
allow(runner).to receive(:result).and_return(
|
315
|
-
{
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
inspected_file_count: 2
|
320
|
-
}
|
366
|
+
summary: {
|
367
|
+
offense_count: 4,
|
368
|
+
target_file_count: 3,
|
369
|
+
inspected_file_count: 2
|
321
370
|
}
|
322
371
|
)
|
323
372
|
end
|
@@ -358,12 +407,10 @@ describe Guard::Rubocop::Runner do
|
|
358
407
|
describe '#summary_text' do
|
359
408
|
before do
|
360
409
|
allow(runner).to receive(:result).and_return(
|
361
|
-
{
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
inspected_file_count: inspected_file_count
|
366
|
-
}
|
410
|
+
summary: {
|
411
|
+
offense_count: offense_count,
|
412
|
+
target_file_count: target_file_count,
|
413
|
+
inspected_file_count: inspected_file_count
|
367
414
|
}
|
368
415
|
)
|
369
416
|
end
|
@@ -419,12 +466,10 @@ describe Guard::Rubocop::Runner do
|
|
419
466
|
context 'with spelling "offence" in old RuboCop' do
|
420
467
|
before do
|
421
468
|
allow(runner).to receive(:result).and_return(
|
422
|
-
{
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
inspected_file_count: 1
|
427
|
-
}
|
469
|
+
summary: {
|
470
|
+
offence_count: 2,
|
471
|
+
target_file_count: 1,
|
472
|
+
inspected_file_count: 1
|
428
473
|
}
|
429
474
|
)
|
430
475
|
end
|
data/spec/guard/rubocop_spec.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe Guard::Rubocop, :silence_output do
|
6
|
-
subject(:guard) { Guard::Rubocop.new(options) }
|
3
|
+
RSpec.describe Guard::RuboCop, :silence_output do
|
4
|
+
subject(:guard) { Guard::RuboCop.new(options) }
|
7
5
|
let(:options) { {} }
|
8
6
|
|
9
7
|
describe '#options' do
|
@@ -57,13 +55,13 @@ describe Guard::Rubocop, :silence_output do
|
|
57
55
|
shared_examples 'processes after running', :processes_after_running do
|
58
56
|
context 'when passed' do
|
59
57
|
it 'throws nothing' do
|
60
|
-
allow_any_instance_of(Guard::
|
58
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
61
59
|
expect { subject }.not_to throw_symbol
|
62
60
|
end
|
63
61
|
|
64
62
|
it 'clears failed paths' do
|
65
|
-
allow_any_instance_of(Guard::
|
66
|
-
allow_any_instance_of(Guard::
|
63
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
64
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:failed_paths).and_return([])
|
67
65
|
subject
|
68
66
|
expect(guard.failed_paths).to be_empty
|
69
67
|
end
|
@@ -71,7 +69,7 @@ describe Guard::Rubocop, :silence_output do
|
|
71
69
|
|
72
70
|
context 'when failed' do
|
73
71
|
it 'throws symbol :task_has_failed' do
|
74
|
-
allow_any_instance_of(Guard::
|
72
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(false)
|
75
73
|
expect { subject }.to throw_symbol(:task_has_failed)
|
76
74
|
end
|
77
75
|
|
@@ -81,8 +79,8 @@ describe Guard::Rubocop, :silence_output do
|
|
81
79
|
'some_failed_file.rb',
|
82
80
|
'dir/another_failed_file.rb'
|
83
81
|
]
|
84
|
-
allow_any_instance_of(Guard::
|
85
|
-
allow_any_instance_of(Guard::
|
82
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(false)
|
83
|
+
allow_any_instance_of(Guard::RuboCop::Runner)
|
86
84
|
.to receive(:failed_paths).and_return(failed_paths)
|
87
85
|
subject
|
88
86
|
expect(guard.failed_paths).to eq(failed_paths)
|
@@ -91,7 +89,7 @@ describe Guard::Rubocop, :silence_output do
|
|
91
89
|
|
92
90
|
context 'when an exception is raised' do
|
93
91
|
it 'prevents itself from firing' do
|
94
|
-
allow_any_instance_of(Guard::
|
92
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_raise(RuntimeError)
|
95
93
|
expect { subject }.not_to raise_error
|
96
94
|
end
|
97
95
|
end
|
@@ -101,17 +99,17 @@ describe Guard::Rubocop, :silence_output do
|
|
101
99
|
subject { super().run_all }
|
102
100
|
|
103
101
|
before do
|
104
|
-
allow_any_instance_of(Guard::
|
105
|
-
allow_any_instance_of(Guard::
|
102
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
103
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:failed_paths).and_return([])
|
106
104
|
end
|
107
105
|
|
108
106
|
it 'inspects all files with rubocop' do
|
109
|
-
expect_any_instance_of(Guard::
|
107
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run).with([])
|
110
108
|
guard.run_all
|
111
109
|
end
|
112
110
|
end
|
113
111
|
|
114
|
-
[
|
112
|
+
%i[run_on_additions run_on_modifications].each do |method|
|
115
113
|
describe "##{method}", :processes_after_running do
|
116
114
|
subject { super().send(method, changed_paths) }
|
117
115
|
let(:changed_paths) do
|
@@ -122,17 +120,17 @@ describe Guard::Rubocop, :silence_output do
|
|
122
120
|
end
|
123
121
|
|
124
122
|
before do
|
125
|
-
allow_any_instance_of(Guard::
|
126
|
-
allow_any_instance_of(Guard::
|
123
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
124
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:failed_paths).and_return([])
|
127
125
|
end
|
128
126
|
|
129
127
|
it 'inspects changed files with rubocop' do
|
130
|
-
expect_any_instance_of(Guard::
|
128
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run)
|
131
129
|
subject
|
132
130
|
end
|
133
131
|
|
134
132
|
it 'passes cleaned paths to rubocop' do
|
135
|
-
expect_any_instance_of(Guard::
|
133
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run) do |_instance, paths|
|
136
134
|
expect(paths).to eq([
|
137
135
|
File.expand_path('lib/guard/rubocop.rb'),
|
138
136
|
File.expand_path('spec/spec_helper.rb')
|
@@ -147,7 +145,7 @@ describe Guard::Rubocop, :silence_output do
|
|
147
145
|
end
|
148
146
|
|
149
147
|
it 'does nothing' do
|
150
|
-
expect_any_instance_of(Guard::
|
148
|
+
expect_any_instance_of(Guard::RuboCop::Runner).not_to receive(:run)
|
151
149
|
subject
|
152
150
|
end
|
153
151
|
end
|
@@ -159,7 +157,7 @@ describe Guard::Rubocop, :silence_output do
|
|
159
157
|
|
160
158
|
it 'also inspects paths which are failed last time' do
|
161
159
|
guard.failed_paths << failed_path
|
162
|
-
expect_any_instance_of(Guard::
|
160
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run) do |_instance, paths|
|
163
161
|
expect(paths).to include failed_path
|
164
162
|
end
|
165
163
|
subject
|
@@ -171,7 +169,7 @@ describe Guard::Rubocop, :silence_output do
|
|
171
169
|
|
172
170
|
it 'inspects just changed paths' do
|
173
171
|
guard.failed_paths << failed_path
|
174
|
-
expect_any_instance_of(Guard::
|
172
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run) do |_instance, paths|
|
175
173
|
expect(paths).to eq([
|
176
174
|
File.expand_path('lib/guard/rubocop.rb'),
|
177
175
|
File.expand_path('spec/spec_helper.rb')
|
data/spec/spec_helper.rb
CHANGED
@@ -1,33 +1,33 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.configure do |config|
|
4
|
-
config.expect_with :rspec do |
|
5
|
-
|
4
|
+
config.expect_with :rspec do |expectations|
|
5
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
6
6
|
end
|
7
7
|
|
8
|
-
config.mock_with :rspec do |
|
9
|
-
|
8
|
+
config.mock_with :rspec do |mocks|
|
9
|
+
mocks.verify_partial_doubles = true
|
10
10
|
end
|
11
|
-
end
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
config.filter_run_when_matching :focus
|
13
|
+
|
14
|
+
config.example_status_persistence_file_path = 'spec/examples.txt'
|
16
15
|
|
17
|
-
|
18
|
-
SimpleCov.coverage_dir(File.join('spec', 'coverage'))
|
16
|
+
config.disable_monkey_patching!
|
19
17
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
|
18
|
+
config.default_formatter = 'doc' if config.files_to_run.one?
|
19
|
+
|
20
|
+
config.order = :random
|
21
|
+
|
22
|
+
Kernel.srand config.seed
|
26
23
|
end
|
27
24
|
|
28
|
-
|
29
|
-
|
30
|
-
add_filter '/vendor/bundle/'
|
25
|
+
Dir[File.join(File.dirname(__FILE__), 'support', '*')].sort.each do |path|
|
26
|
+
require path
|
31
27
|
end
|
32
28
|
|
29
|
+
# Initialize Guard for running tests.
|
30
|
+
require 'guard'
|
31
|
+
Guard.setup(notify: false)
|
32
|
+
|
33
33
|
require 'guard/rubocop'
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
shared_context 'silence output', silence_output
|
3
|
+
RSpec.shared_context 'silence output', :silence_output do
|
4
4
|
null_object = BasicObject.new
|
5
5
|
|
6
6
|
class << null_object
|
@@ -9,6 +9,10 @@ shared_context 'silence output', silence_output: true do
|
|
9
9
|
true
|
10
10
|
end
|
11
11
|
|
12
|
+
def respond_to_missing?(*)
|
13
|
+
true
|
14
|
+
end
|
15
|
+
|
12
16
|
def method_missing(*)
|
13
17
|
end
|
14
18
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'simplecov'
|
4
|
+
|
5
|
+
if ENV['CI']
|
6
|
+
require 'simplecov-lcov'
|
7
|
+
|
8
|
+
SimpleCov::Formatter::LcovFormatter.config do |config|
|
9
|
+
config.report_with_single_file = true
|
10
|
+
config.single_report_path = 'coverage/lcov.info'
|
11
|
+
end
|
12
|
+
|
13
|
+
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
|
14
|
+
end
|
15
|
+
|
16
|
+
SimpleCov.start do
|
17
|
+
add_filter '/spec/'
|
18
|
+
add_filter '/vendor/bundle/'
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Nakayama
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: guard
|
@@ -28,107 +28,107 @@ dependencies:
|
|
28
28
|
name: rubocop
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "<"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: guard-rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 4.2.3
|
62
|
+
- - "<"
|
60
63
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
64
|
+
version: '5.0'
|
62
65
|
type: :development
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
65
68
|
requirements:
|
66
|
-
- - "
|
69
|
+
- - ">="
|
67
70
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
71
|
+
version: 4.2.3
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '5.0'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
76
|
+
name: launchy
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
81
|
+
version: '2.4'
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
88
|
+
version: '2.4'
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
90
|
+
name: rake
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
|
-
- - "
|
93
|
+
- - ">="
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
95
|
+
version: '12.0'
|
90
96
|
type: :development
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
|
-
- - "
|
100
|
+
- - ">="
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
102
|
+
version: '12.0'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
104
|
+
name: rspec
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
|
-
- - "
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 4.2.3
|
104
|
-
- - "<"
|
107
|
+
- - "~>"
|
105
108
|
- !ruby/object:Gem::Version
|
106
|
-
version: '
|
109
|
+
version: '3.0'
|
107
110
|
type: :development
|
108
111
|
prerelease: false
|
109
112
|
version_requirements: !ruby/object:Gem::Requirement
|
110
113
|
requirements:
|
111
|
-
- - "
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: 4.2.3
|
114
|
-
- - "<"
|
114
|
+
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '
|
116
|
+
version: '3.0'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
118
|
+
name: simplecov
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: '0.
|
123
|
+
version: '0.7'
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: '0.
|
131
|
-
description: Guard::
|
130
|
+
version: '0.7'
|
131
|
+
description: Guard::RuboCop automatically checks Ruby code style with RuboCop when
|
132
132
|
files are modified.
|
133
133
|
email:
|
134
134
|
- nkymyj@gmail.com
|
@@ -136,9 +136,11 @@ executables: []
|
|
136
136
|
extensions: []
|
137
137
|
extra_rdoc_files: []
|
138
138
|
files:
|
139
|
+
- ".github/workflows/ci.yml"
|
139
140
|
- ".gitignore"
|
141
|
+
- ".rspec"
|
140
142
|
- ".rubocop.yml"
|
141
|
-
- ".
|
143
|
+
- ".rubocop_todo.yml"
|
142
144
|
- ".yardopts"
|
143
145
|
- CHANGELOG.md
|
144
146
|
- Gemfile
|
@@ -151,16 +153,16 @@ files:
|
|
151
153
|
- lib/guard/rubocop/runner.rb
|
152
154
|
- lib/guard/rubocop/templates/Guardfile
|
153
155
|
- lib/guard/rubocop/version.rb
|
154
|
-
- spec/.rubocop.yml
|
155
156
|
- spec/guard/rubocop/runner_spec.rb
|
156
157
|
- spec/guard/rubocop_spec.rb
|
157
158
|
- spec/spec_helper.rb
|
158
159
|
- spec/support/silence_output.rb
|
159
|
-
|
160
|
+
- spec/support/simplecov.rb
|
161
|
+
homepage: https://github.com/rubocop/guard-rubocop
|
160
162
|
licenses:
|
161
163
|
- MIT
|
162
164
|
metadata: {}
|
163
|
-
post_install_message:
|
165
|
+
post_install_message:
|
164
166
|
rdoc_options: []
|
165
167
|
require_paths:
|
166
168
|
- lib
|
@@ -168,22 +170,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
170
|
requirements:
|
169
171
|
- - ">="
|
170
172
|
- !ruby/object:Gem::Version
|
171
|
-
version: '
|
173
|
+
version: '2.5'
|
172
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
175
|
requirements:
|
174
176
|
- - ">="
|
175
177
|
- !ruby/object:Gem::Version
|
176
178
|
version: '0'
|
177
179
|
requirements: []
|
178
|
-
rubyforge_project:
|
179
|
-
rubygems_version: 2.
|
180
|
-
signing_key:
|
180
|
+
rubyforge_project:
|
181
|
+
rubygems_version: 2.7.6.3
|
182
|
+
signing_key:
|
181
183
|
specification_version: 4
|
182
184
|
summary: Guard plugin for RuboCop
|
183
185
|
test_files:
|
184
|
-
- spec/.rubocop.yml
|
185
186
|
- spec/guard/rubocop/runner_spec.rb
|
186
187
|
- spec/guard/rubocop_spec.rb
|
187
188
|
- spec/spec_helper.rb
|
188
189
|
- spec/support/silence_output.rb
|
189
|
-
|
190
|
+
- spec/support/simplecov.rb
|
data/.travis.yml
DELETED