【问题标题】:Can I get Devise to generate rubocop-approved code?我可以让 Devise 生成 rubocop 批准的代码吗?
【发布时间】:2019-03-30 15:44:47
【问题描述】:

我想使用包括 Devise、authority 和 rolify 在内的多种工具创建一个新的 API/MVC 项目。我想在这个新建项目中建立的一件事是让我的代码库保持干净,并且我想从第一天开始就对它进行 lint。我尝试这样做,但 rubocop 回来时出现 228 个错误。这与这些工具生成的模板代码背道而驰。你能生成 linter 友好的模板文件吗?如果可以的话,我是否注定要修复错误/放入大量异常?

【问题讨论】:

    标签: ruby-on-rails devise rubocop rolify


    【解决方案1】:

    很遗憾,不可能。

    即使您从头开始引导一个新的 Rails 项目,Rubocop 也会发现问题。例如,某些代码行将被Metrics/LineLength 警察检测为​​冒犯。

    您可能想知道为什么 Rails 不事先解决这些问题,这样人们就可以获得一个新项目而不会受到任何冒犯。答案是,Rails 作为一个项目不接受与“外观”更改相关的拉取请求。因此,没有人解决这些问题。 Here is这个决定的解释。 Devise、Simpleform 等工具也存在同样的情况。

    另一方面,Rubocop 是一个很棒的工具,但并非所有开发人员都同意默认设置。这就是为什么存在名为 .rubocop.yml 的东西的原因。

    我是代码质量的忠实拥护者,因此非常感谢您的意图。您可以尝试通过使用 -a 标志 (rubocop -a) 调用 rubocop 来修复其中的许多攻击,然后手动修复其余部分。在此之后,您将不会收到类似的冒犯消息。

    我正在使用 Rubocop 来防止 ruby​​ 代码异味,将 erblint 用作 ERB linter,将 HTMLHint 用作 HTML linter。我将所有这些工具组合在一个名为 quality 的 rake 任务中。当我运行quality:all 时,我会自动检查我的代码库是否存在错误、拼写错误和违规行为。可以看到任务here

    【讨论】:

    • 主要目的是从一个经过 linter 批准的代码库开始,这样它就可以在 CI/CD 中干净地进行 linted。我会考虑使用.rubocop.yml
    猜你喜欢
    • 2022-08-17
    • 2013-12-13
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2015-01-20
    相关资源
    最近更新 更多