quality 27.4.0 → 28.0.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/{LICENSE.txt → License.txt} +0 -0
- data/README.md +60 -74
- data/lib/quality/command_output_processor.rb +1 -0
- data/lib/quality/config.rb +1 -0
- data/lib/quality/directory_of_classes.rb +1 -0
- data/lib/quality/linguist_source_file_globber.rb +2 -3
- data/lib/quality/process.rb +1 -0
- data/lib/quality/quality_checker.rb +4 -1
- data/lib/quality/rake/task.rb +4 -3
- data/lib/quality/version.rb +1 -1
- data/quality.gemspec +15 -8
- metadata +46 -46
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: dc0a359931538858f5f3eeb50214dfee9f7e0eac
         | 
| 4 | 
            +
              data.tar.gz: 4ba7b7fac56b05ef9d5682d59e2af684a69b42c3
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 16a82e84189ee8c2799ab0db5e84e03fb61de5d915ef935a848166bec45470b8b190464b3fbd3564069ceb82c74c4781f92e6526e6e74f5cf59a3e1f1f95a6c4
         | 
| 7 | 
            +
              data.tar.gz: dcad53c68e1d0a9cdbc01d5ae82d707a52dbf325803e35d085e41f6cbf4bbc00ad1342420873fcbf73c3e5a6b9fce8d4e856d2330981c86d628a998850b37496
         | 
    
        data/{LICENSE.txt → License.txt}
    RENAMED
    
    | 
            File without changes
         | 
    
        data/README.md
    CHANGED
    
    | @@ -11,7 +11,9 @@ worse over time. | |
| 11 11 |  | 
| 12 12 | 
             
            ## Why
         | 
| 13 13 |  | 
| 14 | 
            -
            See [this post](http://blog.apiology.cc/2014/06/scalable-quality-part-1.html) | 
| 14 | 
            +
            See [this post](http://blog.apiology.cc/2014/06/scalable-quality-part-1.html)
         | 
| 15 | 
            +
            or [these slides](https://docs.google.com/presentation/d/1Op4FH34-enm8luEIuAAVLkuAJ-sB4LKaMm57RJzvfeI/edit#slide)
         | 
| 16 | 
            +
            for more information on the problem the quality gem solves.
         | 
| 15 17 |  | 
| 16 18 | 
             
            ### Tools
         | 
| 17 19 |  | 
| @@ -34,8 +36,6 @@ Quality makes use of the following other tools, which do the actual checking: | |
| 34 36 |  | 
| 35 37 | 
             
            ## How to use - using Docker
         | 
| 36 38 |  | 
| 37 | 
            -
            These basic steps assume you have a working Docker installation.
         | 
| 38 | 
            -
             | 
| 39 39 | 
             
            ```
         | 
| 40 40 | 
             
            docker run -v `pwd`:/usr/app apiology/quality:latest
         | 
| 41 41 | 
             
            ```
         | 
| @@ -46,14 +46,17 @@ If you'd like to customize, you can link in your own Rakefile like this: | |
| 46 46 | 
             
            docker run -v `pwd`:/usr/app -v `pwd`/Rakefile.quality:/usr/quality/Rakefile apiology/quality:latest
         | 
| 47 47 | 
             
            ```
         | 
| 48 48 |  | 
| 49 | 
            -
            The default 'latest' tag contains the Ruby tools in a relatively small | 
| 49 | 
            +
            The default 'latest' tag contains the Ruby tools in a relatively small
         | 
| 50 | 
            +
            image.  You can also get additional tools (see `Rockerfile` in
         | 
| 51 | 
            +
            this directory) by using the tag `jumbo-`(version) (e.g.,
         | 
| 52 | 
            +
            jumbo-latest, jumbo-x.y.z, etc)
         | 
| 50 53 |  | 
| 51 54 | 
             
            ## How to use - as part of a Ruby-based Rakefile
         | 
| 52 55 |  | 
| 53 56 | 
             
            ```bash
         | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            +
            pip install pep8 flake8
         | 
| 58 | 
            +
            brew install cmake icu4c shellcheck scalastyle # OS X
         | 
| 59 | 
            +
            gem install quality
         | 
| 57 60 | 
             
            ```
         | 
| 58 61 |  | 
| 59 62 | 
             
            or in your Gemfile:
         | 
| @@ -63,10 +66,11 @@ group :development do | |
| 63 66 | 
             
              gem 'quality'
         | 
| 64 67 | 
             
            end
         | 
| 65 68 | 
             
            ```
         | 
| 69 | 
            +
             | 
| 66 70 | 
             
            and then:
         | 
| 67 71 |  | 
| 68 72 | 
             
            ```bash
         | 
| 69 | 
            -
             | 
| 73 | 
            +
            bundle install
         | 
| 70 74 | 
             
            ```
         | 
| 71 75 |  | 
| 72 76 | 
             
            Once you have the gem, configure your Rakefile like this:
         | 
| @@ -77,84 +81,49 @@ require 'quality/rake/task' | |
| 77 81 | 
             
            Quality::Rake::Task.new
         | 
| 78 82 | 
             
            ```
         | 
| 79 83 |  | 
| 84 | 
            +
            If you're using Rails, you must check your environment in your
         | 
| 85 | 
            +
            Rakefile.
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            ```ruby
         | 
| 88 | 
            +
            if Rails.env.development?
         | 
| 89 | 
            +
              require 'quality/rake/task'
         | 
| 90 | 
            +
             | 
| 91 | 
            +
              Quality::Rake::Task.new
         | 
| 92 | 
            +
            end
         | 
| 93 | 
            +
            ```
         | 
| 94 | 
            +
             | 
| 80 95 | 
             
            Then run:
         | 
| 81 96 |  | 
| 82 97 | 
             
            ```bash
         | 
| 83 | 
            -
             | 
| 98 | 
            +
            rake quality
         | 
| 84 99 | 
             
            ```
         | 
| 85 100 |  | 
| 86 101 | 
             
            If you want to ratchet up the quality and force yourself to improve
         | 
| 87 102 | 
             
            code, run:
         | 
| 88 103 |  | 
| 89 104 | 
             
            ```bash
         | 
| 90 | 
            -
             | 
| 105 | 
            +
            rake ratchet
         | 
| 91 106 | 
             
            ```
         | 
| 92 107 |  | 
| 93 108 | 
             
            ## Configuration options
         | 
| 94 109 |  | 
| 95 | 
            -
             | 
| 96 | 
            -
            Quality::Rake::Task.new do |t|
         | 
| 97 | 
            -
              # Name of quality task.
         | 
| 98 | 
            -
              # Defaults to :quality.
         | 
| 99 | 
            -
              t.quality_name = 'quality'
         | 
| 100 | 
            -
             | 
| 101 | 
            -
              # Name of ratchet task.
         | 
| 102 | 
            -
              # Defaults to :ratchet.
         | 
| 103 | 
            -
              t.ratchet_name = 'ratchet'
         | 
| 104 | 
            -
             | 
| 105 | 
            -
              #
         | 
| 106 | 
            -
              # Set minimum values to ratchet to.
         | 
| 107 | 
            -
              #
         | 
| 108 | 
            -
              # Defaults to { bigfiles: 300 }
         | 
| 109 | 
            -
              #
         | 
| 110 | 
            -
              t.minimum_threshold = { bigfiles: 300 }
         | 
| 111 | 
            -
             | 
| 112 | 
            -
              # Array of strings describing tools to be skipped--e.g., ["cane"]
         | 
| 113 | 
            -
              #
         | 
| 114 | 
            -
              # Defaults to []
         | 
| 115 | 
            -
              t.skip_tools = []
         | 
| 116 | 
            -
             | 
| 117 | 
            -
              # Log command executation
         | 
| 118 | 
            -
              #
         | 
| 119 | 
            -
              # Defaults to false
         | 
| 120 | 
            -
              t.verbose = false
         | 
| 121 | 
            -
             | 
| 122 | 
            -
              # Relative path to output directory where *_high_water_mark
         | 
| 123 | 
            -
              # files will be read/written
         | 
| 124 | 
            -
              #
         | 
| 125 | 
            -
              # Defaults to 'metrics'
         | 
| 126 | 
            -
              t.output_dir = 'metrics'
         | 
| 127 | 
            -
             | 
| 128 | 
            -
              # Pipe-separated regexp string describing what to look for in
         | 
| 129 | 
            -
              # files as 'todo'-like 'punchlist' comments.
         | 
| 130 | 
            -
              #
         | 
| 131 | 
            -
              # Defaults to 'XXX|TODO|FIXME|OPTIMIZE|HACK|REVIEW|LATER|FIXIT'
         | 
| 132 | 
            -
              t.punchlist_regexp = 'XXX|TODO|FIXME|OPTIMIZE|HACK|REVIEW|LATER|FIXIT'
         | 
| 133 | 
            -
             | 
| 134 | 
            -
              # Exclude the specified list of files--defaults to ['db/schema.rb']
         | 
| 135 | 
            -
              t.exclude_files = ['lib/whatever/imported_file.rb',
         | 
| 136 | 
            -
                                 'lib/vendor/someone_else_fault.rb']
         | 
| 137 | 
            -
             | 
| 138 | 
            -
              # Alternately, express it as a glob:
         | 
| 139 | 
            -
             | 
| 140 | 
            -
              # Exclude the specified list of files
         | 
| 141 | 
            -
              t.source_files_exclude_glob =
         | 
| 142 | 
            -
                '{lib/whatever/imported_file.rb,lib/vendor/**/*.rb}'
         | 
| 143 | 
            -
             | 
| 144 | 
            -
              #
         | 
| 145 | 
            -
              # For configuration on classifying files as the correct language,
         | 
| 146 | 
            -
              # see https://github.com/github/linguist
         | 
| 147 | 
            -
              #
         | 
| 148 | 
            -
            end
         | 
| 149 | 
            -
            ```
         | 
| 110 | 
            +
            See [CONFIGURATION.md](CONFIGURATION.md)
         | 
| 150 111 |  | 
| 151 112 | 
             
            ## Vendored files
         | 
| 152 113 |  | 
| 153 | 
            -
            Quality uses GitHub's [linguist](https://github.com/github/linguist) | 
| 154 | 
            -
              
         | 
| 114 | 
            +
            Quality uses GitHub's [linguist](https://github.com/github/linguist)
         | 
| 115 | 
            +
            gem to find and classify source files to analyze.  In addition to
         | 
| 116 | 
            +
            the `exclude_files` and `source_files_exclude_glob`
         | 
| 117 | 
            +
            options in Quality, you can refer to
         | 
| 118 | 
            +
            Linguists's documentation on [overrides](https://github.com/github/linguist#overrides)
         | 
| 119 | 
            +
            to use the `gitattributes` file to mark files as vendored, at which point
         | 
| 120 | 
            +
            Quality will not try to analyze them.
         | 
| 121 | 
            +
             | 
| 155 122 | 
             
            ## Code coverage
         | 
| 156 123 |  | 
| 157 | 
            -
            You can pull a similar trick with code coverage using SimpleCov in | 
| 124 | 
            +
            You can pull a similar trick with code coverage using SimpleCov in
         | 
| 125 | 
            +
            Ruby--put 'simplecov' in your Gemfile, and add the code below into
         | 
| 126 | 
            +
            your test_helper.rb or spec_helper.rb.
         | 
| 158 127 |  | 
| 159 128 | 
             
            ```
         | 
| 160 129 | 
             
            require 'simplecov'
         | 
| @@ -164,9 +133,29 @@ SimpleCov.refuse_coverage_drop | |
| 164 133 |  | 
| 165 134 | 
             
            After your first run, check in your coverage/.last_run.json.
         | 
| 166 135 |  | 
| 136 | 
            +
            ## Build
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            On OS X, you may
         | 
| 139 | 
            +
            see [build](https://github.com/brianmario/charlock_holmes/issues/117)
         | 
| 140 | 
            +
            failures in charlock_holmes.  To work around, if you are
         | 
| 141 | 
            +
            using
         | 
| 142 | 
            +
            [Homebrew](https://github.com/brianmario/charlock_holmes#homebrew):
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            ```sh
         | 
| 145 | 
            +
            bundle config build.charlock_holmes --with-cxxflags=-std=c++11 --with-icu-dir=/usr/local/opt/icu4c
         | 
| 146 | 
            +
            ```
         | 
| 147 | 
            +
             | 
| 167 148 | 
             
            ## Caveats
         | 
| 168 149 |  | 
| 169 | 
            -
            Quality uses [semantic versioning](http://semver.org/)--any incompatible changes | 
| 150 | 
            +
            Quality uses [semantic versioning](http://semver.org/)--any incompatible changes
         | 
| 151 | 
            +
            (including new tools being added) will come out as major number
         | 
| 152 | 
            +
            updates.
         | 
| 153 | 
            +
             | 
| 154 | 
            +
            This includes RuboCop upgrades - the quality gem locks in a specific
         | 
| 155 | 
            +
            minor version of RuboCop to avoid your metrics being bumped and
         | 
| 156 | 
            +
            breaking your build.
         | 
| 157 | 
            +
             | 
| 158 | 
            +
            Expect your build to break on major upgrades if you use RuboCop.
         | 
| 170 159 |  | 
| 171 160 | 
             
            ## Supported Ruby Versions
         | 
| 172 161 |  | 
| @@ -178,11 +167,8 @@ Tested against Ruby >=2.2--does not support Ruby 1.9.x or JRuby. | |
| 178 167 | 
             
            * Create a feature branch
         | 
| 179 168 | 
             
            * Submit a github pull request
         | 
| 180 169 |  | 
| 181 | 
            -
            Many thanks to all contributors, especially [@andyw8](https://github.com/andyw8), | 
| 182 | 
            -
             | 
| 183 | 
            -
            ### Learn More
         | 
| 184 | 
            -
             | 
| 185 | 
            -
            * Browse the code or install the latest development version from [https://github.com/apiology/quality/tree](https://github.com/apiology/quality/tree)
         | 
| 170 | 
            +
            Many thanks to all contributors, especially [@andyw8](https://github.com/andyw8),
         | 
| 171 | 
            +
            who has contributed some great improvements.
         | 
| 186 172 |  | 
| 187 173 | 
             
            ## License
         | 
| 188 174 |  | 
    
        data/lib/quality/config.rb
    CHANGED
    
    
| @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 2 3 | 
             
            require 'rugged'
         | 
| 3 4 | 
             
            require 'linguist'
         | 
| 4 5 |  | 
| @@ -118,9 +119,7 @@ module Quality | |
| 118 119 | 
             
                end
         | 
| 119 120 |  | 
| 120 121 | 
             
                def real_files_of_type(file_type)
         | 
| 121 | 
            -
                  real_files_matching  | 
| 122 | 
            -
                    blob.language.to_s == file_type
         | 
| 123 | 
            -
                  end
         | 
| 122 | 
            +
                  real_files_matching { |blob, _filename| blob.language.to_s == file_type }
         | 
| 124 123 | 
             
                end
         | 
| 125 124 |  | 
| 126 125 | 
             
                def markdown_files
         | 
    
        data/lib/quality/process.rb
    CHANGED
    
    
| @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 2 3 | 
             
            require_relative 'command_output_processor'
         | 
| 3 4 | 
             
            require_relative 'process'
         | 
| 4 5 | 
             
            require_relative 'ruby_spawn'
         | 
| @@ -60,8 +61,10 @@ module Quality | |
| 60 61 | 
             
                def check_exit_status(exit_status)
         | 
| 61 62 | 
             
                  return if @command_options[:gives_error_code_on_violations] ||
         | 
| 62 63 | 
             
                            @command_options[:gives_error_code_on_no_relevant_code]
         | 
| 64 | 
            +
                  return unless exit_status.nonzero?
         | 
| 65 | 
            +
             | 
| 63 66 | 
             
                  raise("Error detected running #{full_cmd}.  " \
         | 
| 64 | 
            -
                        "Exit status is #{exit_status}") | 
| 67 | 
            +
                        "Exit status is #{exit_status}")
         | 
| 65 68 | 
             
                end
         | 
| 66 69 |  | 
| 67 70 | 
             
                MAX_VIOLATIONS = 9_999_999_999
         | 
    
        data/lib/quality/rake/task.rb
    CHANGED
    
    | @@ -1,4 +1,3 @@ | |
| 1 | 
            -
            #!/usr/bin/env ruby
         | 
| 2 1 | 
             
            # frozen_string_literal: true
         | 
| 3 2 |  | 
| 4 3 | 
             
            # XXX: There's an underlying issue with bundler, and knowing my luck,
         | 
| @@ -79,8 +78,10 @@ module Quality | |
| 79 78 | 
             
                  end
         | 
| 80 79 |  | 
| 81 80 | 
             
                  def define
         | 
| 82 | 
            -
                     | 
| 83 | 
            -
             | 
| 81 | 
            +
                    unless ::Rake.application.last_description
         | 
| 82 | 
            +
                      desc 'Verify quality has increased or stayed ' \
         | 
| 83 | 
            +
                           'the same'
         | 
| 84 | 
            +
                    end
         | 
| 84 85 | 
             
                    @dsl.define_task(quality_name) { @runner.run_quality }
         | 
| 85 86 | 
             
                    @dsl.define_task(ratchet_name) { @runner.run_ratchet }
         | 
| 86 87 | 
             
                    @runner.tools.each do |tool_name, tool_exe|
         | 
    
        data/lib/quality/version.rb
    CHANGED
    
    
    
        data/quality.gemspec
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            # ; -*-Ruby-*-
         | 
| 3 3 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 4 | 
            +
             | 
| 4 5 | 
             
            $LOAD_PATH.push File.join(File.dirname(__FILE__), 'lib')
         | 
| 5 6 | 
             
            require 'quality/version'
         | 
| 6 7 |  | 
| @@ -31,20 +32,26 @@ Gem::Specification.new do |s| | |
| 31 32 | 
             
              s.summary = 'Code quality tools for Ruby'
         | 
| 32 33 |  | 
| 33 34 | 
             
              s.add_runtime_dependency('activesupport')
         | 
| 34 | 
            -
              s.add_runtime_dependency(' | 
| 35 | 
            +
              s.add_runtime_dependency('bundler-audit')
         | 
| 35 36 | 
             
              s.add_runtime_dependency('cane', ['>= 2.6'])
         | 
| 36 | 
            -
              s.add_runtime_dependency('reek', ['>= 1.3.4'])
         | 
| 37 37 | 
             
              s.add_runtime_dependency('flog', ['>= 4.1.1'])
         | 
| 38 | 
            -
              s.add_runtime_dependency(' | 
| 38 | 
            +
              s.add_runtime_dependency('github-linguist')
         | 
| 39 | 
            +
              s.add_runtime_dependency('reek', ['>= 1.3.4'])
         | 
| 39 40 | 
             
              # flay 2.6.0 contained a command-line-parsing issue
         | 
| 40 41 | 
             
              s.add_runtime_dependency('flay', ['>= 2.4', '!= 2.6.0'])
         | 
| 41 | 
            -
               | 
| 42 | 
            +
              #
         | 
| 43 | 
            +
              # per version advice here - locks quality gem version with rubocop
         | 
| 44 | 
            +
              # version to avoid unexplained metric-changing surprises:
         | 
| 45 | 
            +
              #
         | 
| 46 | 
            +
              # https://github.com/bbatsov/rubocop#installation
         | 
| 42 47 | 
             
              s.add_runtime_dependency('mdl')
         | 
| 43 | 
            -
              s.add_runtime_dependency('rubocop | 
| 48 | 
            +
              s.add_runtime_dependency('rubocop', '~> 0.51.0')
         | 
| 49 | 
            +
              # 1.19.0 was a RuboCop 0.51.0 compatibility release
         | 
| 44 50 | 
             
              s.add_runtime_dependency('bigfiles', ['>= 0.1'])
         | 
| 45 | 
            -
              s.add_runtime_dependency('punchlist', ['>= 1.1'])
         | 
| 46 51 | 
             
              s.add_runtime_dependency('brakeman')
         | 
| 52 | 
            +
              s.add_runtime_dependency('punchlist', ['>= 1.1'])
         | 
| 47 53 | 
             
              s.add_runtime_dependency('rails_best_practices')
         | 
| 54 | 
            +
              s.add_runtime_dependency('rubocop-rspec', ['>=1.19.0'])
         | 
| 48 55 |  | 
| 49 56 | 
             
              # need above 3.2.2 to support Ruby 2.0 syntax
         | 
| 50 57 | 
             
              #
         | 
| @@ -57,8 +64,8 @@ Gem::Specification.new do |s| | |
| 57 64 | 
             
              s.add_development_dependency('bundler', ['>= 1.1'])
         | 
| 58 65 | 
             
              # Workaround for
         | 
| 59 66 | 
             
              # https://github.com/bundler/bundler/issues/3401
         | 
| 67 | 
            +
              s.add_development_dependency('minitest', ['~> 5'])
         | 
| 68 | 
            +
              s.add_development_dependency('mocha')
         | 
| 60 69 | 
             
              s.add_development_dependency('rake', ['!= 10.4.2'])
         | 
| 61 70 | 
             
              s.add_development_dependency('simplecov')
         | 
| 62 | 
            -
              s.add_development_dependency('mocha')
         | 
| 63 | 
            -
              s.add_development_dependency('minitest', ['~> 5'])
         | 
| 64 71 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: quality
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 28.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Vince Broz
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-11-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -25,7 +25,7 @@ dependencies: | |
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name:  | 
| 28 | 
            +
              name: bundler-audit
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - ">="
         | 
| @@ -53,47 +53,47 @@ dependencies: | |
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: '2.6'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            -
              name:  | 
| 56 | 
            +
              name: flog
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 59 | 
             
                - - ">="
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: 1. | 
| 61 | 
            +
                    version: 4.1.1
         | 
| 62 62 | 
             
              type: :runtime
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 66 | 
             
                - - ">="
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: 1. | 
| 68 | 
            +
                    version: 4.1.1
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            -
              name:  | 
| 70 | 
            +
              name: github-linguist
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 73 | 
             
                - - ">="
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version:  | 
| 75 | 
            +
                    version: '0'
         | 
| 76 76 | 
             
              type: :runtime
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 80 | 
             
                - - ">="
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version:  | 
| 82 | 
            +
                    version: '0'
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            -
              name:  | 
| 84 | 
            +
              name: reek
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 86 | 
             
                requirements:
         | 
| 87 87 | 
             
                - - ">="
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            -
                    version:  | 
| 89 | 
            +
                    version: 1.3.4
         | 
| 90 90 | 
             
              type: :runtime
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 94 | 
             
                - - ">="
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            -
                    version:  | 
| 96 | 
            +
                    version: 1.3.4
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: flay
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -115,7 +115,7 @@ dependencies: | |
| 115 115 | 
             
                  - !ruby/object:Gem::Version
         | 
| 116 116 | 
             
                    version: 2.6.0
         | 
| 117 117 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 118 | 
            -
              name:  | 
| 118 | 
            +
              name: mdl
         | 
| 119 119 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 120 120 | 
             
                requirements:
         | 
| 121 121 | 
             
                - - ">="
         | 
| @@ -129,47 +129,47 @@ dependencies: | |
| 129 129 | 
             
                  - !ruby/object:Gem::Version
         | 
| 130 130 | 
             
                    version: '0'
         | 
| 131 131 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 132 | 
            -
              name:  | 
| 132 | 
            +
              name: rubocop
         | 
| 133 133 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 134 134 | 
             
                requirements:
         | 
| 135 | 
            -
                - - " | 
| 135 | 
            +
                - - "~>"
         | 
| 136 136 | 
             
                  - !ruby/object:Gem::Version
         | 
| 137 | 
            -
                    version:  | 
| 137 | 
            +
                    version: 0.51.0
         | 
| 138 138 | 
             
              type: :runtime
         | 
| 139 139 | 
             
              prerelease: false
         | 
| 140 140 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 141 141 | 
             
                requirements:
         | 
| 142 | 
            -
                - - " | 
| 142 | 
            +
                - - "~>"
         | 
| 143 143 | 
             
                  - !ruby/object:Gem::Version
         | 
| 144 | 
            -
                    version:  | 
| 144 | 
            +
                    version: 0.51.0
         | 
| 145 145 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 146 | 
            -
              name:  | 
| 146 | 
            +
              name: bigfiles
         | 
| 147 147 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 148 148 | 
             
                requirements:
         | 
| 149 149 | 
             
                - - ">="
         | 
| 150 150 | 
             
                  - !ruby/object:Gem::Version
         | 
| 151 | 
            -
                    version: '0'
         | 
| 151 | 
            +
                    version: '0.1'
         | 
| 152 152 | 
             
              type: :runtime
         | 
| 153 153 | 
             
              prerelease: false
         | 
| 154 154 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 155 155 | 
             
                requirements:
         | 
| 156 156 | 
             
                - - ">="
         | 
| 157 157 | 
             
                  - !ruby/object:Gem::Version
         | 
| 158 | 
            -
                    version: '0'
         | 
| 158 | 
            +
                    version: '0.1'
         | 
| 159 159 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 160 | 
            -
              name:  | 
| 160 | 
            +
              name: brakeman
         | 
| 161 161 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 162 162 | 
             
                requirements:
         | 
| 163 163 | 
             
                - - ">="
         | 
| 164 164 | 
             
                  - !ruby/object:Gem::Version
         | 
| 165 | 
            -
                    version: '0 | 
| 165 | 
            +
                    version: '0'
         | 
| 166 166 | 
             
              type: :runtime
         | 
| 167 167 | 
             
              prerelease: false
         | 
| 168 168 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 169 169 | 
             
                requirements:
         | 
| 170 170 | 
             
                - - ">="
         | 
| 171 171 | 
             
                  - !ruby/object:Gem::Version
         | 
| 172 | 
            -
                    version: '0 | 
| 172 | 
            +
                    version: '0'
         | 
| 173 173 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 174 174 | 
             
              name: punchlist
         | 
| 175 175 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -185,7 +185,7 @@ dependencies: | |
| 185 185 | 
             
                  - !ruby/object:Gem::Version
         | 
| 186 186 | 
             
                    version: '1.1'
         | 
| 187 187 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 188 | 
            -
              name:  | 
| 188 | 
            +
              name: rails_best_practices
         | 
| 189 189 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 190 190 | 
             
                requirements:
         | 
| 191 191 | 
             
                - - ">="
         | 
| @@ -199,19 +199,19 @@ dependencies: | |
| 199 199 | 
             
                  - !ruby/object:Gem::Version
         | 
| 200 200 | 
             
                    version: '0'
         | 
| 201 201 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 202 | 
            -
              name:  | 
| 202 | 
            +
              name: rubocop-rspec
         | 
| 203 203 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 204 204 | 
             
                requirements:
         | 
| 205 205 | 
             
                - - ">="
         | 
| 206 206 | 
             
                  - !ruby/object:Gem::Version
         | 
| 207 | 
            -
                    version:  | 
| 207 | 
            +
                    version: 1.19.0
         | 
| 208 208 | 
             
              type: :runtime
         | 
| 209 209 | 
             
              prerelease: false
         | 
| 210 210 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 211 211 | 
             
                requirements:
         | 
| 212 212 | 
             
                - - ">="
         | 
| 213 213 | 
             
                  - !ruby/object:Gem::Version
         | 
| 214 | 
            -
                    version:  | 
| 214 | 
            +
                    version: 1.19.0
         | 
| 215 215 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 216 216 | 
             
              name: ruby_parser
         | 
| 217 217 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -261,21 +261,21 @@ dependencies: | |
| 261 261 | 
             
                  - !ruby/object:Gem::Version
         | 
| 262 262 | 
             
                    version: '1.1'
         | 
| 263 263 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 264 | 
            -
              name:  | 
| 264 | 
            +
              name: minitest
         | 
| 265 265 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 266 266 | 
             
                requirements:
         | 
| 267 | 
            -
                - - " | 
| 267 | 
            +
                - - "~>"
         | 
| 268 268 | 
             
                  - !ruby/object:Gem::Version
         | 
| 269 | 
            -
                    version:  | 
| 269 | 
            +
                    version: '5'
         | 
| 270 270 | 
             
              type: :development
         | 
| 271 271 | 
             
              prerelease: false
         | 
| 272 272 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 273 273 | 
             
                requirements:
         | 
| 274 | 
            -
                - - " | 
| 274 | 
            +
                - - "~>"
         | 
| 275 275 | 
             
                  - !ruby/object:Gem::Version
         | 
| 276 | 
            -
                    version:  | 
| 276 | 
            +
                    version: '5'
         | 
| 277 277 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 278 | 
            -
              name:  | 
| 278 | 
            +
              name: mocha
         | 
| 279 279 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 280 280 | 
             
                requirements:
         | 
| 281 281 | 
             
                - - ">="
         | 
| @@ -289,33 +289,33 @@ dependencies: | |
| 289 289 | 
             
                  - !ruby/object:Gem::Version
         | 
| 290 290 | 
             
                    version: '0'
         | 
| 291 291 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 292 | 
            -
              name:  | 
| 292 | 
            +
              name: rake
         | 
| 293 293 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 294 294 | 
             
                requirements:
         | 
| 295 | 
            -
                - - " | 
| 295 | 
            +
                - - "!="
         | 
| 296 296 | 
             
                  - !ruby/object:Gem::Version
         | 
| 297 | 
            -
                    version:  | 
| 297 | 
            +
                    version: 10.4.2
         | 
| 298 298 | 
             
              type: :development
         | 
| 299 299 | 
             
              prerelease: false
         | 
| 300 300 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 301 301 | 
             
                requirements:
         | 
| 302 | 
            -
                - - " | 
| 302 | 
            +
                - - "!="
         | 
| 303 303 | 
             
                  - !ruby/object:Gem::Version
         | 
| 304 | 
            -
                    version:  | 
| 304 | 
            +
                    version: 10.4.2
         | 
| 305 305 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 306 | 
            -
              name:  | 
| 306 | 
            +
              name: simplecov
         | 
| 307 307 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 308 308 | 
             
                requirements:
         | 
| 309 | 
            -
                - - " | 
| 309 | 
            +
                - - ">="
         | 
| 310 310 | 
             
                  - !ruby/object:Gem::Version
         | 
| 311 | 
            -
                    version: ' | 
| 311 | 
            +
                    version: '0'
         | 
| 312 312 | 
             
              type: :development
         | 
| 313 313 | 
             
              prerelease: false
         | 
| 314 314 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 315 315 | 
             
                requirements:
         | 
| 316 | 
            -
                - - " | 
| 316 | 
            +
                - - ">="
         | 
| 317 317 | 
             
                  - !ruby/object:Gem::Version
         | 
| 318 | 
            -
                    version: ' | 
| 318 | 
            +
                    version: '0'
         | 
| 319 319 | 
             
            description: Quality is a tool that runs quality checks on your code using community
         | 
| 320 320 | 
             
              tools, and makes sure your numbers don't get any worse over time. Just add 'rake
         | 
| 321 321 | 
             
              quality' as part of your Continuous Integration
         | 
| @@ -325,7 +325,7 @@ executables: [] | |
| 325 325 | 
             
            extensions: []
         | 
| 326 326 | 
             
            extra_rdoc_files: []
         | 
| 327 327 | 
             
            files:
         | 
| 328 | 
            -
            -  | 
| 328 | 
            +
            - License.txt
         | 
| 329 329 | 
             
            - README.md
         | 
| 330 330 | 
             
            - lib/quality/command_output_processor.rb
         | 
| 331 331 | 
             
            - lib/quality/config.rb
         | 
| @@ -376,7 +376,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 376 376 | 
             
                  version: '0'
         | 
| 377 377 | 
             
            requirements: []
         | 
| 378 378 | 
             
            rubyforge_project: 
         | 
| 379 | 
            -
            rubygems_version: 2.6. | 
| 379 | 
            +
            rubygems_version: 2.6.14
         | 
| 380 380 | 
             
            signing_key: 
         | 
| 381 381 | 
             
            specification_version: 4
         | 
| 382 382 | 
             
            summary: Code quality tools for Ruby
         |