Я искал информацию об этом в документации Rubocop, но не могу понять, что происходит.
Начиная с fre sh Rails-приложения (6.0.2.2) под названием «Foo» , Я добавляю следующие драгоценные камни в свой Gemfile и устанавливаю их:
gem 'rubocop', '~> 0.80.0', require: false
gem 'rubocop-checkstyle_formatter', require: false
gem 'rubocop-rails_config', require: false
В настоящее время разрешенная версия RuboCop (с учетом имеющихся у меня ограничений версии) - 0.80.1
.
Затем я добавляю простая модель: rails g model user name:string
, которая создает app/models/user.rb
. Запустите RuboCop только для этого файла без какого-либо настраиваемого файла конфигурации, и он только жалуется на отсутствие замороженного строкового литерала. Я делаю это в контексте моего пакета с bundle exec rubocop app/models/user.rb
и получаю следующее:
Inspecting 1 file
C
Offenses:
app/models/user.rb:1:1: C: Style/FrozenStringLiteralComment: Missing frozen string literal comment.
class User < ApplicationRecord
^
Затем добавляю свой собственный .rubocop.yml
файл в проект с включенным правилом, которое отличается от значения по умолчанию из стандартной конфигурации:
Naming/FileName:
ExpectMatchingDefinition: true
При повторном запуске анализа это новое нарушение обнаруживается:
app/models/user.rb:1:1: C: Naming/FileName: user.rb should define a class or module called Foo::App::Models::User.
class User < ApplicationRecord
^
Обратите внимание, как он хочет, чтобы класс User
определялся как Foo::App::Models::User
. Это происходит со мной с каждым файлом, который я оцениваю. Я стер все свои драгоценные камни и даже свой Ruby и переустановил, но проблема не устранена. Странно то, что другие коллеги не могут воспроизвести проблему.
Кто-нибудь это видел? Благодарю за помощь!