rubocop как ты исправляешь отсутствующий магический комментарий
У меня есть библиотека кода 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 не жаловался?
2 ответа
Просто добавь
# frozen_string_literal: true
в первой строке каждого файла Ruby. Или беги
rubocop -a
разрешить Rubocop исправлять все нарушения, которые он может исправить автоматически.
Btw. Я люблю Rubocop и использую его сам, но я бы не назвал вещи, которые он находит, дефектами. Я вижу список больше как предложения или причины для обсуждения с моими коллегами.
Если вы хотите быть более конкретным и запустить rubocop
только для# frozen_string_literal: true
Вы можете использовать --only
опция флага:
Запускайте только указанных полицейских и / или полицейских в указанных отделах.
Для просмотра этих файлов:
rubocop --only Style/FrozenStringLiteralComment
Для автозамены этих конкретных файлов используйте -a
флаг (как упоминалось в предыдущем ответе):
rubocop --only Style/FrozenStringLiteralComment -a
Вы можете посмотреть другие флаги командной строки в разделе основного использования Rubocop.
Если вы хотите проигнорировать это, добавьте в свой .rubocop.yml
Style/FrozenStringLiteralComment:
Enabled: false
Но, возможно, вы захотите узнать, что такое "Волшебный комментарий", особенно если вы используете Ruby 2.x
Попробуйте запустить Rubocop с -D
опция:
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
заставит Рубокопа напечатать имя полицейского, который был нарушен, в этом случае 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+.