2016-07-07 15 views
6

Tôi có một tiêu chuẩn mã hóa cho thấy đối số ban đầu cho một số ba phải luôn nằm trong dấu ngoặc đơn, bất kể biểu thức.Làm cách nào để có thể thực thi dấu ngoặc đơn với RuboCop?

Ví dụ: foo = (thing.baz?) ? [] : thing.bar

Sau đây cần được coi là vi phạm:

Ví dụ: foo = thing.baz? ? [] : thing.bar

Có thể đạt được điều này với Cops tích hợp sẵn của Rubocop hay không yêu cầu Cop tùy chỉnh. Nếu vậy, làm thế nào tôi sẽ thực hiện nó?

+0

AFIAK, không có cảnh sát nào ra khỏi hộp. Trong [thử nghiệm rubocop] (https://github.com/nevir/rubocop-rspec/tree/master/lib/rubocop/cop/rspec) có các ví dụ và tài liệu ngắn gọn về cách tạo cảnh sát tùy chỉnh. – mudasobwa

Trả lời

12

Tôi đã xem câu hỏi của bạn, vì vậy tôi đã tiếp tục và triển khai cảnh sát cho bạn. Tên là Style/TernaryParentheses, và EnforcedStyle tùy chọn bạn muốn là require_parentheses

# .rubocop.yml 
Style/TernaryParentheses: 
    Enabled: true 
    EnforcedStyle: require_parentheses 

Bạn có thể bắt đầu sử dụng nó ngay bây giờ, bằng cách đặt này trong Gemfile của bạn (không phải là mặc định.):

gem 'rubocop', git: 'git://github.com/bbatsov/rubocop.git' 

hoặc bạn có thể chờ bản phát hành 0.42.0.

+0

Thật tuyệt vời. Cảm ơn bạn rất nhiều! – qnm

+0

Không phải lo lắng. Đừng ngần ngại gửi báo cáo lỗi hoặc yêu cầu tính năng trong repo GitHub. Nó rất hữu ích. :-) – Drenmi

Các vấn đề liên quan