class Fonecal::EventCrawler

Public Instance Methods

circuitInfo() click to toggle source
# File lib/fonecal/event_crawler.rb, line 7
def circuitInfo
  ci = {}

  @site.css('div.circuitInfoBox table tr').each do |row|
    ci[row.css('td')[0].content.strip] = row.css('td')[1].content.strip
  end

  city = @site.css('h3.inDetailCircuitName').text

  ci['City:'] = city

  return ci
end
gp() click to toggle source
# File lib/fonecal/event_crawler.rb, line 3
def gp
  @site.css('div.raceResultsHeading').text.strip
end
timeTables() click to toggle source
# File lib/fonecal/event_crawler.rb, line 21
def timeTables
  tables = []
  @site.css('div#ctl00_ContentSub_Timetable1_subModuleContentDiv table').each do |tt|
    tables << parseTimeTable(tt)
  end

  tables
end

Private Instance Methods

parseTimeTable(table) click to toggle source
# File lib/fonecal/event_crawler.rb, line 42
def parseTimeTable(table)
  info = {}

  rows = table.css 'tr'

  # The date is the first row in teh table
  info[:date] = rows[0].text.strip

  # Now extract info from each of the remaining rows
  # Example: Practice 1 12:30 - 14:00 is stored in a row
  info[:sessions] ||= []
  rows[1..-1].each do |row|
    info[:sessions] << sessionData(row)
  end

  info
end
sessionData(row) click to toggle source
# File lib/fonecal/event_crawler.rb, line 32
def sessionData(row)
  inf = {}

  sessData = row.css('td')
  inf[:type] = sessData[0].text.strip
  inf[:start] = sessData[1].css('span')[0].text.strip
  inf[:end] = sessData[1].css('span')[1].text.strip if sessData[1].css('span')[1]
  inf
end