我有一个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不抱怨?
答案 0 :(得分:13)
添加
# frozen_string_literal: true
到每个Ruby文件的第一行。或者运行
rubocop -a
允许Rubocop自动修复所有可以修复的攻击。</ p>
顺便说一下。我喜欢Rubocop并自己使用它,但我不会把它找到的东西称为缺陷。我看到这份清单更像是与同事讨论的建议或理由。
答案 1 :(得分:2)
如果您想更具体一点,并且仅对 rubocop
运行# frozen_string_literal: true
,则可以使用--only
标志选项:
只运行指定部门中的指定警察和/或警察。
要查看这些文件,请执行以下操作:
rubocop --only Style/FrozenStringLiteralComment
要自动更正那些特定文件,请使用-a
标志(如上一个答案中所述):
rubocop --only Style/FrozenStringLiteralComment -a
您可以在Rubocop的基本用法部分中查看更多Command-line flags。
答案 2 :(得分:1)
尝试使用-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打印违反警察的名称,在本例中为Style/FrozenStringLiteralComment
。然后,您可以在Rubocop文档中搜索该警察:
http://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/FrozenStringLiteralComment
此警察旨在帮助升级到Ruby 3.0。它会将注释
# frozen_string_literal: true
添加到文件顶部以启用冻结字符串文字。在Ruby 3.0中,冻结的字符串文字将是默认的。评论将添加到shebang和编码评论下面。冻结的字符串文字注释仅在Ruby 2.3 +中有效。
答案 3 :(得分:0)
如果您想忽略它,请添加到您的.rubocop.yml
Style/FrozenStringLiteralComment:
Enabled: false
但是也许您想了解what "Magic comment" is,尤其是在使用Ruby 2.x的情况下