slimcop 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/slimcop/cli.rb +6 -7
- data/lib/slimcop/path_finder.rb +16 -1
- data/lib/slimcop/rubo_cop_config_generator.rb +13 -2
- data/lib/slimcop/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8ddb3a3a507467e8a94efb06e67729026956faf788fae905c2520ddd2016d4d
|
4
|
+
data.tar.gz: 793d36ff3bfffbb5f4979996395f219fe301e5ab6cbd283a75cba389d2ef0b99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80f8d52c2fc2a845ce0f06f58bdf943123e8253dd3834b504ee3dd3da8f30ddb55902ec9e30db041d6eae084617addcefd42b338a720f3300b5c05cf8af34f32
|
7
|
+
data.tar.gz: 1eef3d4bc19ad6824e6e70b98da9bb35b88cbf48e748a6bb8e00aa9bed21cedde553518ac7460098ef80ee5ac19ca6183973c89443896a22a4da4fc618ac30fb
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
data/lib/slimcop/cli.rb
CHANGED
@@ -7,18 +7,17 @@ module Slimcop
|
|
7
7
|
class Cli
|
8
8
|
def initialize(argv)
|
9
9
|
@argv = argv.dup
|
10
|
-
@formatter = ::RuboCop::Formatter::ProgressFormatter.new($stdout)
|
11
10
|
end
|
12
11
|
|
13
12
|
def call
|
14
13
|
options = parse!
|
15
|
-
|
14
|
+
formatter = ::RuboCop::Formatter::ProgressFormatter.new($stdout, color: options[:color])
|
16
15
|
rubocop_config = RuboCopConfigGenerator.new(additional_config_file_path: options[:additional_config_file_path]).call
|
17
16
|
file_paths = PathFinder.new(patterns: @argv).call
|
18
17
|
|
19
|
-
|
18
|
+
formatter.started(file_paths)
|
20
19
|
offenses = file_paths.flat_map do |file_path|
|
21
|
-
|
20
|
+
formatter.file_started(file_path, {})
|
22
21
|
source = ::File.read(file_path)
|
23
22
|
offenses_ = investigate(
|
24
23
|
auto_correct: options[:auto_correct],
|
@@ -33,10 +32,10 @@ module Slimcop
|
|
33
32
|
source: source
|
34
33
|
)
|
35
34
|
end
|
36
|
-
|
35
|
+
formatter.file_finished(file_path, offenses_)
|
37
36
|
offenses_
|
38
37
|
end
|
39
|
-
|
38
|
+
formatter.finished(file_paths)
|
40
39
|
exit(offenses.empty? ? 0 : 1)
|
41
40
|
end
|
42
41
|
|
@@ -76,7 +75,7 @@ module Slimcop
|
|
76
75
|
parser.on('-a', '--auto-correct', 'Auto-correct offenses.') do
|
77
76
|
options[:auto_correct] = true
|
78
77
|
end
|
79
|
-
parser.on('-c', '--config=', 'Specify configuration file.') do |file_path|
|
78
|
+
parser.on('-c', '--config=', 'Specify configuration file. (default: .rubocop.yml if it exists)') do |file_path|
|
80
79
|
options[:additional_config_file_path] = file_path
|
81
80
|
end
|
82
81
|
parser.on('--[no-]color', 'Force color output on or off.') do |value|
|
data/lib/slimcop/path_finder.rb
CHANGED
@@ -5,6 +5,10 @@ require 'pathname'
|
|
5
5
|
module Slimcop
|
6
6
|
# Collect file paths from given path patterns.
|
7
7
|
class PathFinder
|
8
|
+
DEFAULT_PATH_PATTERNS = %w[
|
9
|
+
**/*.slim
|
10
|
+
].freeze
|
11
|
+
|
8
12
|
# @param [Array<String>] patterns Patterns normally given as CLI arguments (e.g. `["app/views/**/*.html.slim"]`).
|
9
13
|
def initialize(patterns:)
|
10
14
|
@patterns = patterns
|
@@ -12,9 +16,20 @@ module Slimcop
|
|
12
16
|
|
13
17
|
# @return [Array<String>]
|
14
18
|
def call
|
15
|
-
|
19
|
+
patterns.flat_map do |pattern|
|
16
20
|
::Pathname.glob(pattern).select(&:file?).map(&:to_s)
|
17
21
|
end.uniq.sort
|
18
22
|
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
# @return [Array<String>]
|
27
|
+
def patterns
|
28
|
+
if @patterns.empty?
|
29
|
+
DEFAULT_PATH_PATTERNS
|
30
|
+
else
|
31
|
+
@patterns
|
32
|
+
end
|
33
|
+
end
|
19
34
|
end
|
20
35
|
end
|
@@ -4,6 +4,8 @@ require 'rubocop'
|
|
4
4
|
|
5
5
|
module Slimcop
|
6
6
|
class RuboCopConfigGenerator
|
7
|
+
DEFAULT_ADDITIONAL_CONFIG_PATH = '.rubocop.yml'
|
8
|
+
|
7
9
|
# @param [String] additional_config_file_path
|
8
10
|
def initialize(additional_config_file_path: nil)
|
9
11
|
@additional_config_file_path = additional_config_file_path
|
@@ -29,13 +31,22 @@ module Slimcop
|
|
29
31
|
# @return [Hash]
|
30
32
|
def merged_config_hash
|
31
33
|
result = slimcop_default_config
|
32
|
-
result = ::RuboCop::ConfigLoader.merge(result, additional_config) if
|
34
|
+
result = ::RuboCop::ConfigLoader.merge(result, additional_config) if additional_config
|
33
35
|
result
|
34
36
|
end
|
35
37
|
|
36
38
|
# @return [RuboCop::Config, nil]
|
37
39
|
def additional_config
|
38
|
-
|
40
|
+
if instance_variable_defined?(:@additional_config)
|
41
|
+
@additional_config
|
42
|
+
else
|
43
|
+
@additional_config = \
|
44
|
+
if @additional_config_file_path
|
45
|
+
::RuboCop::ConfigLoader.load_file(@additional_config_file_path)
|
46
|
+
elsif ::File.exist?(DEFAULT_ADDITIONAL_CONFIG_PATH)
|
47
|
+
::RuboCop::ConfigLoader.load_file(DEFAULT_ADDITIONAL_CONFIG_PATH)
|
48
|
+
end
|
49
|
+
end
|
39
50
|
end
|
40
51
|
|
41
52
|
# @return [RuboCop::Config]
|
data/lib/slimcop/version.rb
CHANGED