我可以让 Devise 生成 rubocop 批准的代码吗?

Can I get Devise to generate rubocop-approved code?

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

很遗憾,不可能。

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

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

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

我是代码质量的忠实拥护者,所以我非常感谢您的意图。您可以尝试通过使用 -a 标志 (rubocop -a) 调用 rubocop 来修复其中的许多违规行为,然后手动修复其余问题。之后您将不会再收到类似的冒犯信息。

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