ruby rubocop你怎么修复丢失的魔术评论

vsnjm48y  于 2023-04-05  发布在  Ruby
关注(0)|答案(4)|浏览(119)

我有一个Ruby代码库,为了查找缺陷,我运行

$ rubocop

我得到

$ rubocop
Inspecting 153 files
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCWCCCCCCCWWCCCCC

Offenses:

Gemfile:1:1: C: Missing magic comment # frozen_string_literal: true.
source "https://rubygems.org"

在我的Gemfile中需要做哪些修改才能使rubocop不抱怨?

7gcisfzg

7gcisfzg1#

只要加上

# frozen_string_literal: true

到每个Ruby文件的第一行。或者运行

rubocop -a

允许Rubocop自动修复它能够修复的所有违法行为。
顺便说一句,我喜欢Rubocop,我自己也在用它,但我不会把它发现的东西称为缺陷。我把它看作是建议或与同事讨论的理由。

1yjd4xko

1yjd4xko2#

如果你想更具体地运行rubocop * only* # frozen_string_literal: true,你可以使用--only标志选项:
仅运行指定的cop和/或指定部门中的cop。
要查看这些文件,请执行以下操作:

rubocop --only Style/FrozenStringLiteralComment

要自动更正这些特定文件,请使用-a标志(如in a previous, now accepted answer所述):

rubocop --only Style/FrozenStringLiteralComment -A

您可以查看有关自动更正here的详细信息。

sd2nnvve

sd2nnvve3#

如果您想忽略它,请添加到.rubocop.yml

Style/FrozenStringLiteralComment:
  Enabled: false

但是您可能想知道what "Magic comment" is,尤其是如果您使用的是Ruby 2.x

brvekthn

brvekthn4#

尝试使用-D选项运行Rubocop:

rubocop -D
Inspecting 1 file
C

Offenses:

spec/rails_helper.rb:1:1: C: Style/FrozenStringLiteralComment: Missing magic comment # frozen_string_literal: true.
require 'spec_helper'
^

添加-D将导致Rubocop打印被违反的cop的名称,在本例中为Style/FrozenStringLiteralComment。然后您可以搜索该cop in the Rubocop documentation
此cop旨在帮助升级到Ruby 3.0。它将在文件顶部添加注解# frozen_string_literal: true以启用冻结字符串。冻结字符串将在Ruby 3.0中默认。注解将添加在shebang和编码注解下方。冻结字符串注解仅在Ruby 2.3+中有效。

相关问题