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 +4 -4
- data/config/engines.yml +11 -0
- data/lib/cc/analyzer/engines_config_builder.rb +4 -1
- data/lib/cc/cli/config.rb +17 -5
- data/lib/cc/cli/config_generator.rb +12 -0
- data/lib/cc/cli/init.rb +16 -0
- 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: c7863d2ef3f7a9805635ba13b7bb648f47fbe5b6
         | 
| 4 | 
            +
              data.tar.gz: 8d3f00ddbe28b9098d9fcf4030587dbab8d84e0f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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( | 
| 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 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 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. | 
| 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- | 
| 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 | 
| 256 | 
            +
            rubygems_version: 2.4.5
         | 
| 257 257 | 
             
            signing_key: 
         | 
| 258 258 | 
             
            specification_version: 4
         | 
| 259 259 | 
             
            summary: Code Climate CLI
         |