【问题标题】:How can I enforce ternary parentheses with RuboCop?如何使用 RuboCop 强制使用三元括号?
【发布时间】:2016-07-07 04:17:57
【问题描述】:

我有一个编码标准,建议三元组的初始参数应始终放在括号内,而不管表达式如何。

例如foo = (thing.baz?) ? [] : thing.bar

以下情况应视为违规:

例如foo = thing.baz? ? [] : thing.bar

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

【问题讨论】:

  • AFIAK,没有这样一个开箱即用的警察。在rubocop tests 中有关于如何创建自定义警察的示例和简要文档。

标签: ruby rubocop


【解决方案1】:

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

【讨论】:

  • 太棒了。非常感谢!
  • 不用担心。不要犹豫,在 GitHub 存储库中提交错误报告或功能请求。这一切都非常有帮助。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 2018-07-14
  • 1970-01-01
相关资源
最近更新 更多