Ошибка 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.

код работает корректно, но рубокопу это не нравится. Как лучше всего улучшить стиль этого кода, сохранив при этом ту же функциональность?


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
Хорошо, я не знаю почему, но я пытался заставить выходное присваивание быть в операторе. Думаю, я не совсем понял, о чем говорило предложение rubocop/style. Это намного чище, хотя. - person Bill Warner; 18.08.2015