I got the below Rake Task, that runs one a day to settle some bets in my application. But I'm pretty sure it can be simplyfied, so the IF-THEN statements can b replaced with s CASE stement.
I assume the multiple IF statements takes longer to run then the same process with the CASE option. Is that correct?
I'm just not sure how to convert it from the IF-THEN to the CASE option..
task :settle => :environment do
@bets = Bet.where(:settle => false)
@bets.each do |bet|
if not bet.value.nil?
if bet.price.value > bet.value and bet.buy == true then
bet.profitloss = 10
bet.settle = true
bet.save
end
if bet.price.value < bet.value and bet.buy == false then
bet.profitloss = 10
bet.settle = true
bet.save
end
if bet.price.value > bet.value and bet.buy == false then
bet.profitloss = -10
bet.settle = true
bet.save
end
if bet.price.value < bet.value and bet.buy == true then
bet.profitloss = -10
bet.settle = true
bet.save
end
if bet.price.value = bet.value then
bet.profitloss = -10
bet.settled = true
bet.save
end
end
end
end