class SodaXmlTeam::Schedule
Schedule
class
Public Class Methods
parse_schedule(document = {})
click to toggle source
Parses schedule documents into hashes
-
document: a Nokegiri::XML::Document
# File lib/soda_xml_team/schedule.rb, line 12 def self.parse_schedule(document = {}) output = [] fail 'Invalid XML schedule.' unless document.is_a? Nokogiri::XML::Document document.css('schedule sports-event').each do |event| row = {} event.css('event-metadata').each do |eventmeta| next if eventmeta['event-key'].empty? || eventmeta['start-date-time'].empty? row[:event_key] = eventmeta['event-key'] row[:start_date_time] = DateTime.parse(eventmeta['start-date-time']) row[:time_certainty] = eventmeta['time-certainty'] eventmeta.css('site name').each do |sitemeta| row[:site] = sitemeta['full'] end end event.css('team team-metadata[alignment="away"]').each do |away_team| team_name = away_team.css('name').first row[:away_team_id] = away_team['team-key'] row[:away_team] = "#{team_name['first']} #{team_name['last']}" end event.css('team team-metadata[alignment="home"]').each do |home_team| team_name = home_team.css('name').first row[:home_team_id] = home_team['team-key'] row[:home_team] = "#{team_name['first']} #{team_name['last']}" end output << row end output end