Sha256: d38e86c7c8bd5d28ba1525abd2b4abf0206b418af6d769f55f2a572c520f3b36

Contents?: true

Size: 815 Bytes

Versions: 3

Compression:

Stored size: 815 Bytes

Contents

module Sportradar
  module Api
    class Nfl::DepthChart < Data
      attr_accessor :response, :chart

      def initialize(data)
        generate_chart(data)
      end

      def team(number)
        teams[number]
      end

      private

      def teams
        @teams ||= Hash.new { |hash, number| hash[number] = generate_team(number) }
      end

      def generate_team(number)
        @chart.each_with_object({}) do |(pos_name, groups), memo|
          memo[pos_name] = groups[number.to_s]
        end
      end

      def generate_chart(data)
        @chart = data['position'].each_with_object({}) do |position, memo|
          players = position['player'].map { |h| Sportradar::Api::Nfl::Player.new(h) }
          memo[position['name']] = players.group_by(&:depth)
        end
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sportradar-api-0.1.35 lib/sportradar/api/nfl/depth_chart.rb
sportradar-api-0.1.34 lib/sportradar/api/nfl/depth_chart.rb
sportradar-api-0.1.33 lib/sportradar/api/nfl/depth_chart.rb