Грешка на Ruby lint какъв е правилният начин да напишете това с предпазна клауза

Опитва се да се изпълни команда, ако успехът продължава, ако неуспехът извежда грешка и изпраща команди към конзолата.

output = `#{command}`
unless $CHILD_STATUS.success?
  raise "#{command} failed with:\n#{output}"
end

C: Use a guard clause instead of wrapping the code inside a conditional expression.

кодът функционира правилно, но rubocop не го харесва. Кой би бил най-добрият начин да подобря стила на този код и все още да ми предоставя същата функционалност?


person Bill Warner    schedule 18.08.2015    source източник
comment
Това вътре в метод ли е? Имаме нужда от повече контекст, за да го променим, за да удовлетворим предложението на Rubocup.   -  person sawa    schedule 18.08.2015


Отговори (1)


Опитайте тази

raise "#{command} failed with:\n#{output}" unless $CHILD_STATUS.success?
person Alexandre Voyer    schedule 18.08.2015
comment
Добре, не знам защо, но се опитвах да накарам присвояването на изхода в оператора unless. Предполагам, че не разбрах какво казва предложението rubocop/style. Това обаче е много по-чисто. - person Bill Warner; 18.08.2015