class Superbowl::Grid

Attributes

squares[R]

Public Class Methods

new(squares) click to toggle source
# File lib/superbowl/grid.rb, line 12
def initialize(squares)
  @squares = squares
end
parse(filename) click to toggle source
# File lib/superbowl/grid.rb, line 8
def self.parse(filename)
  new(CSV.open(filename, col_sep: "\t").to_a)
end

Public Instance Methods

contestants(box_score_history) click to toggle source
# File lib/superbowl/grid.rb, line 16
def contestants(box_score_history)
  contestants_by_name = {}

  @squares.each_with_index do |row, row_index|
    row.each_with_index do |owner, col_index|
      c = contestants_by_name[owner] ||= Contestant.new(owner, 0, 0)
      c.expected_payout += box_score_history.ratio(row_index, col_index) * 1000
      c.num_squares += 1
    end
  end

  contestants_by_name.values.sort_by(&:expected_payout).reverse
end