Как опустить внешние скобки вокруг хеша неявных опций в Rubocop?

Рубокоп не ругается на код, где в параметр метода передается хеш с круглыми скобками, например:

user.set({ name: 'John', age: 45, permissions: { read: true } })

Мне бы хотелось, чтобы он считал правильными только такие строки:

user.set(name: 'John', age: 45, permissions: { read: true })

Я нашел эту проблему. Означает ли это, что я не смогу настроить для этого рубокоп?

Не эксперт по Rubocop, но бывают случаи, когда отсутствие фигурных скобок приводит к некорректному коду.

Dennis Hackethal 31.07.2024 02:27
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
0
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку аргументы ключевого слова меняются в Ruby 2.7 и 3.0, эти 2 больше не эквивалентны.

Иногда фигурные скобки необходимы для того, чтобы метод правильно понял аргументы.

Пример:

def foo(x = {}, y: 1)
  puts x.inspect
  puts y.inspect
end

foo({y: 2}) # {:y=>2}; 1
foo(y: 2) # {}; 2

Именно поэтому опция была удалена из Рубокопа в найденной вами задаче и вряд ли будет добавлена ​​повторно.

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