web-dev-qa-db-ja.com

rubocop欠けている魔法のコメントをどのように修正しますか

Rubyコードのライブラリがあり、実行する欠陥を探すために

$ rubocop

そして私は得る

$ rubocop
Inspecting 153 files
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCWCCCCCCCWWCCCCC

Offenses:

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

Rubocopが文句を言わないようにするには、Gemfileでどのような変更が必要ですか?

追加するだけ

# frozen_string_literal: true

各Rubyファイルの最初の行に。または実行

rubocop -a

rubocopが修正可能なすべての違反を自動的に修正できるようにします。

ところで私はRubocopが好きで、自分で使用しますが、見つかったものをdefectsとは呼びません。同僚との話し合いの提案や理由のようなリストをもっと見ます。

22
spickermann

より具体的にしたい場合は、rubocop foronly# frozen_string_literal: trueを使用できます--onlyフラグオプション:

指定された部署で指定された警官や警官のみを実行します。

それらのファイルを表示するには:

rubocop --only Style/FrozenStringLiteralComment

これらの特定のファイルを自動修正するには、-aフラグ(前の回答で述べたとおり):

rubocop --only Style/FrozenStringLiteralComment -a

Rubocopの基本的な使用法のセクションで、より多くの コマンドラインフラグ を表示できます。

9
jdgray

-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では、凍結された文字列リテラルがデフォルトになります。コメントはシバンとエンコーディングのコメントの下に追加されます。フリーズされた文字列リテラルコメントは、Ruby 2.3以降でのみ有効です。

1
anothermh

無視したい場合は、.rubocop.yml

Style/FrozenStringLiteralComment:
  Enabled: false

しかし、知りたいかもしれません 「マジックコメント」とは 、特にRuby 2.xを使用している場合)