class SportsbookAg::Feed::Game

Attributes

_data[R]
home[R]
home_moneyline[R]
home_spread[R]
over[R]
total[R]
under[R]
visitor[R]
visitor_moneyline[R]
visitor_spread[R]

Public Class Methods

new(data) click to toggle source
# File lib/sportsbook_ag/game.rb, line 7
def initialize(data)
  @_data = data
  @updated_at = Time.now
  parse
end

Private Instance Methods

parse() click to toggle source
# File lib/sportsbook_ag/game.rb, line 15
def parse
  desc = Nokogiri::HTML(_data[:description])
  @elements = desc.xpath('//body').first.children

  parse_teams
  parse_lines
  parse_total
end
parse_lines() click to toggle source
# File lib/sportsbook_ag/game.rb, line 24
def parse_lines
  teams = { home: [6, 8], visitor: [2, 4] }
  teams.each do |team, num|
    instance_variable_set("@#{team}_spread", parse_spread(@elements[num[0]]))
    instance_variable_set("@#{team}_moneyline", Line.new(:moneyline, @elements[num[1]].text.to_i))
  end
end
parse_moneyline(element) click to toggle source
# File lib/sportsbook_ag/game.rb, line 40
def parse_moneyline(element)

end
parse_spread(element) click to toggle source
# File lib/sportsbook_ag/game.rb, line 44
def parse_spread(element)
  spread = element.text.split(' ')
  Line.new(:spread, spread.last[1...-1].to_i, spread.first.to_d)
end
parse_teams() click to toggle source
# File lib/sportsbook_ag/game.rb, line 49
def parse_teams
  teams = _data[:title].split(' @ ')
  @visitor = teams.first
  @home = teams.last
end
parse_total() click to toggle source
# File lib/sportsbook_ag/game.rb, line 32
def parse_total
  over = @elements[10].text.split(' ')
  under = @elements[12].text.split(' ')
  @total = over[1].to_d
  @over = Line.new(:total, over[2][1...-1].to_i, @total)
  @under = Line.new(:total, under[2][1...-1].to_i, @total)
end