Sha256: 5074193a6ebb743cd40e1c30afc630227a60e4f03c8a9313e4a7e34f01902b18

Contents?: true

Size: 971 Bytes

Versions: 9

Compression:

Stored size: 971 Bytes

Contents

module SportsDataApi
  module Mlb
    class Players
      include Enumerable

      ##
      # Initialize by passing the raw XML returned from the API
      def initialize(xml)
        @players = []
        xml = xml.first if xml.is_a? Nokogiri::XML::NodeSet
        if xml.is_a? Nokogiri::XML::Element
          xml.xpath('team').each do |team|
            team.xpath('players').xpath('player').each do |player|
              p = Player.new(player, team['id'])
              @players << p
            end
          end
        end
        @players
      end

      def [](search_index)
        found_index = @teams.index(search_index)
        unless found_index.nil?
          @teams[found_index]
        end
      end

      ##
      # Make the class Enumerable
      def each(&block)
        @players.each do |player|
          if block_given?
            block.call player
          else
            yield player
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
sports_data_api-0.10.1 lib/sports_data_api/mlb/players.rb
sports_data_api-0.10.0 lib/sports_data_api/mlb/players.rb
sports_data_api-0.9.2 lib/sports_data_api/mlb/players.rb
sports_data_api-0.2.4 lib/sports_data_api/mlb/players.rb
sports_data_api-0.2.3 lib/sports_data_api/mlb/players.rb
sports_data_api-0.2.2 lib/sports_data_api/mlb/players.rb
sports_data_api-0.2.1 lib/sports_data_api/mlb/players.rb
sports_data_api-0.2.0 lib/sports_data_api/mlb/players.rb
sports_data_api-0.1.0 lib/sports_data_api/mlb/players.rb