RuboCop жалуется при использовании 'Hash.new'

RuboCop жалуется, когда я использую Hash.newи предлагает использовать вместо этого хеш-литерал. Есть ли способ заставить RuboCop игнорировать использование Hash.new? Более конкретно, могу ли я отредактировать мой .rubocop.yml конфигурация, чтобы позволить использование Hash.new без каких-либо жалоб?

2 ответа

Решение

Вы можете отключить Rubocop::Cop::Style::EmptyLiteral Коп в файле rubocop.yml:

# .rubocop.yml
Style:
  EmptyLiteral: false

Или, если вы хотите просто игнорировать определенную строку:

hsh = Hash.new # rubocop:disable Style/EmptyLiteral

В соответствии с Руководством по Ruby Style литеральный массив и нотация создания хеша предпочтительны, если вам не нужно передавать параметры их конструкторам. Таким образом, чтобы следовать руководству, вы должны использовать hash = {} вместо hash = Hash.new,

Я бы следовал соглашениям в руководстве, но в случае, если вы этого не хотите, вы можете отключить полицейского Style/EmptyLiteral, как и любого другого полицейского, локально или глобально.

глобально

Добавить к вам rubocop.yml файл:

Style:
  EmptyLiteral: false

в местном масштабе

# rubocop:disable Style/EmptyLiteral
hash = Hash.new 
# rubocop:enable Style/EmptyLiteral

или короткая версия для одной строки:

hash = Hash.new # rubocop:disable Style/EmptyLiteral

Для получения дополнительной информации о том, как настроить Rubocop, проверьте его документацию.

Другие вопросы по тегам