Skip to content

Instantly share code, notes, and snippets.

@faizaanshamsi
Created November 19, 2013 22:18
Show Gist options
  • Save faizaanshamsi/7553592 to your computer and use it in GitHub Desktop.
Save faizaanshamsi/7553592 to your computer and use it in GitHub Desktop.
Check out my 1 line ternary!
data = [
{
home_team: "Patriots",
away_team: "Broncos",
home_score: 7,
away_score: 3
},
{
home_team: "Broncos",
away_team: "Colts",
home_score: 3,
away_score: 0
},
{
home_team: "Patriots",
away_team: "Colts",
home_score: 11,
away_score: 7
},
{
home_team: "Steelers",
away_team: "Patriots",
home_score: 7,
away_score: 21
}
]
def winloss(winner, loser, leaderboard)
winner_record = leaderboard[winner] || { wins: 0, losses: 0 }
winner_record[:wins] += 1
loser_record = leaderboard[loser] || { wins: 0, losses: 0 }
loser_record[:losses] += 1
leaderboard[winner] = winner_record
leaderboard[loser] = loser_record
end
leaderboard = {}
data.each do |game|
game[:home_score] > game[:away_score] ? winloss(game[:home_team], game[:away_team], leaderboard) : winloss(game[:away_team], game[:home_team], leaderboard)
end
leaderboard.each.with_index(1) do |(name, winlosshash), i|
puts "#{i}. #{name} #{winlosshash[:wins]} wins, #{winlosshash[:losses]} losses"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment