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