Sha256: b9e0ece31258bc63ea8cfe89d26bddcf590b08309f9b38ec5972f5f272079717

Contents?: true

Size: 1.1 KB

Versions: 11

Compression:

Stored size: 1.1 KB

Contents

module SportsDataApi
  module Nhl
    class Player
      attr_reader :stats

      def initialize(xml)
        if xml.is_a? Nokogiri::XML::Element
          player_ivar = self.instance_variable_set("@#{xml.name}", {})
          self.class.class_eval { attr_reader :"#{xml.name}" }
          xml.attributes.each do |attr_name, attr_value|
            player_ivar[attr_name.to_sym] = attr_value.value
          end

          stats_xml = xml.xpath('statistics')
          if stats_xml.is_a? Nokogiri::XML::NodeSet and stats_xml.count > 0
            @stats = SportsDataApi::Stats.new(stats_xml.first)
          end

          if @stats
            goaltending_xml = xml.xpath('goaltending').first
            if goaltending_xml.is_a? Nokogiri::XML::Element
              goaltending_ivar = @stats.instance_variable_set("@#{goaltending_xml.name}", {})
              @stats.class.class_eval { attr_reader :"#{goaltending_xml.name}" }
              goaltending_xml.attributes.each { |attr_name, attr_value| goaltending_ivar[attr_name.to_sym] = attr_value.value }
            end
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
sports_data_api-0.12.1 lib/sports_data_api/nhl/player.rb
sports_data_api-0.12.0 lib/sports_data_api/nhl/player.rb
sports_data_api-0.11.6 lib/sports_data_api/nhl/player.rb
sports_data_api-0.11.5 lib/sports_data_api/nhl/player.rb
sports_data_api-0.11.3 lib/sports_data_api/nhl/player.rb
sports_data_api-0.11.2 lib/sports_data_api/nhl/player.rb
sports_data_api-0.11.1 lib/sports_data_api/nhl/player.rb
sports_data_api-0.11.0 lib/sports_data_api/nhl/player.rb
sports_data_api-0.10.1 lib/sports_data_api/nhl/player.rb
sports_data_api-0.10.0 lib/sports_data_api/nhl/player.rb
sports_data_api-0.9.2 lib/sports_data_api/nhl/player.rb