lib/sportradar/api/nfl/hierarchy.rb in sportradar-api-0.1.23 vs lib/sportradar/api/nfl/hierarchy.rb in sportradar-api-0.1.24

- old
+ new

@@ -1,38 +1,45 @@ module Sportradar module Api class Nfl::Hierarchy < Data - attr_accessor :response, :id, :name, :alias, :divisions, :conferences + attr_accessor :response, :id, :name, :alias, :divisions, :conferences, :teams def initialize(data) @response = data @id = data["id"] @name = data["name"] @alias = data["alias"] - set_divisions set_conferences + set_divisions + set_teams end private + def set_conferences + if response["conference"] + if response["conference"].is_a?(Array) + @conferences = response["conference"].map {|conference| Sportradar::Api::Nfl::Conference.new conference } + elsif response["conference"].is_a?(Hash) + @conferences = [ Sportradar::Api::Nfl::Conference.new(response["conference"]) ] + end + end + end + def set_divisions - if response["division"] + if conferences&.all? { |conference| conference.divisions } + @divisions = conferences.flat_map(&:divisions) + elsif response["division"] if response["division"].is_a?(Array) @divisions = response["division"].map {|division| Sportradar::Api::Nfl::Division.new division } elsif response["division"].is_a?(Hash) @divisions = [ Sportradar::Api::Nfl::Division.new(response["division"]) ] end end end - def set_conferences - if response["conference"] - if response["conference"].is_a?(Array) - @conferences = response["conference"].map {|conference| Sportradar::Api::Nfl::Conference.new conference } - elsif response["conference"].is_a?(Hash) - @conferences = [ Sportradar::Api::Nfl::Conference.new(response["conference"]) ] - end - end + def set_teams + @teams = @divisions.flat_map(&:teams) if divisions&.all? {|division| division.teams } end end end end