37

I will like to disable a cop for a specific block or method.

I know it is possible to disable a cop for the whole project using .rubocop.yml but I just want to deactivate the cop temporarily for a specific portion of the code

fguillen
  • 36,125
  • 23
  • 149
  • 210

2 Answers2

45

I answer my question because it is always very difficult for me to find the reference to this solution:

# rubocop:disable Metrics/MethodLength
def my_code
  ..
end
# rubocop:enable Metrics/MethodLength

Same for multiple cops:

# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
def my_code
  ..
end
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength

Documentation: https://docs.rubocop.org/rubocop/configuration.html#disabling-cops-within-source-code

fguillen
  • 36,125
  • 23
  • 149
  • 210
15

If you want to disable the cop for a particular line, you can just use something like this

 before_action :authenticate_user!, except: [:index, :show] # rubocop:disable Style/SymbolArray

No need to enable it again. If there is a block of code and you want to enable or disable the cop, then as suggested above, you can follow that approach.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Pramod Itagi
  • 191
  • 6