我有一个编码标准,暗示三元组的初始参数应该总是在括号内,而不管表达式如何。如何使用RuboCop强制执行三元括号?
E.g. foo = (thing.baz?) ? [] : thing.bar
以下应被视为违规:
例如foo = thing.baz? ? [] : thing.bar
是否有可能与Rubocop的内置警察做到这一点,或者这也需要定制警察。如果是这样,我将如何实现它?
我有一个编码标准,暗示三元组的初始参数应该总是在括号内,而不管表达式如何。如何使用RuboCop强制执行三元括号?
E.g. foo = (thing.baz?) ? [] : thing.bar
以下应被视为违规:
例如foo = thing.baz? ? [] : thing.bar
是否有可能与Rubocop的内置警察做到这一点,或者这也需要定制警察。如果是这样,我将如何实现它?
我看到你的问题,所以我继续实施警察为您服务。这个名字是Style/TernaryParentheses
,并且希望EnforcedStyle
选项require_parentheses
# .rubocop.yml
Style/TernaryParentheses:
Enabled: true
EnforcedStyle: require_parentheses
你可以开始使用它,现在,通过把这个在您的Gemfile
(不是默认):
gem 'rubocop', git: 'git://github.com/bbatsov/rubocop.git'
,或者你可以等待0.42.0
版本。
AFIAK,开箱即用没有这样的警察。在[rubocop测试](https://github.com/nevir/rubocop-rspec/tree/master/lib/rubocop/cop/rspec)中有关于如何创建自定义警察的示例和简要文档。 – mudasobwa