Sha256: 9e25822e9aaf2fb705678842108508c9d4f8484e176d512c0a5dbeeb7675b30f

Contents?: true

Size: 1.34 KB

Versions: 22

Compression:

Stored size: 1.34 KB

Contents

module SportsDataApi
  module Ncaamb
    class TournamentSchedule
      attr_reader :id, :name, :games, :season, :year

      def initialize(year, season, xml)
        if xml.is_a? Nokogiri::XML::NodeSet
          @id = xml.first["id"]
          @name = xml.first["name"]
          @year = year.to_i
          @season = season

          @games = xml.first.xpath("round").map { |round_xml|
            games_from_round(round_xml)
          }.flatten
        end
      end

      # Check if the requested tournament is a valid
      # NCAAMB tournament type.
      #
      # The only valid types are: :reg, :pst, :ct
      def self.valid?(season)
        [:REG, :PST, :CT].include?(season)
      end

      private

      def games_from_round(round_xml)
        round = {
          number: round_xml['sequence'],
          name: round_xml['name'] 
        }
        if round_xml.xpath('bracket').first
          round_xml.xpath('bracket').map do |bracket_xml|
            traverse_games(bracket_xml, round, bracket_xml['name'])
          end
        else
          traverse_games(round_xml, round, nil)
        end
      end

      def traverse_games(xml, round, bracket_name)
        xml.xpath('game').map do |game_xml|
          TournamentGame.new(round: round, bracket: bracket_name, year: year, season: season, xml: game_xml)
        end
      end

    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
sports_data_api-0.15.3 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.15.2 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.15.1 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.15.0 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.14.1 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.14.0 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.13.0 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.12.1 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.12.0 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.11.6 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.11.5 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.11.3 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.11.2 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.11.1 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.11.0 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.10.1 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.10.0 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.9.2 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.2.4 lib/sports_data_api/ncaamb/tournament_schedule.rb
sports_data_api-0.2.3 lib/sports_data_api/ncaamb/tournament_schedule.rb