Sha256: 30caa6be3464e79da7444c0afb5c4f6f432a0f86f18c3827d1e9d8ae92976410

Contents?: true

Size: 1.06 KB

Versions: 8

Compression:

Stored size: 1.06 KB

Contents

module SodaXmlTeam

  require 'nokogiri'

  class Schedule

    def self.parse_schedule(document={})

      output = []

      unless document.is_a? Nokogiri::XML::Document
        raise "Invalid XML schedule."
      end

      document.css('schedule sports-event').each do |event|

        row = {}

        event.css('event-metadata').each do |eventmeta|
          row[:event_key] = eventmeta['event-key']
          row[:start_date_time] = eventmeta['start-date-time']
        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

      return output

    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
soda_xml_team-1.0.7 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.6 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.5 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.4 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.3 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.2 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.1 lib/soda_xml_team/schedule.rb
soda_xml_team-1.0.0 lib/soda_xml_team/schedule.rb