codeclimate 0.4.4 → 0.5.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/bin/check +5 -1
- data/lib/cc/analyzer/engines_runner.rb +8 -5
- data/lib/cc/analyzer/include_paths_builder.rb +24 -3
- data/lib/cc/cli/analyze.rb +39 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7300c9980cfc0656f7d9f8db4bfdbca3072557e8
|
4
|
+
data.tar.gz: 538ebb98fdd24c8936f39616c30885bbf2cefcb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b0283c0100f8165089aa96b6247beca715ede60c72175f43e8801b1abd80084eca7526865bbfd60a2c3fb37f0de995583a78f6a9e91e73ef2417c5d47fe9f2c
|
7
|
+
data.tar.gz: f8ed6d3cad1a68b3d8a6284d1cffb7094e6906776c997ce8f51a2f8990568862a01e5cb567a859f675cfd6705a085bcd09ac017e19a885695dc66d0f18919735
|
data/bin/check
CHANGED
@@ -10,7 +10,11 @@ docker version | grep -q "Server version\|Server:" || {
|
|
10
10
|
if command -v boot2docker > /dev/null 2>&1; then
|
11
11
|
echo "Please ensure \`boot2docker up\` succeeds and you've run \`eval \$(boot2docker shellinit)\` in this shell" >&2
|
12
12
|
else
|
13
|
-
|
13
|
+
if [ $UID -eq 0 ]; then
|
14
|
+
echo "Please ensure \`sudo docker version' succeeds and try again" >&2
|
15
|
+
else
|
16
|
+
echo "Please ensure \`docker version' succeeds and try again" >&2
|
17
|
+
fi
|
14
18
|
fi
|
15
19
|
|
16
20
|
exit 1
|
@@ -6,11 +6,12 @@ module CC
|
|
6
6
|
InvalidEngineName = Class.new(StandardError)
|
7
7
|
NoEnabledEngines = Class.new(StandardError)
|
8
8
|
|
9
|
-
def initialize(registry, formatter, source_dir, config, container_label = nil)
|
9
|
+
def initialize(registry, formatter, source_dir, config, requested_paths = [], container_label = nil)
|
10
10
|
@registry = registry
|
11
11
|
@formatter = formatter
|
12
12
|
@source_dir = source_dir
|
13
13
|
@config = config
|
14
|
+
@requested_paths = requested_paths
|
14
15
|
@container_label = container_label
|
15
16
|
end
|
16
17
|
|
@@ -28,6 +29,8 @@ module CC
|
|
28
29
|
|
29
30
|
private
|
30
31
|
|
32
|
+
attr_reader :requested_paths
|
33
|
+
|
31
34
|
def run_engine(engine, container_listener)
|
32
35
|
@formatter.engine_running(engine) do
|
33
36
|
engine.run(@formatter, container_listener)
|
@@ -72,12 +75,12 @@ module CC
|
|
72
75
|
@registry[engine_name]
|
73
76
|
end
|
74
77
|
|
75
|
-
def
|
76
|
-
|
78
|
+
def include_paths
|
79
|
+
IncludePathsBuilder.new(@config.exclude_paths || [], requested_paths).build
|
77
80
|
end
|
78
81
|
|
79
|
-
def
|
80
|
-
|
82
|
+
def exclude_paths
|
83
|
+
PathPatterns.new(@config.exclude_paths || []).expanded + gitignore_paths
|
81
84
|
end
|
82
85
|
|
83
86
|
def gitignore_paths
|
@@ -9,13 +9,21 @@ module CC
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
attr_reader :cc_include_paths
|
13
|
+
|
14
|
+
def initialize(cc_exclude_paths, cc_include_paths = [])
|
13
15
|
@cc_exclude_paths = cc_exclude_paths
|
16
|
+
@cc_include_paths = cc_include_paths
|
14
17
|
end
|
15
18
|
|
16
19
|
def build
|
17
|
-
|
18
|
-
|
20
|
+
if cc_include_paths.any?
|
21
|
+
paths = filter_by_cc_includes
|
22
|
+
else
|
23
|
+
root = Directory.new(".", ignored_files)
|
24
|
+
paths = root.included_paths
|
25
|
+
end
|
26
|
+
|
19
27
|
paths.each do |path|
|
20
28
|
raise_on_unreadable_files(path)
|
21
29
|
end
|
@@ -23,6 +31,19 @@ module CC
|
|
23
31
|
|
24
32
|
protected
|
25
33
|
|
34
|
+
def filter_by_cc_includes
|
35
|
+
paths = []
|
36
|
+
cc_include_paths.each do |path|
|
37
|
+
if File.directory?(path)
|
38
|
+
root = Directory.new(path, ignored_files)
|
39
|
+
paths += root.included_paths
|
40
|
+
elsif !ignored_files.include?(path)
|
41
|
+
paths << path
|
42
|
+
end
|
43
|
+
end
|
44
|
+
paths.uniq
|
45
|
+
end
|
46
|
+
|
26
47
|
def ignored_files
|
27
48
|
Tempfile.open(".cc_gitignore") do |tmp|
|
28
49
|
tmp.write(File.read(".gitignore")) if File.exist?(".gitignore")
|
data/lib/cc/cli/analyze.rb
CHANGED
@@ -5,15 +5,18 @@ module CC
|
|
5
5
|
|
6
6
|
def initialize(_args = [])
|
7
7
|
super
|
8
|
+
@engine_options = []
|
9
|
+
@path_options = []
|
8
10
|
|
9
11
|
process_args
|
12
|
+
apply_config_options
|
10
13
|
end
|
11
14
|
|
12
15
|
def run
|
13
16
|
require_codeclimate_yml
|
14
17
|
|
15
18
|
Dir.chdir(ENV['FILESYSTEM_DIR']) do
|
16
|
-
runner = EnginesRunner.new(registry, formatter, source_dir, config)
|
19
|
+
runner = EnginesRunner.new(registry, formatter, source_dir, config, path_options)
|
17
20
|
runner.run
|
18
21
|
end
|
19
22
|
|
@@ -25,13 +28,20 @@ module CC
|
|
25
28
|
|
26
29
|
private
|
27
30
|
|
31
|
+
attr_accessor :config
|
32
|
+
attr_reader :engine_options, :path_options
|
33
|
+
|
28
34
|
def process_args
|
29
35
|
while arg = @args.shift
|
30
36
|
case arg
|
31
37
|
when '-f'
|
32
38
|
@formatter = Formatters.resolve(@args.shift)
|
39
|
+
when '-e', '--engine'
|
40
|
+
@engine_options << @args.shift
|
33
41
|
when '--dev'
|
34
42
|
@dev_mode = true
|
43
|
+
else
|
44
|
+
@path_options << arg
|
35
45
|
end
|
36
46
|
end
|
37
47
|
rescue Formatters::Formatter::InvalidFormatterError => e
|
@@ -51,7 +61,34 @@ module CC
|
|
51
61
|
end
|
52
62
|
|
53
63
|
def config
|
54
|
-
CC::Yaml.parse(filesystem.read_path(CODECLIMATE_YAML))
|
64
|
+
@config ||= CC::Yaml.parse(filesystem.read_path(CODECLIMATE_YAML))
|
65
|
+
end
|
66
|
+
|
67
|
+
def apply_config_options
|
68
|
+
if engine_options.any? && config.engines?
|
69
|
+
filter_by_engine_options
|
70
|
+
elsif engine_options.any?
|
71
|
+
config["engines"] = CC::Yaml::Nodes::EngineList.new(config).with_value({})
|
72
|
+
end
|
73
|
+
add_engine_options
|
74
|
+
end
|
75
|
+
|
76
|
+
def filter_by_engine_options
|
77
|
+
config.engines.keys.each do |engine|
|
78
|
+
unless engine_options.include?(engine)
|
79
|
+
config.engines.delete(engine)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def add_engine_options
|
85
|
+
engine_options.each do |engine|
|
86
|
+
if config.engines.include?(engine)
|
87
|
+
config.engines[engine].enabled = true
|
88
|
+
else
|
89
|
+
config.engines[engine] = CC::Yaml::Nodes::Engine.new(config.engines).with_value({ "enabled" => true })
|
90
|
+
end
|
91
|
+
end
|
55
92
|
end
|
56
93
|
end
|
57
94
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codeclimate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code Climate
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -250,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
250
|
version: '0'
|
251
251
|
requirements: []
|
252
252
|
rubyforge_project:
|
253
|
-
rubygems_version: 2.4.
|
253
|
+
rubygems_version: 2.4.5
|
254
254
|
signing_key:
|
255
255
|
specification_version: 4
|
256
256
|
summary: Code Climate CLI
|