2016-07-07 16 views
6

Posiadam standard kodowania, który sugeruje, że początkowy argument trójskładnika powinien zawsze znajdować się w nawiasie, niezależnie od wyrażenia.Jak mogę wymusić trójstronne nawiasy przy pomocy RuboCop?

E.g. foo = (thing.baz?) ? [] : thing.bar

Następujące należy uznać za wykroczenie:

Np foo = thing.baz? ? [] : thing.bar

Czy można to osiągnąć za pomocą wbudowanych policjantów Rubocop, czy też wymaga to niestandardowego policjanta. Jeśli tak, w jaki sposób mogę go wdrożyć?

+0

AFIAK, nie ma takiego policjanta po wyjęciu z pudełka. W [testach typu "rubocop"] (https://github.com/nevir/rubocop-rspec/tree/master/lib/rubocop/cop/rspec) znajdują się przykłady i krótkie dokumenty na temat tworzenia niestandardowych gliniarzy. – mudasobwa

Odpowiedz

12

Widziałem twoje pytanie, więc poszedłem do przodu i wdrożyłem policjanta dla ciebie. Nazwa jest Style/TernaryParentheses, a opcja EnforcedStyle chcesz to require_parentheses

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

Można rozpocząć korzystanie z niego już teraz, poprzez umieszczenie tego w Gemfile (nie domyślnym.):

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

lub ci może poczekać na wydanie wersji 0.42.0.

+0

To jest niesamowite. Dziękuję bardzo! – qnm

+0

Bez obaw. Nie wahaj się składać raportów o błędach lub żądań funkcji w repozytorium GitHub. To wszystko jest bardzo pomocne. :-) – Drenmi