[ruby] Rubocop Linelength : 주석이있는 줄을 무시하는 방법?

Rails 4 앱을 사용하여 줄이 긴지 확인할 때 Rubocop이 주석이있는 줄 (주석 또는 줄 끝이있는 일부 코드)을 무시하도록하고 싶습니다. 이 작업을 수행하는 방법이 있습니까?



답변

라인 단위로 경찰을 무시하는 방법이 있습니다.

구성 파일을 통해 수행하는 방법도 있습니다.

실행 rubocop --auto-gen-config하면 위법 행위를 비활성화하는 데 사용할 수있는 파일이 생성됩니다.

이 명령은 또한 이러한 옵션을로드하기 위해 수행 할 작업에 대한 힌트를 제공합니다.

라인 단위로 경찰도 활성화 및 비활성화 할 수 있습니다.

# rubocop:disable RuleByName
This is a long line 
# rubocop:enable RuleByName

코드에서 한 번에 둘 이상의 규칙을 수행 할 수도 있습니다.

# rubocop:disable BlockComments, AsciiComments

인라인 지시문을 사용하면 지시문은 해당 행에 대해서만 유효하며 다음과 같습니다.

# Thanks to @jnt30 for the comment!
method(argument) # rubocop:disable SomeRule, SomeOtherRule

공식 매뉴얼 에서 RuboCop에 대해 더 많이 읽을 수 있습니다 .

모든 규칙 이름을 찾으려면 rubocop 구성 파일에서 살펴볼 가치가 있습니다.

cyberwiz 는 ” rubocop -D문서를 보지 않고 규칙 이름이 필요할 때 실행합니다.”라고 말합니다 . 업데이트 : 이제 플래그가없는 기본 동작입니다.


답변

의 특정 줄을 자동으로 무시하도록 정규식 패턴을 정의 rubocop.yml할 수 있으므로 #문자로 시작하는 모든 줄을 무시하도록 선택할 수 있습니다 .

Metrics/LineLength:
  Max: 80
  IgnoredPatterns: ['\A#']

원하는 경우 “들여 쓰기”주석 줄 (즉, 공백 뒤에 문자가 오는 #)도 무시 되도록 개선 할 수 있습니다 .

그러나 주석으로 끝나는 코드 줄은 고려하지 않습니다 .

some_code(that_does_something) # This line would NOT be ignored by Rubocop.


답변

rubocop에서 다음 주석을 사용하여 특정 규칙을 무시할 수 있습니다.

# rubocop:disable Metrics/LineLength
def this_could_be_a_very_long_line_that_extends_forever_into_infinity
end
# rubocop:enable Metrics/LineLength

전체 파일을 다음에 추가하여 무시할 수도 있습니다 .rubocop.yml.

AllCops:
  Exclude:
    - path/to/file.rb


답변

나는 여기서 기본 아이디어는 n 문자 뒤에 무엇이 있든 상관없이 줄 길이를 적용하고 싶다는 것입니다. 80 자 기본값은 해당 문자 수만 저장할 수있는 오래된 터미널 창을위한화물 컬트입니다. 코드에서 본 유일한 옵션 은 문자 제한을 초과 할 수있는 URL을 허용하는 옵션입니다.

당신은 전체 파일을 무시할있습니다 , 나는 당신이 찾고있는 것이 아니라고 생각합니다.


답변