web-dev-qa-db-fra.com

rubocop comment réparer le commentaire magique manquant

J'ai une bibliothèque de Ruby code, et pour rechercher les défauts que je lance

$ rubocop

Et je reçois

$ rubocop
Inspecting 153 files
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCWCCCCCCCWWCCCCC

Offenses:

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

Quelles modifications sont nécessaires dans mon Gemfile pour que Rubocop ne se plaint pas?

10

Il suffit d'ajouter

# frozen_string_literal: true

à la première ligne de chaque fichier Ruby. Ou exécutez

rubocop -a

pour permettre à Rubocop de corriger automatiquement toutes les infractions qu'il est en mesure de corriger.

Btw. J'aime Rubocop et je l'utilise moi-même, mais je n'appellerais pas les choses qu'il trouve défauts. Je vois la liste plus comme des suggestions ou des raisons pour une discussion avec mes collègues.

22
spickermann

Si vous voulez être plus précis et exécuter rubocop pour uniquement # frozen_string_literal: true vous pouvez utiliser le --only option indicateur:

Exécutez uniquement le ou les flics et/ou les flics spécifiés dans les services spécifiés.

Pour afficher ces fichiers:

rubocop --only Style/FrozenStringLiteralComment

Pour corriger automatiquement ces fichiers spécifiques, utilisez le -a drapeau (comme mentionné dans une réponse précédente):

rubocop --only Style/FrozenStringLiteralComment -a

Vous pouvez voir plus drapeaux de ligne de commande dans la section d'utilisation de base de Rubocop.

9
jdgray

Essayez d'exécuter Rubocop avec le -D option:

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'
^

Ajouter -D obligera Rubocop à imprimer le nom du flic qui a été violé, dans ce cas Style/FrozenStringLiteralComment. Vous pouvez ensuite rechercher ce flic dans la documentation Rubocop:

http://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/FrozenStringLiteralComment

Ce flic est conçu pour faciliter la mise à niveau vers Ruby 3.0. Il ajoutera le commentaire # frozen_string_literal: true en haut des fichiers pour activer les littéraux de chaîne figés. Les littéraux de chaîne figés seront par défaut dans Ruby 3.0. Le commentaire sera ajouté sous un Shebang et un commentaire de codage. Le commentaire de littéral de chaîne figé n'est valide que dans Ruby 2.3+.

1
anothermh

Si vous voulez l'ignorer, ajoutez à votre .rubocop.yml

Style/FrozenStringLiteralComment:
  Enabled: false

Mais peut-être voulez-vous savoir ce qu'est un "commentaire magique" , surtout si vous utilisez Ruby 2.x

0