class Stattleship::Endpoint

Public Class Methods

fetch(path:, params:) click to toggle source
# File lib/stattleship/endpoint.rb, line 3
def self.fetch(path:, params:)
  Stattleship::Client.new(path: path,
                          query: params.query).
    paginate(model: self)
end

Public Instance Methods

data() click to toggle source
# File lib/stattleship/endpoint.rb, line 9
def data
  @data ||= populate
end
populate() click to toggle source
# File lib/stattleship/endpoint.rb, line 13
def populate
  raise 'Endpoint subclass must implement populate'
end

Private Instance Methods

populate_away_team(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 180
def populate_away_team(model)
  return if away_teams.nil?
  model.away_team = away_teams.detect do |away_team|
    away_team.id == model.away_team_id
  end
end
populate_baseball_pitches(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 19
def populate_baseball_pitches(model)
  model.pitches = []

  return if model.baseball_pitch_ids.nil?
  return if baseball_pitches.nil?

  model.baseball_pitch_ids.each do |baseball_pitch_id|
    model.pitches << baseball_pitches.detect do |baseball_pitch|
      baseball_pitch.id == baseball_pitch_id
    end
  end
end
populate_game(game) click to toggle source
# File lib/stattleship/endpoint.rb, line 121
def populate_game(game)
  populate_away_team(game)
  populate_home_team(game)
  populate_officials(game)
  populate_winning_team(game)
  populate_season(game)
  populate_venue(game)

  if game && game.season
    populate_league(game.season)
    game.league = game.season.league
  end
end
populate_games(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 111
def populate_games(model)
  return if games.nil?

  model.game = games.detect do |game|
    game.id == model.game_id
  end

  populate_model_game(model)
end
populate_hitter_teams(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 211
def populate_hitter_teams(model)
  return if hitter_teams.nil?

  model.hitter_team = hitter_teams.detect do |hitter_team|
    hitter_team.id == model.hitter_team_id
  end
end
populate_hitters(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 61
def populate_hitters(model)
  return if hitters.nil?

  model.hitter = hitters.detect do |hitter|
    hitter.id == model.hitter_id
  end
end
populate_home_team(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 187
def populate_home_team(model)
  return if home_teams.nil?

  model.home_team = home_teams.detect do |home_team|
    home_team.id == model.home_team_id
  end
end
populate_league(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 168
def populate_league(model)
  return if leagues.nil?

  model.league = leagues.detect do |league|
    league.id == model.league_id
  end
end
populate_model_game(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 135
def populate_model_game(model)
  populate_season(model.game)
  populate_venue(model.game)

  if model.game && model.game.season
    populate_league(model.game.season)
    model.game.league = model.game.season.league
  end

  if model.game && model.game.league
    model.league = model.game.league
  end
end
populate_officials(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 32
def populate_officials(model)
  model.officials = []

  return if model.official_ids.nil?
  return if officials.nil?

  model.official_ids.each do |official_id|
    model.officials << officials.detect do |official|
      official.id == official_id
    end
  end
end
populate_opponents(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 45
def populate_opponents(model)
  return if opponents.nil?

  model.opponent = opponents.detect do |opponent|
    opponent.id == model.opponent_id
  end
end
populate_pitchers(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 53
def populate_pitchers(model)
  return if pitchers.nil?

  model.pitcher = pitchers.detect do |pitcher|
    pitcher.id == model.pitcher_id
  end
end
populate_player(player) click to toggle source
# File lib/stattleship/endpoint.rb, line 90
def populate_player(player)
  populate_player_team(player)
end
populate_player_playing_position(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 103
def populate_player_playing_position(model)
  return if playing_positions.nil?

  model.playing_position = playing_positions.detect do |playing_position|
    playing_position.id == model.player.playing_position_id
  end
end
populate_player_team(player) click to toggle source
# File lib/stattleship/endpoint.rb, line 94
def populate_player_team(player)
  return if player.nil?
  return if teams.nil?

  player.team = teams.detect do |team|
    team.id == player.team_id
  end
end
populate_player_teams(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 77
def populate_player_teams(model)
  return if teams.nil? || model.player.nil?

  model.team = teams.detect do |team|
    team.id == model.player.team_id
  end

  if model.player
    model.player.team = model.team
    populate_player_playing_position(model.player)
  end
end
populate_players(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 69
def populate_players(model)
  return if players.nil?

  model.player = players.detect do |player|
    player.id == model.player_id
  end
end
populate_scoring_players(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 227
def populate_scoring_players(model)
  model.scoring_players = []

  return if scoring_players.nil?

  model.scoring_player_ids.each do |scoring_player_id|
    model.scoring_players << scoring_players.detect do |scoring_player|
      scoring_player.id == scoring_player_id
    end
  end

  model.scoring_players.each do |scoring_player|
    scoring_player.player = players.detect do |player|
      player.id == scoring_player.player_id
    end
  end
end
populate_season(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 149
def populate_season(model)
  return if seasons.nil?

  model.season = seasons.detect do |season|
    season.id == model.season_id
  end
end
populate_season_league(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 157
def populate_season_league(model)
  return if leagues.nil?
  return if model.season.nil?

  model.season.league = leagues.detect do |league|
    league.id == model.season.league_id
  end

  model.league = model.season.league
end
populate_team(team) click to toggle source
# File lib/stattleship/endpoint.rb, line 176
def populate_team(team)
  populate_league(team)
end
populate_teams(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 203
def populate_teams(model)
  return if teams.nil?

  model.team = teams.detect do |team|
    team.id == model.team_id
  end
end
populate_venue(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 219
def populate_venue(model)
  return if venues.nil?

  model.venue = venues.detect do |venue|
    venue.id == model.venue_id
  end
end
populate_winning_team(model) click to toggle source
# File lib/stattleship/endpoint.rb, line 195
def populate_winning_team(model)
  return if winning_teams.nil?

  model.winning_team = winning_teams.detect do |winning_team|
    winning_team.id == model.winning_team_id
  end
end