【问题标题】:Rubocop/Hound recommend freezing string literal class namesRubocop/Hound 建议冻结字符串文字类名
【发布时间】:2016-09-16 18:46:52
【问题描述】:

我的项目使用 HoundCI 作为代码 linter,我相信它在内部使用 rubocop。

最近我开始注意到这种警告 -

它出现在每个类定义中(例如class User < ActiveRecord::Base)。

我了解冻结字符串字面量的概念,但为什么它希望我冻结类定义?更重要的是,如何禁用它?有 10 多个这样的“错误”污染了我们的拉取请求,这很烦人。

谢谢!

编辑: 看起来它也开始出现在使用字符串文字的 require 语句中,例如 rspec 测试。这绝对是新的,以前没有被标记过

【问题讨论】:

    标签: ruby-on-rails rubocop


    【解决方案1】:

    看起来 Hound/Rubocop 正在检测违反 FrozenStringLiteralComment cop 的行为。

    这个 cop 旨在帮助升级到 Ruby 3.0。它将注释 # frozen_string_literal: true 添加到文件顶部以启用冻结字符串文字。 Ruby 3.0 将默认冻结字符串文字。注释将添加到 shebang 和编码注释下方。冻结的字符串文字注释仅在 Ruby 2.3+ 中有效。

    您可以手动将魔术注释添加到文件顶部

    # frozen_string_literal: true
    

    或者让 Rubocop 为你做这件事

    $ bundle exec rubocop --auto-correct --only FrozenStringLiteralComment
    

    您也可以忽略rubocop.ymlStyle/FrozenStringLiteralComment 中的警察

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 2016-11-14
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 2016-09-04
      • 2021-05-27
      • 1970-01-01
      相关资源
      最近更新 更多