slimcop 0.7.1 → 0.8.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/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