Class: EspnPub::Entities::Team
- Defined in:
- lib/espn_pub/entities/team.rb
Overview
Represents a sports team, eg. Miami Heat, New England Patriots, etc.
Constant Summary collapse
- ROSTER_PATH =
'/apis/site/%s/sports/%s/%s/teams/%s/roster'
Instance Attribute Summary collapse
-
#abbreviation ⇒ Object
readonly
Returns the value of attribute abbreviation.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#league ⇒ Object
readonly
Returns the value of attribute league.
-
#location ⇒ Object
readonly
Returns the value of attribute location.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#sport ⇒ Object
readonly
Returns the value of attribute sport.
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(id:, name:, location:, abbreviation:, sport:, league:) ⇒ Team
constructor
Initialize a Team entity.
-
#players ⇒ Array<EspnPub::Entities::Player>
Fetch the roster for this team.
Constructor Details
#initialize(id:, name:, location:, abbreviation:, sport:, league:) ⇒ Team
Initialize a Team entity.
25 26 27 28 29 30 31 32 33 |
# File 'lib/espn_pub/entities/team.rb', line 25 def initialize(id:, name:, location:, abbreviation:, sport:, league:) @id = id @name = name @location = location @abbreviation = abbreviation @sport = sport @league = league super() end |
Instance Attribute Details
#abbreviation ⇒ Object (readonly)
Returns the value of attribute abbreviation.
10 11 12 |
# File 'lib/espn_pub/entities/team.rb', line 10 def abbreviation @abbreviation end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
10 11 12 |
# File 'lib/espn_pub/entities/team.rb', line 10 def id @id end |
#league ⇒ Object (readonly)
Returns the value of attribute league.
10 11 12 |
# File 'lib/espn_pub/entities/team.rb', line 10 def league @league end |
#location ⇒ Object (readonly)
Returns the value of attribute location.
10 11 12 |
# File 'lib/espn_pub/entities/team.rb', line 10 def location @location end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
10 11 12 |
# File 'lib/espn_pub/entities/team.rb', line 10 def name @name end |
#sport ⇒ Object (readonly)
Returns the value of attribute sport.
10 11 12 |
# File 'lib/espn_pub/entities/team.rb', line 10 def sport @sport end |
Instance Method Details
#players ⇒ Array<EspnPub::Entities::Player>
Fetch the roster for this team.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/espn_pub/entities/team.rb', line 38 def players unless defined?(@roster) begin path = format ROSTER_PATH, client.version, sport, league, id roster_resp = client.send_request(path) @roster = (roster_resp.dig('athletes') || []).map do |athlete_data| player = EspnPub::Entities::Player.new( id: athlete_data['id'], sport: sport, league: league, first_name: athlete_data['firstName'], last_name: athlete_data['lastName'], position: athlete_data['position']['abbreviation'], team_id: id ) end rescue Client::UnexpectedResponseCodeError => e warn "Failed to fetch roster for team #{name} (#{id}): #{e.}" return [] end end @roster end |