【发布时间】:2016-02-16 14:51:42
【问题描述】:
您好,我是 ruby 编程的新手。 在我的项目中运行 rubocop 检查,它说:
方法行数过多。 [13/10] 定义刷新状态
这是我的方法:
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。 -
rubocop 不允许使用并行(单行)assingments @sschmeck
标签: ruby enumerable rubocop