如何使用RuboCop强制执行三元括号?

时间:2016-07-07 04:17:57

标签: ruby rubocop

我有一个编码标准,表明无论表达式如何,三元的初始参数应始终在括号内。

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

以下内容应被视为违规行为:

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

使用Rubocop的内置警察是否可以实现这一点,或者这需要自定义警察。如果是这样,我将如何实现它?

1 个答案:

答案 0 :(得分:13)

我看到了你的问题,所以我继续为你实施警察。名称为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发布。