guard-rubocop 1.1.0 → 1.2.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/.rubocop.yml +4 -0
- data/.travis.yml +0 -1
- data/CHANGELOG.md +4 -0
- data/Guardfile +2 -2
- data/README.md +2 -0
- data/Rakefile +3 -1
- data/guard-rubocop.gemspec +7 -6
- data/lib/guard/rubocop.rb +4 -3
- data/lib/guard/rubocop/runner.rb +6 -2
- data/lib/guard/rubocop/version.rb +4 -4
- data/spec/guard/rubocop/runner_spec.rb +32 -10
- data/spec/guard/rubocop_spec.rb +19 -19
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1535c13164518a07f9bd376581c0900c514ce4af
|
4
|
+
data.tar.gz: 279736e6d095f6a5c941ed5d8b2f52850c92c535
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9db576e8a05603ebb436e244bc55a8f62bc436b7c3670211d82e5d4e990660eb8274fad252bcc4fe0b8461cb6130c5afa39d9eec4a5a43b3c81426328ff3011b
|
7
|
+
data.tar.gz: ae8db14b3b120dfbea98d0086c39348d4bd28f8a76188f463ceedf7fe6d67b3b975847a510430306c333a70d11381c702f3c3c4f16952737e268cc6c1cf786d4
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
## Development
|
4
4
|
|
5
|
+
## v1.2.0
|
6
|
+
|
7
|
+
* Add `:hide_stdout` option ([#15](https://github.com/yujinakayama/guard-rubocop/pull/15))
|
8
|
+
|
5
9
|
## v1.1.0
|
6
10
|
|
7
11
|
* Use RuboCop's `--force-exclusion` option to always ignore files specified in the `Exclude` configuration in `.rubocop.yml`
|
data/Guardfile
CHANGED
@@ -5,8 +5,8 @@ group :red_green_refactor, halt_on_fail: true do
|
|
5
5
|
guard :rspec, all_after_pass: true, all_on_start: true, cmd: 'bundle exec rspec' do
|
6
6
|
watch(%r{^spec/.+_spec\.rb$})
|
7
7
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
8
|
-
watch('spec/spec_helper.rb') {
|
9
|
-
watch(%r{^spec/support/.+\.rb$}) {
|
8
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
9
|
+
watch(%r{^spec/support/.+\.rb$}) { 'spec' }
|
10
10
|
end
|
11
11
|
|
12
12
|
guard :rubocop do
|
data/README.md
CHANGED
@@ -62,6 +62,8 @@ all_on_start: true # Check all files at Guard startup.
|
|
62
62
|
cli: '--rails' # Pass arbitrary RuboCop CLI arguments.
|
63
63
|
# An array or string is acceptable.
|
64
64
|
# default: nil
|
65
|
+
hide_stdout: false # Do not display console output (in case outputting to file).
|
66
|
+
# default: false
|
65
67
|
keep_failed: true # Keep failed files until they pass.
|
66
68
|
# default: true
|
67
69
|
notification: :failed # Display Growl notification after each run.
|
data/Rakefile
CHANGED
data/guard-rubocop.gemspec
CHANGED
@@ -7,17 +7,18 @@ require 'guard/rubocop/version'
|
|
7
7
|
|
8
8
|
Gem::Specification.new do |spec|
|
9
9
|
spec.name = 'guard-rubocop'
|
10
|
-
spec.version = Guard::
|
10
|
+
spec.version = Guard::RuboCopVersion.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::Rubocop automatically checks Ruby code style with RuboCop
|
14
|
+
spec.description = 'Guard::Rubocop automatically checks Ruby code style with RuboCop ' \
|
15
|
+
'when files are modified.'
|
15
16
|
spec.homepage = 'https://github.com/yujinakayama/guard-rubocop'
|
16
17
|
spec.license = 'MIT'
|
17
18
|
|
18
|
-
spec.files = `git ls-files`.split(
|
19
|
-
spec.executables = spec.files.grep(
|
20
|
-
spec.test_files = spec.files.grep(
|
19
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
20
|
+
spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(/^spec\//)
|
21
22
|
spec.require_paths = ['lib']
|
22
23
|
|
23
24
|
spec.add_runtime_dependency 'guard', '~> 2.0'
|
@@ -25,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
25
26
|
|
26
27
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
27
28
|
spec.add_development_dependency 'rake', '~> 10.0'
|
28
|
-
spec.add_development_dependency 'rspec', '~> 3.0
|
29
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
29
30
|
spec.add_development_dependency 'simplecov', '~> 0.7'
|
30
31
|
spec.add_development_dependency 'guard-rspec', '>= 4.2.3', '< 5.0'
|
31
32
|
spec.add_development_dependency 'ruby_gntp', '~> 0.3'
|
data/lib/guard/rubocop.rb
CHANGED
@@ -4,9 +4,9 @@ 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
|
@@ -18,7 +18,8 @@ module Guard
|
|
18
18
|
all_on_start: true,
|
19
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 = []
|
data/lib/guard/rubocop/runner.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
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
|
@@ -28,7 +28,7 @@ module Guard
|
|
28
28
|
def build_command(paths)
|
29
29
|
command = ['rubocop']
|
30
30
|
|
31
|
-
|
31
|
+
if should_add_default_formatter_for_console?
|
32
32
|
command.concat(%w(--format progress)) # Keep default formatter for console.
|
33
33
|
end
|
34
34
|
|
@@ -38,6 +38,10 @@ module Guard
|
|
38
38
|
command.concat(paths)
|
39
39
|
end
|
40
40
|
|
41
|
+
def should_add_default_formatter_for_console?
|
42
|
+
!@options[:hide_stdout] && !include_formatter_for_console?(args_specified_by_user)
|
43
|
+
end
|
44
|
+
|
41
45
|
def args_specified_by_user
|
42
46
|
@args_specified_by_user ||= begin
|
43
47
|
args = @options[:cli]
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
module Guard
|
4
|
-
# A workaround for declaring `class
|
5
|
-
# before `class
|
6
|
-
module
|
4
|
+
# A workaround for declaring `class RuboCop`
|
5
|
+
# before `class RuboCop < Guard` in rubocop.rb
|
6
|
+
module RuboCopVersion
|
7
7
|
# http://semver.org/
|
8
8
|
MAJOR = 1
|
9
|
-
MINOR =
|
9
|
+
MINOR = 2
|
10
10
|
PATCH = 0
|
11
11
|
|
12
12
|
def self.to_s
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper.rb'
|
4
4
|
|
5
|
-
describe Guard::
|
6
|
-
subject(:runner) { Guard::
|
5
|
+
describe Guard::RuboCop::Runner do
|
6
|
+
subject(:runner) { Guard::RuboCop::Runner.new(options) }
|
7
7
|
let(:options) { {} }
|
8
8
|
|
9
9
|
describe '#run' do
|
@@ -96,19 +96,41 @@ describe Guard::Rubocop::Runner do
|
|
96
96
|
let(:options) { { cli: %w(--debug --rails) } }
|
97
97
|
let(:paths) { %w(file1.rb file2.rb) }
|
98
98
|
|
99
|
-
context 'when :
|
100
|
-
|
99
|
+
context 'when :hide_stdout is not set' do
|
100
|
+
context 'and :cli option includes formatter for console' do
|
101
|
+
before { options[:cli] = %w(--format simple) }
|
101
102
|
|
102
|
-
|
103
|
-
|
103
|
+
it 'does not add args for the default formatter for console' do
|
104
|
+
expect(build_command[0..2]).not_to eq(%w(rubocop --format progress))
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'and :cli option does not include formatter for console' do
|
109
|
+
before { options[:cli] = %w(--format simple --out simple.txt) }
|
110
|
+
|
111
|
+
it 'adds args for the default formatter for console' do
|
112
|
+
expect(build_command[0..2]).to eq(%w(rubocop --format progress))
|
113
|
+
end
|
104
114
|
end
|
105
115
|
end
|
106
116
|
|
107
|
-
context 'when :
|
108
|
-
|
117
|
+
context 'when :hide_stdout is set' do
|
118
|
+
before { options[:hide_stdout] = true }
|
119
|
+
|
120
|
+
context 'and :cli option includes formatter for console' do
|
121
|
+
before { options[:cli] = %w(--format simple) }
|
109
122
|
|
110
|
-
|
111
|
-
|
123
|
+
it 'does not add args for the default formatter for console' do
|
124
|
+
expect(build_command[0..2]).not_to eq(%w(rubocop --format progress))
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
context 'and :cli option does not include formatter for console' do
|
129
|
+
before { options[:cli] = %w(--format simple --out simple.txt) }
|
130
|
+
|
131
|
+
it 'does not add args for the default formatter for console' do
|
132
|
+
expect(build_command[0..2]).not_to eq(%w(rubocop --format progress))
|
133
|
+
end
|
112
134
|
end
|
113
135
|
end
|
114
136
|
|
data/spec/guard/rubocop_spec.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper.rb'
|
4
4
|
|
5
|
-
describe Guard::
|
6
|
-
subject(:guard) { Guard::
|
5
|
+
describe Guard::RuboCop, :silence_output do
|
6
|
+
subject(:guard) { Guard::RuboCop.new(options) }
|
7
7
|
let(:options) { {} }
|
8
8
|
|
9
9
|
describe '#options' do
|
@@ -57,13 +57,13 @@ describe Guard::Rubocop, :silence_output do
|
|
57
57
|
shared_examples 'processes after running', :processes_after_running do
|
58
58
|
context 'when passed' do
|
59
59
|
it 'throws nothing' do
|
60
|
-
allow_any_instance_of(Guard::
|
60
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
61
61
|
expect { subject }.not_to throw_symbol
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'clears failed paths' do
|
65
|
-
allow_any_instance_of(Guard::
|
66
|
-
allow_any_instance_of(Guard::
|
65
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
66
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:failed_paths).and_return([])
|
67
67
|
subject
|
68
68
|
expect(guard.failed_paths).to be_empty
|
69
69
|
end
|
@@ -71,7 +71,7 @@ describe Guard::Rubocop, :silence_output do
|
|
71
71
|
|
72
72
|
context 'when failed' do
|
73
73
|
it 'throws symbol :task_has_failed' do
|
74
|
-
allow_any_instance_of(Guard::
|
74
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(false)
|
75
75
|
expect { subject }.to throw_symbol(:task_has_failed)
|
76
76
|
end
|
77
77
|
|
@@ -81,8 +81,8 @@ describe Guard::Rubocop, :silence_output do
|
|
81
81
|
'some_failed_file.rb',
|
82
82
|
'dir/another_failed_file.rb'
|
83
83
|
]
|
84
|
-
allow_any_instance_of(Guard::
|
85
|
-
allow_any_instance_of(Guard::
|
84
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(false)
|
85
|
+
allow_any_instance_of(Guard::RuboCop::Runner)
|
86
86
|
.to receive(:failed_paths).and_return(failed_paths)
|
87
87
|
subject
|
88
88
|
expect(guard.failed_paths).to eq(failed_paths)
|
@@ -91,7 +91,7 @@ describe Guard::Rubocop, :silence_output do
|
|
91
91
|
|
92
92
|
context 'when an exception is raised' do
|
93
93
|
it 'prevents itself from firing' do
|
94
|
-
allow_any_instance_of(Guard::
|
94
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_raise(RuntimeError)
|
95
95
|
expect { subject }.not_to raise_error
|
96
96
|
end
|
97
97
|
end
|
@@ -101,12 +101,12 @@ describe Guard::Rubocop, :silence_output do
|
|
101
101
|
subject { super().run_all }
|
102
102
|
|
103
103
|
before do
|
104
|
-
allow_any_instance_of(Guard::
|
105
|
-
allow_any_instance_of(Guard::
|
104
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
105
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:failed_paths).and_return([])
|
106
106
|
end
|
107
107
|
|
108
108
|
it 'inspects all files with rubocop' do
|
109
|
-
expect_any_instance_of(Guard::
|
109
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run).with([])
|
110
110
|
guard.run_all
|
111
111
|
end
|
112
112
|
end
|
@@ -122,17 +122,17 @@ describe Guard::Rubocop, :silence_output do
|
|
122
122
|
end
|
123
123
|
|
124
124
|
before do
|
125
|
-
allow_any_instance_of(Guard::
|
126
|
-
allow_any_instance_of(Guard::
|
125
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:run).and_return(true)
|
126
|
+
allow_any_instance_of(Guard::RuboCop::Runner).to receive(:failed_paths).and_return([])
|
127
127
|
end
|
128
128
|
|
129
129
|
it 'inspects changed files with rubocop' do
|
130
|
-
expect_any_instance_of(Guard::
|
130
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run)
|
131
131
|
subject
|
132
132
|
end
|
133
133
|
|
134
134
|
it 'passes cleaned paths to rubocop' do
|
135
|
-
expect_any_instance_of(Guard::
|
135
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run) do |_instance, paths|
|
136
136
|
expect(paths).to eq([
|
137
137
|
File.expand_path('lib/guard/rubocop.rb'),
|
138
138
|
File.expand_path('spec/spec_helper.rb')
|
@@ -147,7 +147,7 @@ describe Guard::Rubocop, :silence_output do
|
|
147
147
|
end
|
148
148
|
|
149
149
|
it 'does nothing' do
|
150
|
-
expect_any_instance_of(Guard::
|
150
|
+
expect_any_instance_of(Guard::RuboCop::Runner).not_to receive(:run)
|
151
151
|
subject
|
152
152
|
end
|
153
153
|
end
|
@@ -159,7 +159,7 @@ describe Guard::Rubocop, :silence_output do
|
|
159
159
|
|
160
160
|
it 'also inspects paths which are failed last time' do
|
161
161
|
guard.failed_paths << failed_path
|
162
|
-
expect_any_instance_of(Guard::
|
162
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run) do |_instance, paths|
|
163
163
|
expect(paths).to include failed_path
|
164
164
|
end
|
165
165
|
subject
|
@@ -171,7 +171,7 @@ describe Guard::Rubocop, :silence_output do
|
|
171
171
|
|
172
172
|
it 'inspects just changed paths' do
|
173
173
|
guard.failed_paths << failed_path
|
174
|
-
expect_any_instance_of(Guard::
|
174
|
+
expect_any_instance_of(Guard::RuboCop::Runner).to receive(:run) do |_instance, paths|
|
175
175
|
expect(paths).to eq([
|
176
176
|
File.expand_path('lib/guard/rubocop.rb'),
|
177
177
|
File.expand_path('spec/spec_helper.rb')
|
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.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Nakayama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: guard
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.0
|
75
|
+
version: '3.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.0
|
82
|
+
version: '3.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: simplecov
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
176
|
version: '0'
|
177
177
|
requirements: []
|
178
178
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.
|
179
|
+
rubygems_version: 2.4.2
|
180
180
|
signing_key:
|
181
181
|
specification_version: 4
|
182
182
|
summary: Guard plugin for RuboCop
|