rubocop-gradual 0.3.4 → 0.3.5
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 +15 -1
- data/lib/rubocop/gradual/cli.rb +9 -1
- data/lib/rubocop/gradual/commands/autocorrect.rb +2 -2
- data/lib/rubocop/gradual/commands/base.rb +4 -6
- data/lib/rubocop/gradual/git.rb +1 -1
- data/lib/rubocop/gradual/patch.rb +11 -12
- data/lib/rubocop/gradual/process/printer.rb +7 -4
- data/lib/rubocop/gradual/process.rb +3 -1
- data/lib/rubocop/gradual/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 750548fbcac00bd48721d0c3f1b0b7a43b5cf77aaafe7a81d6f58bfbe6edc2e6
         | 
| 4 | 
            +
              data.tar.gz: dfba66113c744a92a51b6c72e6bec157c12dd721cee9d8a1d033a0845b4bf0ab
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d713758f60a7b2ee780aeafda2fb01c6eb2f68f5a97aa521da5b1ef57a5a33bf3d3fa05b9dfb0f9d231ac3f0d107b72b7af1260eb9e76f6ae259bc3a619d1190
         | 
| 7 | 
            +
              data.tar.gz: 1e4286b97788902cfc101698cb31ae756a70c2419d824ae3b547db1eb060a2cc36e6fc6eb334007658ef3c0ffec8ba484b257770d0e025768c1bf70aef58e419
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning]. | |
| 7 7 |  | 
| 8 8 | 
             
            ## [Unreleased]
         | 
| 9 9 |  | 
| 10 | 
            +
            ## [0.3.5] - 2024-06-24
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ### Added
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            - Add support for the RuboCop `--list` option. ([@skryukov])
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ### Fixed
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            - Respect files passed to RuboCop in required mode. ([@skryukov])
         | 
| 19 | 
            +
            - Exclude deleted files when running `--staged`. ([@dmorgan-fa])
         | 
| 20 | 
            +
            - Don't show "EVEN BETTER" instruction when all issues are fixed. ([@skryukov])
         | 
| 21 | 
            +
             | 
| 10 22 | 
             
            ## [0.3.4] - 2023-10-26
         | 
| 11 23 |  | 
| 12 24 | 
             
            ### Fixed
         | 
| @@ -103,9 +115,11 @@ RuboCop::Gradual::RakeTask.new | |
| 103 115 |  | 
| 104 116 | 
             
            - Initial implementation. ([@skryukov])
         | 
| 105 117 |  | 
| 118 | 
            +
            [@dmorgan-fa]: https://github.com/dmorgan-fa
         | 
| 106 119 | 
             
            [@skryukov]: https://github.com/skryukov
         | 
| 107 120 |  | 
| 108 | 
            -
            [Unreleased]: https://github.com/skryukov/rubocop-gradual/compare/v0.3. | 
| 121 | 
            +
            [Unreleased]: https://github.com/skryukov/rubocop-gradual/compare/v0.3.5...HEAD
         | 
| 122 | 
            +
            [0.3.5]: https://github.com/skryukov/rubocop-gradual/compare/v0.3.4...v0.3.5
         | 
| 109 123 | 
             
            [0.3.4]: https://github.com/skryukov/rubocop-gradual/compare/v0.3.3...v0.3.4
         | 
| 110 124 | 
             
            [0.3.3]: https://github.com/skryukov/rubocop-gradual/compare/v0.3.2...v0.3.3
         | 
| 111 125 | 
             
            [0.3.2]: https://github.com/skryukov/rubocop-gradual/compare/v0.3.1...v0.3.2
         | 
    
        data/lib/rubocop/gradual/cli.rb
    CHANGED
    
    | @@ -10,11 +10,19 @@ module RuboCop | |
| 10 10 | 
             
                  def run(argv = ARGV)
         | 
| 11 11 | 
             
                    Configuration.apply(*Options.new.parse(argv))
         | 
| 12 12 | 
             
                    puts "Gradual mode: #{Configuration.mode}" if Configuration.debug?
         | 
| 13 | 
            -
                    load_command(Configuration.command) | 
| 13 | 
            +
                    cmd = load_command(Configuration.command)
         | 
| 14 | 
            +
                    return list_target_files(cmd) if Configuration.rubocop_options[:list_target_files]
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    cmd.call.to_i
         | 
| 14 17 | 
             
                  end
         | 
| 15 18 |  | 
| 16 19 | 
             
                  private
         | 
| 17 20 |  | 
| 21 | 
            +
                  def list_target_files(cmd)
         | 
| 22 | 
            +
                    cmd.lint_paths.each { |path| puts PathUtil.relative_path(path) }
         | 
| 23 | 
            +
                    1
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 18 26 | 
             
                  def load_command(command)
         | 
| 19 27 | 
             
                    require_relative "commands/#{command}"
         | 
| 20 28 | 
             
                    ::RuboCop::Gradual::Commands.const_get(command.to_s.capitalize).new
         | 
| @@ -20,14 +20,14 @@ module RuboCop | |
| 20 20 | 
             
                      Base.new.call
         | 
| 21 21 | 
             
                    end
         | 
| 22 22 |  | 
| 23 | 
            -
                    private
         | 
| 24 | 
            -
             | 
| 25 23 | 
             
                    def lint_paths
         | 
| 26 24 | 
             
                      return Configuration.target_file_paths if Configuration.lint_paths.any?
         | 
| 27 25 |  | 
| 28 26 | 
             
                      changed_or_untracked_files.map(&:path)
         | 
| 29 27 | 
             
                    end
         | 
| 30 28 |  | 
| 29 | 
            +
                    private
         | 
| 30 | 
            +
             | 
| 31 31 | 
             
                    def changed_or_untracked_files
         | 
| 32 32 | 
             
                      tracked_files = LockFile.new(Configuration.path).read_results&.files || []
         | 
| 33 33 |  | 
| @@ -23,6 +23,10 @@ module RuboCop | |
| 23 23 | 
             
                      1
         | 
| 24 24 | 
             
                    end
         | 
| 25 25 |  | 
| 26 | 
            +
                    def lint_paths
         | 
| 27 | 
            +
                      Configuration.target_file_paths
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
             | 
| 26 30 | 
             
                    private
         | 
| 27 31 |  | 
| 28 32 | 
             
                    def run_rubocop
         | 
| @@ -36,12 +40,6 @@ module RuboCop | |
| 36 40 | 
             
                      rubocop_runner.run
         | 
| 37 41 | 
             
                    end
         | 
| 38 42 |  | 
| 39 | 
            -
                    def lint_paths
         | 
| 40 | 
            -
                      return [] if Configuration.lint_paths.empty?
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                      Configuration.target_file_paths
         | 
| 43 | 
            -
                    end
         | 
| 44 | 
            -
             | 
| 45 43 | 
             
                    def rubocop_options
         | 
| 46 44 | 
             
                      Configuration.rubocop_options
         | 
| 47 45 | 
             
                                   .slice(:config, :debug, :display_time)
         | 
    
        data/lib/rubocop/gradual/git.rb
    CHANGED
    
    | @@ -14,7 +14,7 @@ module RuboCop | |
| 14 14 | 
             
                      when :unstaged
         | 
| 15 15 | 
             
                        `git ls-files --others --exclude-standard -m`.split("\n")
         | 
| 16 16 | 
             
                      when :staged
         | 
| 17 | 
            -
                        `git diff --cached --name-only`.split("\n")
         | 
| 17 | 
            +
                        `git diff --cached --name-only --diff-filter=d`.split("\n") # excludes deleted files
         | 
| 18 18 | 
             
                      else
         | 
| 19 19 | 
             
                        `git diff --name-only #{commit}`.split("\n")
         | 
| 20 20 | 
             
                      end
         | 
| @@ -9,23 +9,22 @@ module RuboCop | |
| 9 9 | 
             
                  def run_command(name)
         | 
| 10 10 | 
             
                    return super if name != :execute_runner || (ARGV & %w[--stdin -s]).any?
         | 
| 11 11 |  | 
| 12 | 
            -
                     | 
| 13 | 
            -
                    puts "Gradual mode: #{Configuration.mode}" if Configuration.debug?
         | 
| 14 | 
            -
                    load_command(Configuration.command).call.to_i
         | 
| 12 | 
            +
                    RuboCop::Gradual::CLI.new.run(patched_argv)
         | 
| 15 13 | 
             
                  end
         | 
| 16 14 |  | 
| 17 15 | 
             
                  private
         | 
| 18 16 |  | 
| 19 | 
            -
                  def  | 
| 20 | 
            -
                     | 
| 21 | 
            -
                    ::RuboCop::Gradual::Commands.const_get(command.to_s.capitalize).new
         | 
| 22 | 
            -
                  end
         | 
| 17 | 
            +
                  def patched_argv
         | 
| 18 | 
            +
                    return ARGV if ARGV[0] != "gradual"
         | 
| 23 19 |  | 
| 24 | 
            -
             | 
| 25 | 
            -
                     | 
| 26 | 
            -
             | 
| 27 | 
            -
                     | 
| 28 | 
            -
             | 
| 20 | 
            +
                    case ARGV[1]
         | 
| 21 | 
            +
                    when "force_update"
         | 
| 22 | 
            +
                      ARGV[2..] + ["--force-update"]
         | 
| 23 | 
            +
                    when "check"
         | 
| 24 | 
            +
                      ARGV[2..] + ["--check"]
         | 
| 25 | 
            +
                    else
         | 
| 26 | 
            +
                      raise ArgumentError, "Unknown gradual command #{ARGV[1]}"
         | 
| 27 | 
            +
                    end
         | 
| 29 28 | 
             
                  end
         | 
| 30 29 | 
             
                end
         | 
| 31 30 | 
             
              end
         | 
| @@ -12,16 +12,19 @@ module RuboCop | |
| 12 12 | 
             
                    def print_results
         | 
| 13 13 | 
             
                      puts diff.statistics if Configuration.debug?
         | 
| 14 14 |  | 
| 15 | 
            -
                      send "print_#{diff.state}"
         | 
| 15 | 
            +
                      send :"print_#{diff.state}"
         | 
| 16 16 | 
             
                    end
         | 
| 17 17 |  | 
| 18 | 
            -
                    def print_ci_warning(diff)
         | 
| 18 | 
            +
                    def print_ci_warning(diff, statistics:)
         | 
| 19 19 | 
             
                      puts <<~MSG
         | 
| 20 20 | 
             
                        \n#{bold("Unexpected Changes!")}
         | 
| 21 21 |  | 
| 22 22 | 
             
                        RuboCop Gradual lock file is outdated, to fix this message:
         | 
| 23 | 
            -
                        - Run `rubocop-gradual` locally and commit the results | 
| 24 | 
            -
             | 
| 23 | 
            +
                        - Run `rubocop-gradual` locally and commit the results#{
         | 
| 24 | 
            +
                          if statistics[:unchanged] != statistics[:left]
         | 
| 25 | 
            +
                            ", or\n- EVEN BETTER: before doing the above, try to fix the remaining issues in those files!"
         | 
| 26 | 
            +
                          end
         | 
| 27 | 
            +
                        }
         | 
| 25 28 |  | 
| 26 29 | 
             
                        #{bold("`#{Configuration.path}` diff:")}
         | 
| 27 30 |  | 
| @@ -23,7 +23,9 @@ module RuboCop | |
| 23 23 | 
             
                    printer = Printer.new(diff)
         | 
| 24 24 |  | 
| 25 25 | 
             
                    printer.print_results
         | 
| 26 | 
            -
                     | 
| 26 | 
            +
                    if fail_with_outdated_lock?(diff)
         | 
| 27 | 
            +
                      printer.print_ci_warning(lock_file.diff(new_results), statistics: diff.statistics)
         | 
| 28 | 
            +
                    end
         | 
| 27 29 |  | 
| 28 30 | 
             
                    exit_code = error_code(diff)
         | 
| 29 31 | 
             
                    sync_lock_file(diff) if exit_code.zero?
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rubocop-gradual
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Svyatoslav Kryukov
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-06-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: diff-lcs
         | 
| @@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 152 152 | 
             
                - !ruby/object:Gem::Version
         | 
| 153 153 | 
             
                  version: '0'
         | 
| 154 154 | 
             
            requirements: []
         | 
| 155 | 
            -
            rubygems_version: 3. | 
| 155 | 
            +
            rubygems_version: 3.5.7
         | 
| 156 156 | 
             
            signing_key:
         | 
| 157 157 | 
             
            specification_version: 4
         | 
| 158 158 | 
             
            summary: Gradual RuboCop plugin
         |