nba 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/AGENTS.md +362 -0
- data/CHANGELOG.md +169 -0
- data/CLAUDE.md +1 -0
- data/LICENSE +21 -0
- data/README.md +501 -101
- data/bin/console +10 -0
- data/bin/setup +6 -0
- data/exe/nba +8 -0
- data/lib/nba/all_time_leader.rb +77 -0
- data/lib/nba/all_time_leaders.rb +185 -0
- data/lib/nba/assist_leader.rb +92 -0
- data/lib/nba/assist_leaders.rb +64 -0
- data/lib/nba/assist_tracker.rb +108 -0
- data/lib/nba/assist_tracker_entry.rb +206 -0
- data/lib/nba/award.rb +128 -0
- data/lib/nba/box_score.rb +2 -0
- data/lib/nba/box_score_advanced.rb +114 -0
- data/lib/nba/box_score_advanced_player_stat.rb +297 -0
- data/lib/nba/box_score_advanced_team_stat.rb +237 -0
- data/lib/nba/box_score_advanced_v3.rb +124 -0
- data/lib/nba/box_score_defensive_player_stat.rb +281 -0
- data/lib/nba/box_score_defensive_team_stat.rb +85 -0
- data/lib/nba/box_score_defensive_v2.rb +190 -0
- data/lib/nba/box_score_four_factors.rb +91 -0
- data/lib/nba/box_score_four_factors_player_stat.rb +185 -0
- data/lib/nba/box_score_four_factors_team_stat.rb +141 -0
- data/lib/nba/box_score_four_factors_v3.rb +133 -0
- data/lib/nba/box_score_hustle.rb +226 -0
- data/lib/nba/box_score_hustle_player_stat.rb +233 -0
- data/lib/nba/box_score_hustle_team_stat.rb +189 -0
- data/lib/nba/box_score_matchup_stat.rb +417 -0
- data/lib/nba/box_score_matchups_v3.rb +184 -0
- data/lib/nba/box_score_misc.rb +100 -0
- data/lib/nba/box_score_misc_player_stat.rb +217 -0
- data/lib/nba/box_score_misc_team_stat.rb +173 -0
- data/lib/nba/box_score_misc_v3.rb +163 -0
- data/lib/nba/box_score_player_stat.rb +273 -0
- data/lib/nba/box_score_player_track.rb +223 -0
- data/lib/nba/box_score_player_track_stat.rb +273 -0
- data/lib/nba/box_score_player_track_team_stat.rb +229 -0
- data/lib/nba/box_score_scoring.rb +103 -0
- data/lib/nba/box_score_scoring_player_stat.rb +241 -0
- data/lib/nba/box_score_scoring_team_stat.rb +197 -0
- data/lib/nba/box_score_scoring_v3.rb +170 -0
- data/lib/nba/box_score_similarity_score.rb +119 -0
- data/lib/nba/box_score_similarity_stat.rb +76 -0
- data/lib/nba/box_score_starter_bench_stat.rb +257 -0
- data/lib/nba/box_score_summary.rb +285 -0
- data/lib/nba/box_score_summary_v2.rb +202 -0
- data/lib/nba/box_score_summary_v3.rb +120 -0
- data/lib/nba/box_score_summary_v3_data.rb +419 -0
- data/lib/nba/box_score_team_stat.rb +229 -0
- data/lib/nba/box_score_traditional.rb +101 -0
- data/lib/nba/box_score_traditional_v3.rb +195 -0
- data/lib/nba/box_score_usage.rb +102 -0
- data/lib/nba/box_score_usage_player_stat.rb +265 -0
- data/lib/nba/box_score_usage_team_stat.rb +221 -0
- data/lib/nba/box_score_usage_v3.rb +169 -0
- data/lib/nba/box_score_v3_helpers.rb +144 -0
- data/lib/nba/career_stats.rb +217 -0
- data/lib/nba/cli/display/player_display.rb +98 -0
- data/lib/nba/cli/display.rb +178 -0
- data/lib/nba/cli/formatters/game_formatters.rb +86 -0
- data/lib/nba/cli/formatters/leaders_formatters.rb +26 -0
- data/lib/nba/cli/formatters/player_formatters.rb +52 -0
- data/lib/nba/cli/formatters/standings_formatters.rb +26 -0
- data/lib/nba/cli/formatters/team_formatters.rb +67 -0
- data/lib/nba/cli/formatters/time_formatters.rb +82 -0
- data/lib/nba/cli/formatters.rb +56 -0
- data/lib/nba/cli/helpers.rb +135 -0
- data/lib/nba/cli.rb +171 -20
- data/lib/nba/client.rb +35 -0
- data/lib/nba/collection.rb +89 -0
- data/lib/nba/college_player_stat.rb +200 -0
- data/lib/nba/common_player_info.rb +142 -0
- data/lib/nba/common_playoff_series.rb +90 -0
- data/lib/nba/common_team_years.rb +113 -0
- data/lib/nba/conference.rb +39 -0
- data/lib/nba/connection.rb +84 -0
- data/lib/nba/cume_stats_player.rb +358 -0
- data/lib/nba/cume_stats_player_game.rb +217 -0
- data/lib/nba/cume_stats_player_games.rb +99 -0
- data/lib/nba/cume_stats_player_games_entry.rb +25 -0
- data/lib/nba/cume_stats_player_total.rb +481 -0
- data/lib/nba/cume_stats_team.rb +349 -0
- data/lib/nba/cume_stats_team_games.rb +145 -0
- data/lib/nba/cume_stats_team_games_entry.rb +25 -0
- data/lib/nba/cume_stats_team_player.rb +485 -0
- data/lib/nba/cume_stats_team_total.rb +267 -0
- data/lib/nba/data.rb +73 -0
- data/lib/nba/defense_hub.rb +109 -0
- data/lib/nba/defense_hub_stat.rb +57 -0
- data/lib/nba/defensive_shot_stat.rb +102 -0
- data/lib/nba/division.rb +49 -0
- data/lib/nba/draft_board.rb +126 -0
- data/lib/nba/draft_board_pick.rb +173 -0
- data/lib/nba/draft_combine_anthro_measurement.rb +163 -0
- data/lib/nba/draft_combine_drill_result.rb +115 -0
- data/lib/nba/draft_combine_drill_results.rb +112 -0
- data/lib/nba/draft_combine_non_stationary_shooting.rb +268 -0
- data/lib/nba/draft_combine_non_stationary_shooting_result.rb +355 -0
- data/lib/nba/draft_combine_player_anthro.rb +133 -0
- data/lib/nba/draft_combine_spot_shooting.rb +243 -0
- data/lib/nba/draft_combine_spot_shooting_result.rb +419 -0
- data/lib/nba/draft_combine_stat.rb +211 -0
- data/lib/nba/draft_combine_stats.rb +160 -0
- data/lib/nba/draft_history.rb +142 -0
- data/lib/nba/draft_pick.rb +154 -0
- data/lib/nba/dunk_score_leader.rb +93 -0
- data/lib/nba/dunk_score_leaders.rb +77 -0
- data/lib/nba/estimated_metrics_stat.rb +152 -0
- data/lib/nba/fantasy_profile_stat.rb +142 -0
- data/lib/nba/fantasy_widget.rb +72 -0
- data/lib/nba/fantasy_widget_player.rb +98 -0
- data/lib/nba/found_game.rb +260 -0
- data/lib/nba/franchise.rb +136 -0
- data/lib/nba/franchise_history.rb +142 -0
- data/lib/nba/franchise_leader.rb +147 -0
- data/lib/nba/franchise_leaders.rb +162 -0
- data/lib/nba/franchise_player.rb +224 -0
- data/lib/nba/franchise_players.rb +147 -0
- data/lib/nba/game.rb +80 -64
- data/lib/nba/game_log.rb +349 -0
- data/lib/nba/game_rotation.rb +152 -0
- data/lib/nba/game_streak.rb +102 -0
- data/lib/nba/games.rb +46 -0
- data/lib/nba/home_page_leader.rb +99 -0
- data/lib/nba/home_page_leaders.rb +75 -0
- data/lib/nba/home_page_stat.rb +57 -0
- data/lib/nba/home_page_v2.rb +110 -0
- data/lib/nba/hustle_stats_box_score.rb +182 -0
- data/lib/nba/infographic_fan_duel_player.rb +139 -0
- data/lib/nba/infographic_fan_duel_player_stat.rb +311 -0
- data/lib/nba/ist_standing.rb +167 -0
- data/lib/nba/ist_standings.rb +81 -0
- data/lib/nba/leader.rb +103 -0
- data/lib/nba/leaders.rb +110 -0
- data/lib/nba/leaders_tile.rb +57 -0
- data/lib/nba/leaders_tiles.rb +90 -0
- data/lib/nba/league.rb +37 -0
- data/lib/nba/league_dash_lineup_stat.rb +270 -0
- data/lib/nba/league_dash_lineups.rb +177 -0
- data/lib/nba/league_dash_opp_pt_shot.rb +150 -0
- data/lib/nba/league_dash_player_bio_stat.rb +217 -0
- data/lib/nba/league_dash_player_bio_stats.rb +164 -0
- data/lib/nba/league_dash_player_clutch.rb +212 -0
- data/lib/nba/league_dash_player_clutch_stat.rb +271 -0
- data/lib/nba/league_dash_player_pt_shot.rb +152 -0
- data/lib/nba/league_dash_player_pt_shot_stat.rb +193 -0
- data/lib/nba/league_dash_player_shot_location_stat.rb +265 -0
- data/lib/nba/league_dash_player_shot_locations.rb +210 -0
- data/lib/nba/league_dash_player_stat.rb +306 -0
- data/lib/nba/league_dash_player_stats.rb +176 -0
- data/lib/nba/league_dash_pt_defend.rb +160 -0
- data/lib/nba/league_dash_pt_defend_stat.rb +145 -0
- data/lib/nba/league_dash_pt_stats.rb +152 -0
- data/lib/nba/league_dash_pt_stats_stat.rb +169 -0
- data/lib/nba/league_dash_pt_team_defend.rb +158 -0
- data/lib/nba/league_dash_pt_team_defend_stat.rb +110 -0
- data/lib/nba/league_dash_team_clutch.rb +211 -0
- data/lib/nba/league_dash_team_clutch_stat.rb +237 -0
- data/lib/nba/league_dash_team_pt_shot.rb +150 -0
- data/lib/nba/league_dash_team_pt_shot_stat.rb +166 -0
- data/lib/nba/league_dash_team_shot_location_stat.rb +230 -0
- data/lib/nba/league_dash_team_shot_locations.rb +208 -0
- data/lib/nba/league_dash_team_stat.rb +275 -0
- data/lib/nba/league_dash_team_stats.rb +172 -0
- data/lib/nba/league_game_finder.rb +170 -0
- data/lib/nba/league_game_log.rb +224 -0
- data/lib/nba/league_hustle_stats_player.rb +161 -0
- data/lib/nba/league_hustle_stats_player_stat.rb +253 -0
- data/lib/nba/league_hustle_stats_team.rb +157 -0
- data/lib/nba/league_hustle_stats_team_stat.rb +179 -0
- data/lib/nba/league_lineup_viz.rb +184 -0
- data/lib/nba/league_lineup_viz_stat.rb +214 -0
- data/lib/nba/league_player_on_details.rb +175 -0
- data/lib/nba/league_player_on_details_stat.rb +313 -0
- data/lib/nba/league_season_matchup_stat.rb +241 -0
- data/lib/nba/league_season_matchups.rb +181 -0
- data/lib/nba/league_standing.rb +284 -0
- data/lib/nba/league_standings.rb +159 -0
- data/lib/nba/league_wide_shot_stat.rb +62 -0
- data/lib/nba/live_action.rb +240 -0
- data/lib/nba/live_box_score.rb +143 -0
- data/lib/nba/live_connection.rb +84 -0
- data/lib/nba/live_game.rb +230 -0
- data/lib/nba/live_play_by_play.rb +120 -0
- data/lib/nba/live_player_stat.rb +276 -0
- data/lib/nba/live_scoreboard.rb +102 -0
- data/lib/nba/matchup_rollup.rb +98 -0
- data/lib/nba/matchups_rollup.rb +81 -0
- data/lib/nba/pass_stat.rb +209 -0
- data/lib/nba/play.rb +258 -0
- data/lib/nba/play_by_play.rb +85 -0
- data/lib/nba/play_by_play_v3.rb +91 -0
- data/lib/nba/play_type_stat.rb +206 -0
- data/lib/nba/player.rb +242 -24
- data/lib/nba/player_awards.rb +110 -0
- data/lib/nba/player_career_by_college.rb +86 -0
- data/lib/nba/player_career_by_college_rollup.rb +143 -0
- data/lib/nba/player_career_stats.rb +77 -0
- data/lib/nba/player_compare.rb +156 -0
- data/lib/nba/player_comparison_stat.rb +242 -0
- data/lib/nba/player_dash_pt_pass.rb +164 -0
- data/lib/nba/player_dash_pt_reb.rb +235 -0
- data/lib/nba/player_dash_pt_shot_defend.rb +119 -0
- data/lib/nba/player_dash_pt_shots.rb +279 -0
- data/lib/nba/player_dashboard.rb +259 -0
- data/lib/nba/player_dashboard_stat.rb +248 -0
- data/lib/nba/player_estimated_metrics.rb +84 -0
- data/lib/nba/player_fantasy_profile_bar_graph.rb +147 -0
- data/lib/nba/player_game_log.rb +72 -0
- data/lib/nba/player_game_logs.rb +117 -0
- data/lib/nba/player_game_streak_finder.rb +108 -0
- data/lib/nba/player_index.rb +135 -0
- data/lib/nba/player_index_entry.rb +266 -0
- data/lib/nba/player_info.rb +225 -0
- data/lib/nba/player_next_n_games.rb +64 -0
- data/lib/nba/player_profile_v2.rb +169 -0
- data/lib/nba/player_vs_player.rb +153 -0
- data/lib/nba/players.rb +107 -0
- data/lib/nba/playoff_matchup.rb +84 -0
- data/lib/nba/playoff_picture.rb +98 -0
- data/lib/nba/playoff_series.rb +76 -0
- data/lib/nba/position.rb +48 -0
- data/lib/nba/rebound_stat.rb +189 -0
- data/lib/nba/response_parser.rb +116 -0
- data/lib/nba/roster.rb +74 -0
- data/lib/nba/rotation_entry.rb +154 -0
- data/lib/nba/schedule.rb +183 -0
- data/lib/nba/schedule_international.rb +182 -0
- data/lib/nba/scheduled_game.rb +240 -0
- data/lib/nba/scoreboard.rb +183 -0
- data/lib/nba/scoreboard_v3.rb +104 -0
- data/lib/nba/shot.rb +208 -0
- data/lib/nba/shot_chart.rb +75 -0
- data/lib/nba/shot_chart_league_wide.rb +102 -0
- data/lib/nba/shot_chart_lineup_detail.rb +109 -0
- data/lib/nba/shot_stat.rb +174 -0
- data/lib/nba/standing.rb +129 -0
- data/lib/nba/standings.rb +75 -0
- data/lib/nba/static.rb +107 -0
- data/lib/nba/synergy_play_types.rb +211 -0
- data/lib/nba/team.rb +203 -127
- data/lib/nba/team_and_players_vs_players.rb +227 -0
- data/lib/nba/team_and_players_vs_players_stat.rb +155 -0
- data/lib/nba/team_dash_pt_pass.rb +157 -0
- data/lib/nba/team_dash_pt_reb.rb +216 -0
- data/lib/nba/team_dash_pt_shots.rb +244 -0
- data/lib/nba/team_dashboard.rb +275 -0
- data/lib/nba/team_dashboard_stat.rb +248 -0
- data/lib/nba/team_detail.rb +117 -0
- data/lib/nba/team_details.rb +173 -0
- data/lib/nba/team_estimated_metrics.rb +91 -0
- data/lib/nba/team_estimated_metrics_stat.rb +146 -0
- data/lib/nba/team_game_log.rb +143 -0
- data/lib/nba/team_game_log_entry.rb +246 -0
- data/lib/nba/team_game_log_stat.rb +275 -0
- data/lib/nba/team_game_logs.rb +163 -0
- data/lib/nba/team_game_streak.rb +111 -0
- data/lib/nba/team_game_streak_finder.rb +109 -0
- data/lib/nba/team_historical_leader.rb +207 -0
- data/lib/nba/team_historical_leaders.rb +98 -0
- data/lib/nba/team_historical_record.rb +139 -0
- data/lib/nba/team_info.rb +150 -0
- data/lib/nba/team_info_common.rb +177 -0
- data/lib/nba/team_on_off_overall_stat.rb +477 -0
- data/lib/nba/team_on_off_player_stat.rb +523 -0
- data/lib/nba/team_on_off_player_summary.rb +135 -0
- data/lib/nba/team_pass_stat.rb +183 -0
- data/lib/nba/team_player_dashboard.rb +212 -0
- data/lib/nba/team_player_on_off_details.rb +218 -0
- data/lib/nba/team_player_on_off_summary.rb +214 -0
- data/lib/nba/team_player_stat.rb +275 -0
- data/lib/nba/team_rebound_stat.rb +189 -0
- data/lib/nba/team_season_rank.rb +110 -0
- data/lib/nba/team_shot_stat.rb +173 -0
- data/lib/nba/team_vs_player.rb +151 -0
- data/lib/nba/team_vs_player_stat.rb +157 -0
- data/lib/nba/team_year.rb +55 -0
- data/lib/nba/team_year_by_year_stats.rb +152 -0
- data/lib/nba/team_year_stat.rb +282 -0
- data/lib/nba/teams.rb +33 -0
- data/lib/nba/upcoming_game.rb +115 -0
- data/lib/nba/utils.rb +94 -0
- data/lib/nba/version.rb +5 -2
- data/lib/nba/video_detail.rb +103 -0
- data/lib/nba/video_details.rb +118 -0
- data/lib/nba/video_details_asset.rb +115 -0
- data/lib/nba/video_details_asset_entry.rb +91 -0
- data/lib/nba/video_event.rb +83 -0
- data/lib/nba/video_event_asset.rb +91 -0
- data/lib/nba/video_events.rb +106 -0
- data/lib/nba/video_events_asset.rb +107 -0
- data/lib/nba/video_status.rb +129 -0
- data/lib/nba/video_status_entry.rb +161 -0
- data/lib/nba/vs_player_stat.rb +156 -0
- data/lib/nba/win_probability.rb +117 -0
- data/lib/nba/win_probability_point.rb +140 -0
- data/lib/nba.rb +249 -5
- data/sig/equalizer.rbs +3 -0
- data/sig/nba.rbs +7297 -0
- data/sig/shale.rbs +24 -0
- data/sig/thor.rbs +19 -0
- metadata +324 -95
- data/.gitignore +0 -18
- data/.travis.yml +0 -22
- data/Gemfile +0 -23
- data/LICENSE.md +0 -22
- data/Rakefile +0 -18
- data/bin/nba +0 -7
- data/cache/teams.json +0 -16529
- data/lib/faraday_middleware/scrape_game.rb +0 -41
- data/lib/nba/request.rb +0 -37
- data/nba.gemspec +0 -28
- data/spec/fixtures/games.html +0 -785
- data/spec/fixtures/teams.json +0 -16529
- data/spec/game_spec.rb +0 -40
- data/spec/spec_helper.rb +0 -25
- data/spec/team_spec.rb +0 -93
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
require_relative "client"
|
|
3
|
+
require_relative "collection"
|
|
4
|
+
require_relative "draft_combine_non_stationary_shooting_result"
|
|
5
|
+
|
|
6
|
+
module NBA
|
|
7
|
+
# Provides methods to retrieve draft combine non-stationary shooting data
|
|
8
|
+
module DraftCombineNonStationaryShooting
|
|
9
|
+
# Result set name
|
|
10
|
+
# @return [String] the result set name
|
|
11
|
+
RESULTS = "Results".freeze
|
|
12
|
+
|
|
13
|
+
# Retrieves draft combine non-stationary shooting results for a season
|
|
14
|
+
#
|
|
15
|
+
# @api public
|
|
16
|
+
# @example
|
|
17
|
+
# results = NBA::DraftCombineNonStationaryShooting.all(season: 2019)
|
|
18
|
+
# results.each { |r| puts "#{r.player_name}: #{r.off_dribble_fifteen_top_key_pct}" }
|
|
19
|
+
# @param season [Integer] the draft combine season year
|
|
20
|
+
# @param league [String, League] the league ID or League object (default NBA)
|
|
21
|
+
# @param client [Client] the API client to use
|
|
22
|
+
# @return [Collection] a collection of draft combine non-stationary shooting results
|
|
23
|
+
def self.all(season:, league: League::NBA, client: CLIENT)
|
|
24
|
+
league_id = Utils.extract_league_id(league)
|
|
25
|
+
path = build_path(season, league_id)
|
|
26
|
+
response = client.get(path)
|
|
27
|
+
parse_response(response)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Builds the API request path
|
|
31
|
+
# @api private
|
|
32
|
+
# @return [String] the request path
|
|
33
|
+
def self.build_path(season, league_id)
|
|
34
|
+
"draftcombinenonstationaryshooting?LeagueID=#{league_id}&SeasonYear=#{season}"
|
|
35
|
+
end
|
|
36
|
+
private_class_method :build_path
|
|
37
|
+
|
|
38
|
+
# Parses the API response into result objects
|
|
39
|
+
# @api private
|
|
40
|
+
# @return [Collection] collection of results
|
|
41
|
+
def self.parse_response(response)
|
|
42
|
+
return Collection.new unless response
|
|
43
|
+
|
|
44
|
+
data = JSON.parse(response)
|
|
45
|
+
result_set = find_result_set(data)
|
|
46
|
+
return Collection.new unless result_set
|
|
47
|
+
|
|
48
|
+
headers = result_set["headers"]
|
|
49
|
+
rows = result_set["rowSet"]
|
|
50
|
+
return Collection.new unless headers && rows
|
|
51
|
+
|
|
52
|
+
results = rows.map { |row| build_result(headers, row) }
|
|
53
|
+
Collection.new(results)
|
|
54
|
+
end
|
|
55
|
+
private_class_method :parse_response
|
|
56
|
+
|
|
57
|
+
# Finds the result set in the response
|
|
58
|
+
# @api private
|
|
59
|
+
# @return [Hash, nil] the result set hash
|
|
60
|
+
def self.find_result_set(data)
|
|
61
|
+
result_sets = data["resultSets"]
|
|
62
|
+
return unless result_sets
|
|
63
|
+
|
|
64
|
+
result_sets.find { |rs| rs["name"].eql?(RESULTS) }
|
|
65
|
+
end
|
|
66
|
+
private_class_method :find_result_set
|
|
67
|
+
|
|
68
|
+
# Builds a DraftCombineNonStationaryShootingResult object from raw data
|
|
69
|
+
# @api private
|
|
70
|
+
# @return [DraftCombineNonStationaryShootingResult] the result object
|
|
71
|
+
def self.build_result(headers, row)
|
|
72
|
+
data = headers.zip(row).to_h
|
|
73
|
+
DraftCombineNonStationaryShootingResult.new(**ResultAttributes.extract(data))
|
|
74
|
+
end
|
|
75
|
+
private_class_method :build_result
|
|
76
|
+
|
|
77
|
+
# Extracts result attributes from data
|
|
78
|
+
# @api private
|
|
79
|
+
module ResultAttributes
|
|
80
|
+
# Extracts all result attributes from data
|
|
81
|
+
# @api private
|
|
82
|
+
# @param data [Hash] the row data
|
|
83
|
+
# @return [Hash] extracted attributes
|
|
84
|
+
def self.extract(data)
|
|
85
|
+
player(data).merge(off_dribble_fifteen(data)).merge(on_move_fifteen(data))
|
|
86
|
+
.merge(off_dribble_college(data)).merge(on_move_college(data))
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Extracts player attributes from data
|
|
90
|
+
# @api private
|
|
91
|
+
# @param data [Hash] the row data
|
|
92
|
+
# @return [Hash] player attributes
|
|
93
|
+
def self.player(data)
|
|
94
|
+
{temp_player_id: data["TEMP_PLAYER_ID"], player_id: data["PLAYER_ID"],
|
|
95
|
+
player_name: data["PLAYER_NAME"], first_name: data["FIRST_NAME"],
|
|
96
|
+
last_name: data["LAST_NAME"], position: data["POSITION"]}
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Extracts off-dribble fifteen-foot shot attributes from data
|
|
100
|
+
# @api private
|
|
101
|
+
# @param data [Hash] the row data
|
|
102
|
+
# @return [Hash] off-dribble fifteen-foot shot attributes
|
|
103
|
+
def self.off_dribble_fifteen(data)
|
|
104
|
+
OffDribbleFifteen.left(data).merge(OffDribbleFifteen.top(data)).merge(OffDribbleFifteen.right(data))
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Extracts on-move fifteen-foot shot attributes from data
|
|
108
|
+
# @api private
|
|
109
|
+
# @param data [Hash] the row data
|
|
110
|
+
# @return [Hash] on-move fifteen-foot shot attributes
|
|
111
|
+
def self.on_move_fifteen(data)
|
|
112
|
+
OnMoveFifteen.left(data).merge(OnMoveFifteen.top(data)).merge(OnMoveFifteen.right(data))
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Extracts off-dribble college range shot attributes from data
|
|
116
|
+
# @api private
|
|
117
|
+
# @param data [Hash] the row data
|
|
118
|
+
# @return [Hash] off-dribble college range shot attributes
|
|
119
|
+
def self.off_dribble_college(data)
|
|
120
|
+
OffDribbleCollege.left(data).merge(OffDribbleCollege.top(data)).merge(OffDribbleCollege.right(data))
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Extracts on-move college range shot attributes from data
|
|
124
|
+
# @api private
|
|
125
|
+
# @param data [Hash] the row data
|
|
126
|
+
# @return [Hash] on-move college range shot attributes
|
|
127
|
+
def self.on_move_college(data)
|
|
128
|
+
OnMoveCollege.left(data).merge(OnMoveCollege.top(data)).merge(OnMoveCollege.right(data))
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Extracts off-dribble fifteen-foot shot attributes
|
|
133
|
+
# @api private
|
|
134
|
+
module OffDribbleFifteen
|
|
135
|
+
# Extracts left break shot attributes from data
|
|
136
|
+
# @api private
|
|
137
|
+
# @param data [Hash] the row data
|
|
138
|
+
# @return [Hash] left break shot attributes
|
|
139
|
+
def self.left(data)
|
|
140
|
+
{off_dribble_fifteen_break_left_made: data["OFF_DRIBBLE_FIFTEEN_BREAK_LEFT_MADE"],
|
|
141
|
+
off_dribble_fifteen_break_left_attempt: data["OFF_DRIBBLE_FIFTEEN_BREAK_LEFT_ATTEMPT"],
|
|
142
|
+
off_dribble_fifteen_break_left_pct: data["OFF_DRIBBLE_FIFTEEN_BREAK_LEFT_PCT"]}
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# Extracts top key shot attributes from data
|
|
146
|
+
# @api private
|
|
147
|
+
# @param data [Hash] the row data
|
|
148
|
+
# @return [Hash] top key shot attributes
|
|
149
|
+
def self.top(data)
|
|
150
|
+
{off_dribble_fifteen_top_key_made: data["OFF_DRIBBLE_FIFTEEN_TOP_KEY_MADE"],
|
|
151
|
+
off_dribble_fifteen_top_key_attempt: data["OFF_DRIBBLE_FIFTEEN_TOP_KEY_ATTEMPT"],
|
|
152
|
+
off_dribble_fifteen_top_key_pct: data["OFF_DRIBBLE_FIFTEEN_TOP_KEY_PCT"]}
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Extracts right break shot attributes from data
|
|
156
|
+
# @api private
|
|
157
|
+
# @param data [Hash] the row data
|
|
158
|
+
# @return [Hash] right break shot attributes
|
|
159
|
+
def self.right(data)
|
|
160
|
+
{off_dribble_fifteen_break_right_made: data["OFF_DRIBBLE_FIFTEEN_BREAK_RIGHT_MADE"],
|
|
161
|
+
off_dribble_fifteen_break_right_attempt: data["OFF_DRIBBLE_FIFTEEN_BREAK_RIGHT_ATTEMPT"],
|
|
162
|
+
off_dribble_fifteen_break_right_pct: data["OFF_DRIBBLE_FIFTEEN_BREAK_RIGHT_PCT"]}
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Extracts on-move fifteen-foot shot attributes
|
|
167
|
+
# @api private
|
|
168
|
+
module OnMoveFifteen
|
|
169
|
+
# Extracts left break shot attributes from data
|
|
170
|
+
# @api private
|
|
171
|
+
# @param data [Hash] the row data
|
|
172
|
+
# @return [Hash] left break shot attributes
|
|
173
|
+
def self.left(data)
|
|
174
|
+
{on_move_fifteen_break_left_made: data["ON_MOVE_FIFTEEN_BREAK_LEFT_MADE"],
|
|
175
|
+
on_move_fifteen_break_left_attempt: data["ON_MOVE_FIFTEEN_BREAK_LEFT_ATTEMPT"],
|
|
176
|
+
on_move_fifteen_break_left_pct: data["ON_MOVE_FIFTEEN_BREAK_LEFT_PCT"]}
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Extracts top key shot attributes from data
|
|
180
|
+
# @api private
|
|
181
|
+
# @param data [Hash] the row data
|
|
182
|
+
# @return [Hash] top key shot attributes
|
|
183
|
+
def self.top(data)
|
|
184
|
+
{on_move_fifteen_top_key_made: data["ON_MOVE_FIFTEEN_TOP_KEY_MADE"],
|
|
185
|
+
on_move_fifteen_top_key_attempt: data["ON_MOVE_FIFTEEN_TOP_KEY_ATTEMPT"],
|
|
186
|
+
on_move_fifteen_top_key_pct: data["ON_MOVE_FIFTEEN_TOP_KEY_PCT"]}
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Extracts right break shot attributes from data
|
|
190
|
+
# @api private
|
|
191
|
+
# @param data [Hash] the row data
|
|
192
|
+
# @return [Hash] right break shot attributes
|
|
193
|
+
def self.right(data)
|
|
194
|
+
{on_move_fifteen_break_right_made: data["ON_MOVE_FIFTEEN_BREAK_RIGHT_MADE"],
|
|
195
|
+
on_move_fifteen_break_right_attempt: data["ON_MOVE_FIFTEEN_BREAK_RIGHT_ATTEMPT"],
|
|
196
|
+
on_move_fifteen_break_right_pct: data["ON_MOVE_FIFTEEN_BREAK_RIGHT_PCT"]}
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
# Extracts off-dribble college range shot attributes
|
|
201
|
+
# @api private
|
|
202
|
+
module OffDribbleCollege
|
|
203
|
+
# Extracts left break shot attributes from data
|
|
204
|
+
# @api private
|
|
205
|
+
# @param data [Hash] the row data
|
|
206
|
+
# @return [Hash] left break shot attributes
|
|
207
|
+
def self.left(data)
|
|
208
|
+
{off_dribble_college_break_left_made: data["OFF_DRIBBLE_COLLEGE_BREAK_LEFT_MADE"],
|
|
209
|
+
off_dribble_college_break_left_attempt: data["OFF_DRIBBLE_COLLEGE_BREAK_LEFT_ATTEMPT"],
|
|
210
|
+
off_dribble_college_break_left_pct: data["OFF_DRIBBLE_COLLEGE_BREAK_LEFT_PCT"]}
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
# Extracts top key shot attributes from data
|
|
214
|
+
# @api private
|
|
215
|
+
# @param data [Hash] the row data
|
|
216
|
+
# @return [Hash] top key shot attributes
|
|
217
|
+
def self.top(data)
|
|
218
|
+
{off_dribble_college_top_key_made: data["OFF_DRIBBLE_COLLEGE_TOP_KEY_MADE"],
|
|
219
|
+
off_dribble_college_top_key_attempt: data["OFF_DRIBBLE_COLLEGE_TOP_KEY_ATTEMPT"],
|
|
220
|
+
off_dribble_college_top_key_pct: data["OFF_DRIBBLE_COLLEGE_TOP_KEY_PCT"]}
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
# Extracts right break shot attributes from data
|
|
224
|
+
# @api private
|
|
225
|
+
# @param data [Hash] the row data
|
|
226
|
+
# @return [Hash] right break shot attributes
|
|
227
|
+
def self.right(data)
|
|
228
|
+
{off_dribble_college_break_right_made: data["OFF_DRIBBLE_COLLEGE_BREAK_RIGHT_MADE"],
|
|
229
|
+
off_dribble_college_break_right_attempt: data["OFF_DRIBBLE_COLLEGE_BREAK_RIGHT_ATTEMPT"],
|
|
230
|
+
off_dribble_college_break_right_pct: data["OFF_DRIBBLE_COLLEGE_BREAK_RIGHT_PCT"]}
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# Extracts on-move college range shot attributes
|
|
235
|
+
# @api private
|
|
236
|
+
module OnMoveCollege
|
|
237
|
+
# Extracts left break shot attributes from data
|
|
238
|
+
# @api private
|
|
239
|
+
# @param data [Hash] the row data
|
|
240
|
+
# @return [Hash] left break shot attributes
|
|
241
|
+
def self.left(data)
|
|
242
|
+
{on_move_college_break_left_made: data["ON_MOVE_COLLEGE_BREAK_LEFT_MADE"],
|
|
243
|
+
on_move_college_break_left_attempt: data["ON_MOVE_COLLEGE_BREAK_LEFT_ATTEMPT"],
|
|
244
|
+
on_move_college_break_left_pct: data["ON_MOVE_COLLEGE_BREAK_LEFT_PCT"]}
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
# Extracts top key shot attributes from data
|
|
248
|
+
# @api private
|
|
249
|
+
# @param data [Hash] the row data
|
|
250
|
+
# @return [Hash] top key shot attributes
|
|
251
|
+
def self.top(data)
|
|
252
|
+
{on_move_college_top_key_made: data["ON_MOVE_COLLEGE_TOP_KEY_MADE"],
|
|
253
|
+
on_move_college_top_key_attempt: data["ON_MOVE_COLLEGE_TOP_KEY_ATTEMPT"],
|
|
254
|
+
on_move_college_top_key_pct: data["ON_MOVE_COLLEGE_TOP_KEY_PCT"]}
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
# Extracts right break shot attributes from data
|
|
258
|
+
# @api private
|
|
259
|
+
# @param data [Hash] the row data
|
|
260
|
+
# @return [Hash] right break shot attributes
|
|
261
|
+
def self.right(data)
|
|
262
|
+
{on_move_college_break_right_made: data["ON_MOVE_COLLEGE_BREAK_RIGHT_MADE"],
|
|
263
|
+
on_move_college_break_right_attempt: data["ON_MOVE_COLLEGE_BREAK_RIGHT_ATTEMPT"],
|
|
264
|
+
on_move_college_break_right_pct: data["ON_MOVE_COLLEGE_BREAK_RIGHT_PCT"]}
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
end
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
require "equalizer"
|
|
2
|
+
require "shale"
|
|
3
|
+
|
|
4
|
+
module NBA
|
|
5
|
+
# Represents a draft combine non-stationary shooting result
|
|
6
|
+
class DraftCombineNonStationaryShootingResult < Shale::Mapper
|
|
7
|
+
include Equalizer.new(:player_id)
|
|
8
|
+
|
|
9
|
+
# @!attribute [rw] temp_player_id
|
|
10
|
+
# Returns the temporary player ID
|
|
11
|
+
# @api public
|
|
12
|
+
# @example
|
|
13
|
+
# result.temp_player_id #=> 1
|
|
14
|
+
# @return [Integer] the temporary player ID
|
|
15
|
+
attribute :temp_player_id, Shale::Type::Integer
|
|
16
|
+
|
|
17
|
+
# @!attribute [rw] player_id
|
|
18
|
+
# Returns the player ID
|
|
19
|
+
# @api public
|
|
20
|
+
# @example
|
|
21
|
+
# result.player_id #=> 1630162
|
|
22
|
+
# @return [Integer] the player ID
|
|
23
|
+
attribute :player_id, Shale::Type::Integer
|
|
24
|
+
|
|
25
|
+
# @!attribute [rw] player_name
|
|
26
|
+
# Returns the player name
|
|
27
|
+
# @api public
|
|
28
|
+
# @example
|
|
29
|
+
# result.player_name #=> "Victor Wembanyama"
|
|
30
|
+
# @return [String] the player name
|
|
31
|
+
attribute :player_name, Shale::Type::String
|
|
32
|
+
|
|
33
|
+
# @!attribute [rw] first_name
|
|
34
|
+
# Returns the player's first name
|
|
35
|
+
# @api public
|
|
36
|
+
# @example
|
|
37
|
+
# result.first_name #=> "Victor"
|
|
38
|
+
# @return [String] the first name
|
|
39
|
+
attribute :first_name, Shale::Type::String
|
|
40
|
+
|
|
41
|
+
# @!attribute [rw] last_name
|
|
42
|
+
# Returns the player's last name
|
|
43
|
+
# @api public
|
|
44
|
+
# @example
|
|
45
|
+
# result.last_name #=> "Wembanyama"
|
|
46
|
+
# @return [String] the last name
|
|
47
|
+
attribute :last_name, Shale::Type::String
|
|
48
|
+
|
|
49
|
+
# @!attribute [rw] position
|
|
50
|
+
# Returns the player's position
|
|
51
|
+
# @api public
|
|
52
|
+
# @example
|
|
53
|
+
# result.position #=> "C"
|
|
54
|
+
# @return [String] the position
|
|
55
|
+
attribute :position, Shale::Type::String
|
|
56
|
+
|
|
57
|
+
# @!attribute [rw] off_dribble_fifteen_break_left_made
|
|
58
|
+
# Returns off-dribble 15-foot break left shots made
|
|
59
|
+
# @api public
|
|
60
|
+
# @example
|
|
61
|
+
# result.off_dribble_fifteen_break_left_made #=> 3
|
|
62
|
+
# @return [Integer] shots made
|
|
63
|
+
attribute :off_dribble_fifteen_break_left_made, Shale::Type::Integer
|
|
64
|
+
|
|
65
|
+
# @!attribute [rw] off_dribble_fifteen_break_left_attempt
|
|
66
|
+
# Returns off-dribble 15-foot break left shot attempts
|
|
67
|
+
# @api public
|
|
68
|
+
# @example
|
|
69
|
+
# result.off_dribble_fifteen_break_left_attempt #=> 5
|
|
70
|
+
# @return [Integer] shot attempts
|
|
71
|
+
attribute :off_dribble_fifteen_break_left_attempt, Shale::Type::Integer
|
|
72
|
+
|
|
73
|
+
# @!attribute [rw] off_dribble_fifteen_break_left_pct
|
|
74
|
+
# Returns off-dribble 15-foot break left shooting percentage
|
|
75
|
+
# @api public
|
|
76
|
+
# @example
|
|
77
|
+
# result.off_dribble_fifteen_break_left_pct #=> 0.600
|
|
78
|
+
# @return [Float] shooting percentage
|
|
79
|
+
attribute :off_dribble_fifteen_break_left_pct, Shale::Type::Float
|
|
80
|
+
|
|
81
|
+
# @!attribute [rw] off_dribble_fifteen_top_key_made
|
|
82
|
+
# Returns off-dribble 15-foot top key shots made
|
|
83
|
+
# @api public
|
|
84
|
+
# @example
|
|
85
|
+
# result.off_dribble_fifteen_top_key_made #=> 4
|
|
86
|
+
# @return [Integer] shots made
|
|
87
|
+
attribute :off_dribble_fifteen_top_key_made, Shale::Type::Integer
|
|
88
|
+
|
|
89
|
+
# @!attribute [rw] off_dribble_fifteen_top_key_attempt
|
|
90
|
+
# Returns off-dribble 15-foot top key shot attempts
|
|
91
|
+
# @api public
|
|
92
|
+
# @example
|
|
93
|
+
# result.off_dribble_fifteen_top_key_attempt #=> 5
|
|
94
|
+
# @return [Integer] shot attempts
|
|
95
|
+
attribute :off_dribble_fifteen_top_key_attempt, Shale::Type::Integer
|
|
96
|
+
|
|
97
|
+
# @!attribute [rw] off_dribble_fifteen_top_key_pct
|
|
98
|
+
# Returns off-dribble 15-foot top key shooting percentage
|
|
99
|
+
# @api public
|
|
100
|
+
# @example
|
|
101
|
+
# result.off_dribble_fifteen_top_key_pct #=> 0.800
|
|
102
|
+
# @return [Float] shooting percentage
|
|
103
|
+
attribute :off_dribble_fifteen_top_key_pct, Shale::Type::Float
|
|
104
|
+
|
|
105
|
+
# @!attribute [rw] off_dribble_fifteen_break_right_made
|
|
106
|
+
# Returns off-dribble 15-foot break right shots made
|
|
107
|
+
# @api public
|
|
108
|
+
# @example
|
|
109
|
+
# result.off_dribble_fifteen_break_right_made #=> 3
|
|
110
|
+
# @return [Integer] shots made
|
|
111
|
+
attribute :off_dribble_fifteen_break_right_made, Shale::Type::Integer
|
|
112
|
+
|
|
113
|
+
# @!attribute [rw] off_dribble_fifteen_break_right_attempt
|
|
114
|
+
# Returns off-dribble 15-foot break right shot attempts
|
|
115
|
+
# @api public
|
|
116
|
+
# @example
|
|
117
|
+
# result.off_dribble_fifteen_break_right_attempt #=> 5
|
|
118
|
+
# @return [Integer] shot attempts
|
|
119
|
+
attribute :off_dribble_fifteen_break_right_attempt, Shale::Type::Integer
|
|
120
|
+
|
|
121
|
+
# @!attribute [rw] off_dribble_fifteen_break_right_pct
|
|
122
|
+
# Returns off-dribble 15-foot break right shooting percentage
|
|
123
|
+
# @api public
|
|
124
|
+
# @example
|
|
125
|
+
# result.off_dribble_fifteen_break_right_pct #=> 0.600
|
|
126
|
+
# @return [Float] shooting percentage
|
|
127
|
+
attribute :off_dribble_fifteen_break_right_pct, Shale::Type::Float
|
|
128
|
+
|
|
129
|
+
# @!attribute [rw] on_move_fifteen_break_left_made
|
|
130
|
+
# Returns on-the-move 15-foot break left shots made
|
|
131
|
+
# @api public
|
|
132
|
+
# @example
|
|
133
|
+
# result.on_move_fifteen_break_left_made #=> 2
|
|
134
|
+
# @return [Integer] shots made
|
|
135
|
+
attribute :on_move_fifteen_break_left_made, Shale::Type::Integer
|
|
136
|
+
|
|
137
|
+
# @!attribute [rw] on_move_fifteen_break_left_attempt
|
|
138
|
+
# Returns on-the-move 15-foot break left shot attempts
|
|
139
|
+
# @api public
|
|
140
|
+
# @example
|
|
141
|
+
# result.on_move_fifteen_break_left_attempt #=> 5
|
|
142
|
+
# @return [Integer] shot attempts
|
|
143
|
+
attribute :on_move_fifteen_break_left_attempt, Shale::Type::Integer
|
|
144
|
+
|
|
145
|
+
# @!attribute [rw] on_move_fifteen_break_left_pct
|
|
146
|
+
# Returns on-the-move 15-foot break left shooting percentage
|
|
147
|
+
# @api public
|
|
148
|
+
# @example
|
|
149
|
+
# result.on_move_fifteen_break_left_pct #=> 0.400
|
|
150
|
+
# @return [Float] shooting percentage
|
|
151
|
+
attribute :on_move_fifteen_break_left_pct, Shale::Type::Float
|
|
152
|
+
|
|
153
|
+
# @!attribute [rw] on_move_fifteen_top_key_made
|
|
154
|
+
# Returns on-the-move 15-foot top key shots made
|
|
155
|
+
# @api public
|
|
156
|
+
# @example
|
|
157
|
+
# result.on_move_fifteen_top_key_made #=> 3
|
|
158
|
+
# @return [Integer] shots made
|
|
159
|
+
attribute :on_move_fifteen_top_key_made, Shale::Type::Integer
|
|
160
|
+
|
|
161
|
+
# @!attribute [rw] on_move_fifteen_top_key_attempt
|
|
162
|
+
# Returns on-the-move 15-foot top key shot attempts
|
|
163
|
+
# @api public
|
|
164
|
+
# @example
|
|
165
|
+
# result.on_move_fifteen_top_key_attempt #=> 5
|
|
166
|
+
# @return [Integer] shot attempts
|
|
167
|
+
attribute :on_move_fifteen_top_key_attempt, Shale::Type::Integer
|
|
168
|
+
|
|
169
|
+
# @!attribute [rw] on_move_fifteen_top_key_pct
|
|
170
|
+
# Returns on-the-move 15-foot top key shooting percentage
|
|
171
|
+
# @api public
|
|
172
|
+
# @example
|
|
173
|
+
# result.on_move_fifteen_top_key_pct #=> 0.600
|
|
174
|
+
# @return [Float] shooting percentage
|
|
175
|
+
attribute :on_move_fifteen_top_key_pct, Shale::Type::Float
|
|
176
|
+
|
|
177
|
+
# @!attribute [rw] on_move_fifteen_break_right_made
|
|
178
|
+
# Returns on-the-move 15-foot break right shots made
|
|
179
|
+
# @api public
|
|
180
|
+
# @example
|
|
181
|
+
# result.on_move_fifteen_break_right_made #=> 2
|
|
182
|
+
# @return [Integer] shots made
|
|
183
|
+
attribute :on_move_fifteen_break_right_made, Shale::Type::Integer
|
|
184
|
+
|
|
185
|
+
# @!attribute [rw] on_move_fifteen_break_right_attempt
|
|
186
|
+
# Returns on-the-move 15-foot break right shot attempts
|
|
187
|
+
# @api public
|
|
188
|
+
# @example
|
|
189
|
+
# result.on_move_fifteen_break_right_attempt #=> 5
|
|
190
|
+
# @return [Integer] shot attempts
|
|
191
|
+
attribute :on_move_fifteen_break_right_attempt, Shale::Type::Integer
|
|
192
|
+
|
|
193
|
+
# @!attribute [rw] on_move_fifteen_break_right_pct
|
|
194
|
+
# Returns on-the-move 15-foot break right shooting percentage
|
|
195
|
+
# @api public
|
|
196
|
+
# @example
|
|
197
|
+
# result.on_move_fifteen_break_right_pct #=> 0.400
|
|
198
|
+
# @return [Float] shooting percentage
|
|
199
|
+
attribute :on_move_fifteen_break_right_pct, Shale::Type::Float
|
|
200
|
+
|
|
201
|
+
# @!attribute [rw] off_dribble_college_break_left_made
|
|
202
|
+
# Returns off-dribble college range break left shots made
|
|
203
|
+
# @api public
|
|
204
|
+
# @example
|
|
205
|
+
# result.off_dribble_college_break_left_made #=> 2
|
|
206
|
+
# @return [Integer] shots made
|
|
207
|
+
attribute :off_dribble_college_break_left_made, Shale::Type::Integer
|
|
208
|
+
|
|
209
|
+
# @!attribute [rw] off_dribble_college_break_left_attempt
|
|
210
|
+
# Returns off-dribble college range break left shot attempts
|
|
211
|
+
# @api public
|
|
212
|
+
# @example
|
|
213
|
+
# result.off_dribble_college_break_left_attempt #=> 5
|
|
214
|
+
# @return [Integer] shot attempts
|
|
215
|
+
attribute :off_dribble_college_break_left_attempt, Shale::Type::Integer
|
|
216
|
+
|
|
217
|
+
# @!attribute [rw] off_dribble_college_break_left_pct
|
|
218
|
+
# Returns off-dribble college range break left shooting percentage
|
|
219
|
+
# @api public
|
|
220
|
+
# @example
|
|
221
|
+
# result.off_dribble_college_break_left_pct #=> 0.400
|
|
222
|
+
# @return [Float] shooting percentage
|
|
223
|
+
attribute :off_dribble_college_break_left_pct, Shale::Type::Float
|
|
224
|
+
|
|
225
|
+
# @!attribute [rw] off_dribble_college_top_key_made
|
|
226
|
+
# Returns off-dribble college range top key shots made
|
|
227
|
+
# @api public
|
|
228
|
+
# @example
|
|
229
|
+
# result.off_dribble_college_top_key_made #=> 3
|
|
230
|
+
# @return [Integer] shots made
|
|
231
|
+
attribute :off_dribble_college_top_key_made, Shale::Type::Integer
|
|
232
|
+
|
|
233
|
+
# @!attribute [rw] off_dribble_college_top_key_attempt
|
|
234
|
+
# Returns off-dribble college range top key shot attempts
|
|
235
|
+
# @api public
|
|
236
|
+
# @example
|
|
237
|
+
# result.off_dribble_college_top_key_attempt #=> 5
|
|
238
|
+
# @return [Integer] shot attempts
|
|
239
|
+
attribute :off_dribble_college_top_key_attempt, Shale::Type::Integer
|
|
240
|
+
|
|
241
|
+
# @!attribute [rw] off_dribble_college_top_key_pct
|
|
242
|
+
# Returns off-dribble college range top key shooting percentage
|
|
243
|
+
# @api public
|
|
244
|
+
# @example
|
|
245
|
+
# result.off_dribble_college_top_key_pct #=> 0.600
|
|
246
|
+
# @return [Float] shooting percentage
|
|
247
|
+
attribute :off_dribble_college_top_key_pct, Shale::Type::Float
|
|
248
|
+
|
|
249
|
+
# @!attribute [rw] off_dribble_college_break_right_made
|
|
250
|
+
# Returns off-dribble college range break right shots made
|
|
251
|
+
# @api public
|
|
252
|
+
# @example
|
|
253
|
+
# result.off_dribble_college_break_right_made #=> 2
|
|
254
|
+
# @return [Integer] shots made
|
|
255
|
+
attribute :off_dribble_college_break_right_made, Shale::Type::Integer
|
|
256
|
+
|
|
257
|
+
# @!attribute [rw] off_dribble_college_break_right_attempt
|
|
258
|
+
# Returns off-dribble college range break right shot attempts
|
|
259
|
+
# @api public
|
|
260
|
+
# @example
|
|
261
|
+
# result.off_dribble_college_break_right_attempt #=> 5
|
|
262
|
+
# @return [Integer] shot attempts
|
|
263
|
+
attribute :off_dribble_college_break_right_attempt, Shale::Type::Integer
|
|
264
|
+
|
|
265
|
+
# @!attribute [rw] off_dribble_college_break_right_pct
|
|
266
|
+
# Returns off-dribble college range break right shooting percentage
|
|
267
|
+
# @api public
|
|
268
|
+
# @example
|
|
269
|
+
# result.off_dribble_college_break_right_pct #=> 0.400
|
|
270
|
+
# @return [Float] shooting percentage
|
|
271
|
+
attribute :off_dribble_college_break_right_pct, Shale::Type::Float
|
|
272
|
+
|
|
273
|
+
# @!attribute [rw] on_move_college_break_left_made
|
|
274
|
+
# Returns on-the-move college range break left shots made
|
|
275
|
+
# @api public
|
|
276
|
+
# @example
|
|
277
|
+
# result.on_move_college_break_left_made #=> 1
|
|
278
|
+
# @return [Integer] shots made
|
|
279
|
+
attribute :on_move_college_break_left_made, Shale::Type::Integer
|
|
280
|
+
|
|
281
|
+
# @!attribute [rw] on_move_college_break_left_attempt
|
|
282
|
+
# Returns on-the-move college range break left shot attempts
|
|
283
|
+
# @api public
|
|
284
|
+
# @example
|
|
285
|
+
# result.on_move_college_break_left_attempt #=> 5
|
|
286
|
+
# @return [Integer] shot attempts
|
|
287
|
+
attribute :on_move_college_break_left_attempt, Shale::Type::Integer
|
|
288
|
+
|
|
289
|
+
# @!attribute [rw] on_move_college_break_left_pct
|
|
290
|
+
# Returns on-the-move college range break left shooting percentage
|
|
291
|
+
# @api public
|
|
292
|
+
# @example
|
|
293
|
+
# result.on_move_college_break_left_pct #=> 0.200
|
|
294
|
+
# @return [Float] shooting percentage
|
|
295
|
+
attribute :on_move_college_break_left_pct, Shale::Type::Float
|
|
296
|
+
|
|
297
|
+
# @!attribute [rw] on_move_college_top_key_made
|
|
298
|
+
# Returns on-the-move college range top key shots made
|
|
299
|
+
# @api public
|
|
300
|
+
# @example
|
|
301
|
+
# result.on_move_college_top_key_made #=> 2
|
|
302
|
+
# @return [Integer] shots made
|
|
303
|
+
attribute :on_move_college_top_key_made, Shale::Type::Integer
|
|
304
|
+
|
|
305
|
+
# @!attribute [rw] on_move_college_top_key_attempt
|
|
306
|
+
# Returns on-the-move college range top key shot attempts
|
|
307
|
+
# @api public
|
|
308
|
+
# @example
|
|
309
|
+
# result.on_move_college_top_key_attempt #=> 5
|
|
310
|
+
# @return [Integer] shot attempts
|
|
311
|
+
attribute :on_move_college_top_key_attempt, Shale::Type::Integer
|
|
312
|
+
|
|
313
|
+
# @!attribute [rw] on_move_college_top_key_pct
|
|
314
|
+
# Returns on-the-move college range top key shooting percentage
|
|
315
|
+
# @api public
|
|
316
|
+
# @example
|
|
317
|
+
# result.on_move_college_top_key_pct #=> 0.400
|
|
318
|
+
# @return [Float] shooting percentage
|
|
319
|
+
attribute :on_move_college_top_key_pct, Shale::Type::Float
|
|
320
|
+
|
|
321
|
+
# @!attribute [rw] on_move_college_break_right_made
|
|
322
|
+
# Returns on-the-move college range break right shots made
|
|
323
|
+
# @api public
|
|
324
|
+
# @example
|
|
325
|
+
# result.on_move_college_break_right_made #=> 1
|
|
326
|
+
# @return [Integer] shots made
|
|
327
|
+
attribute :on_move_college_break_right_made, Shale::Type::Integer
|
|
328
|
+
|
|
329
|
+
# @!attribute [rw] on_move_college_break_right_attempt
|
|
330
|
+
# Returns on-the-move college range break right shot attempts
|
|
331
|
+
# @api public
|
|
332
|
+
# @example
|
|
333
|
+
# result.on_move_college_break_right_attempt #=> 5
|
|
334
|
+
# @return [Integer] shot attempts
|
|
335
|
+
attribute :on_move_college_break_right_attempt, Shale::Type::Integer
|
|
336
|
+
|
|
337
|
+
# @!attribute [rw] on_move_college_break_right_pct
|
|
338
|
+
# Returns on-the-move college range break right shooting percentage
|
|
339
|
+
# @api public
|
|
340
|
+
# @example
|
|
341
|
+
# result.on_move_college_break_right_pct #=> 0.200
|
|
342
|
+
# @return [Float] shooting percentage
|
|
343
|
+
attribute :on_move_college_break_right_pct, Shale::Type::Float
|
|
344
|
+
|
|
345
|
+
# Returns the player object
|
|
346
|
+
#
|
|
347
|
+
# @api public
|
|
348
|
+
# @example
|
|
349
|
+
# result.player #=> #<NBA::Player>
|
|
350
|
+
# @return [Player, nil] the player object
|
|
351
|
+
def player
|
|
352
|
+
Players.find(player_id)
|
|
353
|
+
end
|
|
354
|
+
end
|
|
355
|
+
end
|