Module: NBA::Schedule

Defined in:
lib/nba/schedule.rb

Overview

Provides methods to retrieve league schedule

Constant Summary collapse

LEAGUE_SCHEDULE =

Result set name for league schedule

"LeagueSchedule".freeze

Class Method Summary collapse

Class Method Details

.all(season: Utils.current_season, league: League::NBA, client: CLIENT) ⇒ Collection

Retrieves the league schedule

Examples:

games = NBA::Schedule.all(season: 2024)
games.each { |g| puts "#{g.game_date}: #{g.away_team_name} @ #{g.home_team_name}" }


25
26
27
28
29
30
# File 'lib/nba/schedule.rb', line 25

def self.all(season: Utils.current_season, league: League::NBA, client: CLIENT)
  league_id = Utils.extract_league_id(league)
  path = build_path(season, league_id)
  response = client.get(path)
  parse_response(response)
end

.by_date(date:, season: Utils.current_season, league: League::NBA, client: CLIENT) ⇒ Collection

Retrieves games for a specific date

Examples:

games = NBA::Schedule.by_date(date: Date.today, season: 2024)
games.each { |g| puts "#{g.away_team_name} @ #{g.home_team_name}" }


43
44
45
46
47
48
# File 'lib/nba/schedule.rb', line 43

def self.by_date(date:, season: Utils.current_season, league: League::NBA, client: CLIENT)
  all_games = all(season: season, league: league, client: client)
  date_str = date.strftime
  filtered = all_games.select { |g| g.game_date&.start_with?(date_str) }
  Collection.new(filtered)
end

.by_team(team:, season: Utils.current_season, league: League::NBA, client: CLIENT) ⇒ Collection

Retrieves games for a specific team

Examples:

games = NBA::Schedule.by_team(team: NBA::Team::GSW, season: 2024)
games.each { |g| puts "#{g.game_date}: #{g.away_team_tricode} @ #{g.home_team_tricode}" }


61
62
63
64
65
66
# File 'lib/nba/schedule.rb', line 61

def self.by_team(team:, season: Utils.current_season, league: League::NBA, client: CLIENT)
  team_id = extract_team_id(team)
  all_games = all(season: season, league: league, client: client)
  filtered = all_games.select { |g| g.home_team_id.eql?(team_id) || g.away_team_id.eql?(team_id) }
  Collection.new(filtered)
end