codeclimate 0.48.0 → 0.49.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e243ffc2296202b630a1a894537b74427e7ef2cd
4
- data.tar.gz: 6c7d135b21fbd99873a6cfec04f88c58d0c0215d
3
+ metadata.gz: c7863d2ef3f7a9805635ba13b7bb648f47fbe5b6
4
+ data.tar.gz: 8d3f00ddbe28b9098d9fcf4030587dbab8d84e0f
5
5
  SHA512:
6
- metadata.gz: d3e283e0d235dc196913d37c2e9cbaa7dbd06f0c50360480bb8be8563f72004a61e03638ffcc21366469c57ea1c78066032827d708d1a5895542918361f9f21b
7
- data.tar.gz: deec055a78ea55791741a7d19f203e21e2da0786adbfe7dfd094fbeedc555166275e9f9921ff2d34d77a663ae19302b357c176d1ce1bd855f43339a11ba60368
6
+ metadata.gz: ed426bd99d8af69a9b91eee69a3068133cfedb93800547e22c7d40a82c074fce9c84da0063c4b48822515d5c474076c6e90392111fa88d890c6df6acc2453fce
7
+ data.tar.gz: 8dbd6db4150ee985807b14e0162b45dcbf0fd356812368f7a26338b509303cd5fe9a1f0067b9db963ed3a5a4758df6eefe0c41261022b6ec399f9fa1f04ed7e3
data/config/engines.yml CHANGED
@@ -50,6 +50,17 @@ checkstyle:
50
50
  - \.java$
51
51
  default_ratings_paths:
52
52
  - "**.java"
53
+ complexity-ruby:
54
+ channels:
55
+ beta: codeclimate/codeclimate-complexity-ruby:b44
56
+ description: Code Climate Complexity Checks for Ruby
57
+ community: false
58
+ code_climate_check: true
59
+ default_ratings_paths:
60
+ - "**.rb"
61
+ default_config:
62
+ languages:
63
+ - ruby
53
64
  csslint:
54
65
  channels:
55
66
  stable: codeclimate/codeclimate-csslint
@@ -12,7 +12,10 @@ module CC
12
12
  # handling.
13
13
  def fetch(name, channel)
14
14
  metadata = self[name]
15
- metadata.merge("image" => metadata["channels"][channel.to_s])
15
+ metadata.merge(
16
+ "image" => metadata["channels"][channel.to_s],
17
+ "code_climate_check" => metadata.fetch("code_climate_check", false),
18
+ )
16
19
  end
17
20
  end
18
21
 
data/lib/cc/cli/config.rb CHANGED
@@ -2,11 +2,9 @@ module CC
2
2
  module CLI
3
3
  class Config
4
4
  delegate :to_yaml, to: :config
5
- def initialize
6
- @config = {
7
- "engines" => {},
8
- "ratings" => { "paths" => [] },
9
- }
5
+
6
+ def initialize(config = {})
7
+ @config = default_config.merge(config)
10
8
  end
11
9
 
12
10
  def add_engine(engine_name, engine_config)
@@ -16,6 +14,13 @@ module CC
16
14
  config["engines"][engine_name]["config"] = engine_config["default_config"]
17
15
  end
18
16
 
17
+ # we may not want this code in the general case.
18
+ # for now, we need it to test one of our own Maintainability engines
19
+ # which is in the 'beta' channel
20
+ if engine_config.key?("channels") && !engine_config["channels"].include?("stable")
21
+ config["engines"][engine_name]["channel"] = engine_config["channels"].first.first
22
+ end
23
+
19
24
  config["ratings"]["paths"] |= engine_config["default_ratings_paths"]
20
25
  end
21
26
 
@@ -27,6 +32,13 @@ module CC
27
32
  private
28
33
 
29
34
  attr_reader :config
35
+
36
+ def default_config
37
+ {
38
+ "engines" => {},
39
+ "ratings" => { "paths" => [] },
40
+ }
41
+ end
30
42
  end
31
43
  end
32
44
  end
@@ -37,6 +37,14 @@ module CC
37
37
  end
38
38
  end
39
39
 
40
+ def codeclimate_checks
41
+ @codeclimate_checks ||= engine_registry.list.each_with_object({}) do |(name, config), result|
42
+ if code_climate_check?(config)
43
+ result[name] = config
44
+ end
45
+ end
46
+ end
47
+
40
48
  def errors
41
49
  []
42
50
  end
@@ -63,6 +71,10 @@ module CC
63
71
  !engine["community"] && engine["enable_regexps"].present? && files_exist?(engine)
64
72
  end
65
73
 
74
+ def code_climate_check?(engine)
75
+ engine["code_climate_check"] && ENV["RUN_CODECLIMATE_CHECKS"] == "true"
76
+ end
77
+
66
78
  def files_exist?(engine)
67
79
  workspace_files.any? do |path|
68
80
  engine["enable_regexps"].any? { |re| Regexp.new(re).match(path) }
data/lib/cc/cli/init.rb CHANGED
@@ -19,9 +19,11 @@ module CC
19
19
  create_default_engine_configs if engines_enabled?
20
20
  elsif upgrade? && engines_enabled?
21
21
  warn "Config file .codeclimate.yml already configured for the Platform.\nTry running 'validate-config' to check configuration."
22
+ create_codeclimate_checks
22
23
  create_default_engine_configs
23
24
  else
24
25
  generate_all_config
26
+ create_codeclimate_checks
25
27
  end
26
28
  end
27
29
 
@@ -56,6 +58,20 @@ module CC
56
58
  filesystem.write_path(CODECLIMATE_YAML, config.to_yaml)
57
59
  end
58
60
 
61
+ def create_codeclimate_checks
62
+ if ENV["RUN_CODECLIMATE_CHECKS"] == "true"
63
+ say "Generating codeclimate checks..."
64
+ plain_config_hash = JSON.parse(CC::Yaml::Serializer::Json.serialize(existing_cc_config))
65
+ config = CC::CLI::Config.new(plain_config_hash)
66
+
67
+ config_generator.codeclimate_checks.each do |(engine_name, engine_config)|
68
+ config.add_engine(engine_name, engine_config)
69
+ end
70
+
71
+ filesystem.write_path(CODECLIMATE_YAML, config.to_yaml)
72
+ end
73
+ end
74
+
59
75
  def create_default_engine_configs
60
76
  say "Generating default configuration for engines..."
61
77
  available_engine_configs.each do |config_path|
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.48.0
4
+ version: 0.49.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: 2017-02-07 00:00:00.000000000 Z
11
+ date: 2017-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -253,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
253
  version: '0'
254
254
  requirements: []
255
255
  rubyforge_project:
256
- rubygems_version: 2.5.1
256
+ rubygems_version: 2.4.5
257
257
  signing_key:
258
258
  specification_version: 4
259
259
  summary: Code Climate CLI