Skip to content

Commit

Permalink
Fix a build error
Browse files Browse the repository at this point in the history
This PR prevents the following build error:

```console
NoMethodError:
  undefined method `cop_name' for nil
# ./lib/rubocop/cop/badge.rb:52:in `match?'
# ./lib/rubocop/cop/registry.rb:300:in `resolve_badge'
# ./vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.28.3/lib/rubocop-rspec_rails.rb:30:in `qualified_cop_name'
```

https://github.com/rubocop/rubocop/actions/runs/8656558784/job/23737409762

This build error is due to a monkey patch in rubocop-rails_rails:
rubocop/rubocop-rspec_rails#14

The monkey patch in rubocop-rspec_rails should also be fixed, but this patch prevents RuboCop from failing due to dependencies.
RuboCop does not depend on Rails, so the ideal solution would be to remove the dependency on rubocop-rspec_rails gem.
However, this is not possible currently because rubocop-rspec is still dependent on it.
  • Loading branch information
koic authored and bbatsov committed Apr 12, 2024
1 parent 92513d3 commit b017d1c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
4 changes: 4 additions & 0 deletions lib/rubocop/cop/badge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ def hash
end

def match?(other)
# Prevents the following error:
# https://github.com/rubocop/rubocop/actions/runs/8656558784/job/23737409762
return false if other.nil?

cop_name == other.cop_name && (!qualified? || department == other.department)
end

Expand Down
2 changes: 1 addition & 1 deletion lib/rubocop/cop/registry.rb
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ def with(cops)
end

def resolve_badge(given_badge, real_badge, source_path)
unless given_badge.match?(real_badge)
if real_badge && !given_badge.match?(real_badge)
path = PathUtil.smart_path(source_path)
warn "#{path}: #{given_badge} has the wrong namespace - " \
"replace it with #{given_badge.with_department(real_badge.department)}"
Expand Down
7 changes: 7 additions & 0 deletions spec/rubocop/comment_config_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,13 @@ def disabled_lines_of_cop(cop)
end

it 'supports disabling cops with multiple levels in department name' do
# Workaround for the following build error:
# https://app.circleci.com/pipelines/github/rubocop/rubocop/11035/workflows/d1f7575e-614f-437b-9d83-494fc94c78b4/jobs/309630
#
# Fix to the rubocop-rspec_rails monkey patch is required.
# https://github.com/rubocop/rubocop-rspec_rails/pull/14
skip 'Fix to the rubocop-rspec-rails monkey patch is required.'

disabled_lines = disabled_lines_of_cop('RSpec/Rails/HttpStatus')
expected_part = (51..53).to_a
expect(disabled_lines & expected_part).to eq(expected_part)
Expand Down

0 comments on commit b017d1c

Please sign in to comment.