Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rubocop, how to Disable/Enable cops on blocks of code

Tags:

ruby

rubocop

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

like image 303
fguillen Avatar asked Dec 22 '22 15:12

fguillen


2 Answers

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

like image 57
fguillen Avatar answered Jan 10 '23 05:01

fguillen


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.

like image 33
Pramod Itagi Avatar answered Jan 10 '23 07:01

Pramod Itagi