Здравствуйте, я новичок в программировании ruby. Ran rubocop в моем проекте, и он говорит:Rubocop: метод имеет слишком много строк
Метод имеет слишком много линий. [13/10] Защита refresh_status
Вот мои методы:
def refresh_status
lost = false
in_progress = false
won = false
@bets.each do |bet|
lost = true if bet.result == :lost
if bet.result == :canceled
@to_return /= bet.odd
won = true
end
in_progress = true if bet.result == :in_progress
won = true if bet.result == :won
end
def_result_after_refresh(lost, in_progress, won)
end
def def_result_after_refresh(lost, in_progress, won)
if lost
@result = :lost
elsif in_progress
@result = :in_progress
elsif won
@result = :won
end
end
Не можешь найти способ, чтобы сделать этот метод короче, может быть, вы могли бы помочь?
Все ваши условия, сравнивающие 'bet.result'. Вы можете использовать оператор 'case', чтобы сделать ваш код более выразительным, но, возможно, не короче. Поэтому вы можете выполнить инициализацию в одной строке: «lost», «in_progress», «won» = «false», «false», «false»). – sschmeck
rubocop не разрешает использовать параллельную (одну строку) assingsments @sschmeck – user3662708