2017-05-23 3 views
1

코드베이스에서 unscoped의 사용을 권장하지 않습니다. rubocop에 키워드를 지정할 수있는 기존 링크가 있습니까? 그렇지 않다면, 나는 그것을 성취하기 위해 주문 경찰관을 써야합니까?Rubocop에 특정 방법/키워드 사용법을 확인하는 방법은 무엇입니까?

+1

http://www.rubydoc.info/github/bbatsov/RuboCop/RuboCop/NodePattern을 볼'하는 방법입니다 unscoped' -하지 키워드. 키워드는 'if, else, case, do, when'와 같이 구문 분석기에 특별한 의미가있는 식별자입니다. – max

+0

[이 호] (https://github.com/bbatsov/rubocop/issues/2939)를 본 후 대답은 맞춤 경찰을 작성하는 것입니다. – BoraMa

답변

0

제 동료가 도와주었습니다. 우리가 주문 경찰을 쓸 필요가있는 것처럼 보입니다.

module RuboCop 
    module Cop 
    module Hired 
     class Unscoped < Cop 
     MSG = "Avoid using `unscoped`." 

     def_node_matcher :unscoped?, <<-END 
      (send _ :unscoped) 
     END 

     def on_send(node) 
      return unless unscoped?(node) 
      add_offense(node, :expression, MSG % node.source) 
     end 
     end 
    end 
    end 
end 

이 폴더에 드롭 같은 lib/cops/ 다음 .rubocop.yml이 추가 말 :

require: 
- ./lib/cops/<whatever_you_called_the_file>.rb 

+0

좋아 보인다! :-) 마지막 인수를 생략하면'MSG'가 자동으로'# add_offense'에 전달됩니다. – Drenmi