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,233 @@
|
|
|
1
|
+
require "equalizer"
|
|
2
|
+
require "shale"
|
|
3
|
+
|
|
4
|
+
module NBA
|
|
5
|
+
# Represents hustle statistics for a player in a game
|
|
6
|
+
class BoxScoreHustlePlayerStat < Shale::Mapper
|
|
7
|
+
include Equalizer.new(:game_id, :player_id)
|
|
8
|
+
|
|
9
|
+
# @!attribute [rw] game_id
|
|
10
|
+
# Returns the game ID
|
|
11
|
+
# @api public
|
|
12
|
+
# @example
|
|
13
|
+
# stat.game_id #=> "0022400001"
|
|
14
|
+
# @return [String] the game ID
|
|
15
|
+
attribute :game_id, Shale::Type::String
|
|
16
|
+
|
|
17
|
+
# @!attribute [rw] team_id
|
|
18
|
+
# Returns the team ID
|
|
19
|
+
# @api public
|
|
20
|
+
# @example
|
|
21
|
+
# stat.team_id #=> 1610612744
|
|
22
|
+
# @return [Integer] the team ID
|
|
23
|
+
attribute :team_id, Shale::Type::Integer
|
|
24
|
+
|
|
25
|
+
# @!attribute [rw] team_abbreviation
|
|
26
|
+
# Returns the team abbreviation
|
|
27
|
+
# @api public
|
|
28
|
+
# @example
|
|
29
|
+
# stat.team_abbreviation #=> "GSW"
|
|
30
|
+
# @return [String] the team abbreviation
|
|
31
|
+
attribute :team_abbreviation, Shale::Type::String
|
|
32
|
+
|
|
33
|
+
# @!attribute [rw] team_city
|
|
34
|
+
# Returns the team city
|
|
35
|
+
# @api public
|
|
36
|
+
# @example
|
|
37
|
+
# stat.team_city #=> "Golden State"
|
|
38
|
+
# @return [String] the team city
|
|
39
|
+
attribute :team_city, Shale::Type::String
|
|
40
|
+
|
|
41
|
+
# @!attribute [rw] player_id
|
|
42
|
+
# Returns the player ID
|
|
43
|
+
# @api public
|
|
44
|
+
# @example
|
|
45
|
+
# stat.player_id #=> 201939
|
|
46
|
+
# @return [Integer] the player ID
|
|
47
|
+
attribute :player_id, Shale::Type::Integer
|
|
48
|
+
|
|
49
|
+
# @!attribute [rw] player_name
|
|
50
|
+
# Returns the player name
|
|
51
|
+
# @api public
|
|
52
|
+
# @example
|
|
53
|
+
# stat.player_name #=> "Stephen Curry"
|
|
54
|
+
# @return [String] the player name
|
|
55
|
+
attribute :player_name, Shale::Type::String
|
|
56
|
+
|
|
57
|
+
# @!attribute [rw] start_position
|
|
58
|
+
# Returns the starting position
|
|
59
|
+
# @api public
|
|
60
|
+
# @example
|
|
61
|
+
# stat.start_position #=> "G"
|
|
62
|
+
# @return [String] the starting position
|
|
63
|
+
attribute :start_position, Shale::Type::String
|
|
64
|
+
|
|
65
|
+
# @!attribute [rw] comment
|
|
66
|
+
# Returns any comment about the player
|
|
67
|
+
# @api public
|
|
68
|
+
# @example
|
|
69
|
+
# stat.comment #=> "DNP - Rest"
|
|
70
|
+
# @return [String] the comment
|
|
71
|
+
attribute :comment, Shale::Type::String
|
|
72
|
+
|
|
73
|
+
# @!attribute [rw] min
|
|
74
|
+
# Returns minutes played
|
|
75
|
+
# @api public
|
|
76
|
+
# @example
|
|
77
|
+
# stat.min #=> "32:45"
|
|
78
|
+
# @return [String] the minutes
|
|
79
|
+
attribute :min, Shale::Type::String
|
|
80
|
+
|
|
81
|
+
# @!attribute [rw] pts
|
|
82
|
+
# Returns points scored
|
|
83
|
+
# @api public
|
|
84
|
+
# @example
|
|
85
|
+
# stat.pts #=> 28
|
|
86
|
+
# @return [Integer] points
|
|
87
|
+
attribute :pts, Shale::Type::Integer
|
|
88
|
+
|
|
89
|
+
# @!attribute [rw] contested_shots
|
|
90
|
+
# Returns contested shots
|
|
91
|
+
# @api public
|
|
92
|
+
# @example
|
|
93
|
+
# stat.contested_shots #=> 8
|
|
94
|
+
# @return [Integer] contested shots
|
|
95
|
+
attribute :contested_shots, Shale::Type::Integer
|
|
96
|
+
|
|
97
|
+
# @!attribute [rw] contested_shots_2pt
|
|
98
|
+
# Returns contested 2-point shots
|
|
99
|
+
# @api public
|
|
100
|
+
# @example
|
|
101
|
+
# stat.contested_shots_2pt #=> 5
|
|
102
|
+
# @return [Integer] contested 2-point shots
|
|
103
|
+
attribute :contested_shots_2pt, Shale::Type::Integer
|
|
104
|
+
|
|
105
|
+
# @!attribute [rw] contested_shots_3pt
|
|
106
|
+
# Returns contested 3-point shots
|
|
107
|
+
# @api public
|
|
108
|
+
# @example
|
|
109
|
+
# stat.contested_shots_3pt #=> 3
|
|
110
|
+
# @return [Integer] contested 3-point shots
|
|
111
|
+
attribute :contested_shots_3pt, Shale::Type::Integer
|
|
112
|
+
|
|
113
|
+
# @!attribute [rw] deflections
|
|
114
|
+
# Returns deflections
|
|
115
|
+
# @api public
|
|
116
|
+
# @example
|
|
117
|
+
# stat.deflections #=> 4
|
|
118
|
+
# @return [Integer] deflections
|
|
119
|
+
attribute :deflections, Shale::Type::Integer
|
|
120
|
+
|
|
121
|
+
# @!attribute [rw] charges_drawn
|
|
122
|
+
# Returns charges drawn
|
|
123
|
+
# @api public
|
|
124
|
+
# @example
|
|
125
|
+
# stat.charges_drawn #=> 1
|
|
126
|
+
# @return [Integer] charges drawn
|
|
127
|
+
attribute :charges_drawn, Shale::Type::Integer
|
|
128
|
+
|
|
129
|
+
# @!attribute [rw] screen_assists
|
|
130
|
+
# Returns screen assists
|
|
131
|
+
# @api public
|
|
132
|
+
# @example
|
|
133
|
+
# stat.screen_assists #=> 3
|
|
134
|
+
# @return [Integer] screen assists
|
|
135
|
+
attribute :screen_assists, Shale::Type::Integer
|
|
136
|
+
|
|
137
|
+
# @!attribute [rw] screen_ast_pts
|
|
138
|
+
# Returns points from screen assists
|
|
139
|
+
# @api public
|
|
140
|
+
# @example
|
|
141
|
+
# stat.screen_ast_pts #=> 6
|
|
142
|
+
# @return [Integer] screen assist points
|
|
143
|
+
attribute :screen_ast_pts, Shale::Type::Integer
|
|
144
|
+
|
|
145
|
+
# @!attribute [rw] loose_balls_recovered
|
|
146
|
+
# Returns loose balls recovered
|
|
147
|
+
# @api public
|
|
148
|
+
# @example
|
|
149
|
+
# stat.loose_balls_recovered #=> 2
|
|
150
|
+
# @return [Integer] loose balls recovered
|
|
151
|
+
attribute :loose_balls_recovered, Shale::Type::Integer
|
|
152
|
+
|
|
153
|
+
# @!attribute [rw] off_loose_balls_recovered
|
|
154
|
+
# Returns offensive loose balls recovered
|
|
155
|
+
# @api public
|
|
156
|
+
# @example
|
|
157
|
+
# stat.off_loose_balls_recovered #=> 1
|
|
158
|
+
# @return [Integer] offensive loose balls recovered
|
|
159
|
+
attribute :off_loose_balls_recovered, Shale::Type::Integer
|
|
160
|
+
|
|
161
|
+
# @!attribute [rw] def_loose_balls_recovered
|
|
162
|
+
# Returns defensive loose balls recovered
|
|
163
|
+
# @api public
|
|
164
|
+
# @example
|
|
165
|
+
# stat.def_loose_balls_recovered #=> 1
|
|
166
|
+
# @return [Integer] defensive loose balls recovered
|
|
167
|
+
attribute :def_loose_balls_recovered, Shale::Type::Integer
|
|
168
|
+
|
|
169
|
+
# @!attribute [rw] box_outs
|
|
170
|
+
# Returns box outs
|
|
171
|
+
# @api public
|
|
172
|
+
# @example
|
|
173
|
+
# stat.box_outs #=> 3
|
|
174
|
+
# @return [Integer] box outs
|
|
175
|
+
attribute :box_outs, Shale::Type::Integer
|
|
176
|
+
|
|
177
|
+
# @!attribute [rw] off_box_outs
|
|
178
|
+
# Returns offensive box outs
|
|
179
|
+
# @api public
|
|
180
|
+
# @example
|
|
181
|
+
# stat.off_box_outs #=> 1
|
|
182
|
+
# @return [Integer] offensive box outs
|
|
183
|
+
attribute :off_box_outs, Shale::Type::Integer
|
|
184
|
+
|
|
185
|
+
# @!attribute [rw] def_box_outs
|
|
186
|
+
# Returns defensive box outs
|
|
187
|
+
# @api public
|
|
188
|
+
# @example
|
|
189
|
+
# stat.def_box_outs #=> 2
|
|
190
|
+
# @return [Integer] defensive box outs
|
|
191
|
+
attribute :def_box_outs, Shale::Type::Integer
|
|
192
|
+
|
|
193
|
+
# Returns the player object
|
|
194
|
+
#
|
|
195
|
+
# @api public
|
|
196
|
+
# @example
|
|
197
|
+
# stat.player #=> #<NBA::Player>
|
|
198
|
+
# @return [Player, nil] the player object
|
|
199
|
+
def player
|
|
200
|
+
Players.find(player_id)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# Returns the team object
|
|
204
|
+
#
|
|
205
|
+
# @api public
|
|
206
|
+
# @example
|
|
207
|
+
# stat.team #=> #<NBA::Team>
|
|
208
|
+
# @return [Team, nil] the team object
|
|
209
|
+
def team
|
|
210
|
+
Teams.find(team_id)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
# Returns the game object
|
|
214
|
+
#
|
|
215
|
+
# @api public
|
|
216
|
+
# @example
|
|
217
|
+
# stat.game #=> #<NBA::Game>
|
|
218
|
+
# @return [Game, nil] the game object
|
|
219
|
+
def game
|
|
220
|
+
Games.find(game_id)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
# Returns whether the player started
|
|
224
|
+
#
|
|
225
|
+
# @api public
|
|
226
|
+
# @example
|
|
227
|
+
# stat.starter? #=> true
|
|
228
|
+
# @return [Boolean] true if starter
|
|
229
|
+
def starter?
|
|
230
|
+
!start_position.nil? && !start_position.empty?
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
end
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
require "equalizer"
|
|
2
|
+
require "shale"
|
|
3
|
+
|
|
4
|
+
module NBA
|
|
5
|
+
# Represents hustle statistics for a team in a game
|
|
6
|
+
class BoxScoreHustleTeamStat < Shale::Mapper
|
|
7
|
+
include Equalizer.new(:game_id, :team_id)
|
|
8
|
+
|
|
9
|
+
# @!attribute [rw] game_id
|
|
10
|
+
# Returns the game ID
|
|
11
|
+
# @api public
|
|
12
|
+
# @example
|
|
13
|
+
# stat.game_id #=> "0022400001"
|
|
14
|
+
# @return [String] the game ID
|
|
15
|
+
attribute :game_id, Shale::Type::String
|
|
16
|
+
|
|
17
|
+
# @!attribute [rw] team_id
|
|
18
|
+
# Returns the team ID
|
|
19
|
+
# @api public
|
|
20
|
+
# @example
|
|
21
|
+
# stat.team_id #=> 1610612744
|
|
22
|
+
# @return [Integer] the team ID
|
|
23
|
+
attribute :team_id, Shale::Type::Integer
|
|
24
|
+
|
|
25
|
+
# @!attribute [rw] team_name
|
|
26
|
+
# Returns the team name
|
|
27
|
+
# @api public
|
|
28
|
+
# @example
|
|
29
|
+
# stat.team_name #=> "Warriors"
|
|
30
|
+
# @return [String] the team name
|
|
31
|
+
attribute :team_name, Shale::Type::String
|
|
32
|
+
|
|
33
|
+
# @!attribute [rw] team_abbreviation
|
|
34
|
+
# Returns the team abbreviation
|
|
35
|
+
# @api public
|
|
36
|
+
# @example
|
|
37
|
+
# stat.team_abbreviation #=> "GSW"
|
|
38
|
+
# @return [String] the team abbreviation
|
|
39
|
+
attribute :team_abbreviation, Shale::Type::String
|
|
40
|
+
|
|
41
|
+
# @!attribute [rw] team_city
|
|
42
|
+
# Returns the team city
|
|
43
|
+
# @api public
|
|
44
|
+
# @example
|
|
45
|
+
# stat.team_city #=> "Golden State"
|
|
46
|
+
# @return [String] the team city
|
|
47
|
+
attribute :team_city, Shale::Type::String
|
|
48
|
+
|
|
49
|
+
# @!attribute [rw] min
|
|
50
|
+
# Returns minutes played
|
|
51
|
+
# @api public
|
|
52
|
+
# @example
|
|
53
|
+
# stat.min #=> "240:00"
|
|
54
|
+
# @return [String] the minutes
|
|
55
|
+
attribute :min, Shale::Type::String
|
|
56
|
+
|
|
57
|
+
# @!attribute [rw] pts
|
|
58
|
+
# Returns points scored
|
|
59
|
+
# @api public
|
|
60
|
+
# @example
|
|
61
|
+
# stat.pts #=> 118
|
|
62
|
+
# @return [Integer] points
|
|
63
|
+
attribute :pts, Shale::Type::Integer
|
|
64
|
+
|
|
65
|
+
# @!attribute [rw] contested_shots
|
|
66
|
+
# Returns contested shots
|
|
67
|
+
# @api public
|
|
68
|
+
# @example
|
|
69
|
+
# stat.contested_shots #=> 45
|
|
70
|
+
# @return [Integer] contested shots
|
|
71
|
+
attribute :contested_shots, Shale::Type::Integer
|
|
72
|
+
|
|
73
|
+
# @!attribute [rw] contested_shots_2pt
|
|
74
|
+
# Returns contested 2-point shots
|
|
75
|
+
# @api public
|
|
76
|
+
# @example
|
|
77
|
+
# stat.contested_shots_2pt #=> 30
|
|
78
|
+
# @return [Integer] contested 2-point shots
|
|
79
|
+
attribute :contested_shots_2pt, Shale::Type::Integer
|
|
80
|
+
|
|
81
|
+
# @!attribute [rw] contested_shots_3pt
|
|
82
|
+
# Returns contested 3-point shots
|
|
83
|
+
# @api public
|
|
84
|
+
# @example
|
|
85
|
+
# stat.contested_shots_3pt #=> 15
|
|
86
|
+
# @return [Integer] contested 3-point shots
|
|
87
|
+
attribute :contested_shots_3pt, Shale::Type::Integer
|
|
88
|
+
|
|
89
|
+
# @!attribute [rw] deflections
|
|
90
|
+
# Returns deflections
|
|
91
|
+
# @api public
|
|
92
|
+
# @example
|
|
93
|
+
# stat.deflections #=> 12
|
|
94
|
+
# @return [Integer] deflections
|
|
95
|
+
attribute :deflections, Shale::Type::Integer
|
|
96
|
+
|
|
97
|
+
# @!attribute [rw] charges_drawn
|
|
98
|
+
# Returns charges drawn
|
|
99
|
+
# @api public
|
|
100
|
+
# @example
|
|
101
|
+
# stat.charges_drawn #=> 2
|
|
102
|
+
# @return [Integer] charges drawn
|
|
103
|
+
attribute :charges_drawn, Shale::Type::Integer
|
|
104
|
+
|
|
105
|
+
# @!attribute [rw] screen_assists
|
|
106
|
+
# Returns screen assists
|
|
107
|
+
# @api public
|
|
108
|
+
# @example
|
|
109
|
+
# stat.screen_assists #=> 18
|
|
110
|
+
# @return [Integer] screen assists
|
|
111
|
+
attribute :screen_assists, Shale::Type::Integer
|
|
112
|
+
|
|
113
|
+
# @!attribute [rw] screen_ast_pts
|
|
114
|
+
# Returns points from screen assists
|
|
115
|
+
# @api public
|
|
116
|
+
# @example
|
|
117
|
+
# stat.screen_ast_pts #=> 36
|
|
118
|
+
# @return [Integer] screen assist points
|
|
119
|
+
attribute :screen_ast_pts, Shale::Type::Integer
|
|
120
|
+
|
|
121
|
+
# @!attribute [rw] loose_balls_recovered
|
|
122
|
+
# Returns loose balls recovered
|
|
123
|
+
# @api public
|
|
124
|
+
# @example
|
|
125
|
+
# stat.loose_balls_recovered #=> 8
|
|
126
|
+
# @return [Integer] loose balls recovered
|
|
127
|
+
attribute :loose_balls_recovered, Shale::Type::Integer
|
|
128
|
+
|
|
129
|
+
# @!attribute [rw] off_loose_balls_recovered
|
|
130
|
+
# Returns offensive loose balls recovered
|
|
131
|
+
# @api public
|
|
132
|
+
# @example
|
|
133
|
+
# stat.off_loose_balls_recovered #=> 3
|
|
134
|
+
# @return [Integer] offensive loose balls recovered
|
|
135
|
+
attribute :off_loose_balls_recovered, Shale::Type::Integer
|
|
136
|
+
|
|
137
|
+
# @!attribute [rw] def_loose_balls_recovered
|
|
138
|
+
# Returns defensive loose balls recovered
|
|
139
|
+
# @api public
|
|
140
|
+
# @example
|
|
141
|
+
# stat.def_loose_balls_recovered #=> 5
|
|
142
|
+
# @return [Integer] defensive loose balls recovered
|
|
143
|
+
attribute :def_loose_balls_recovered, Shale::Type::Integer
|
|
144
|
+
|
|
145
|
+
# @!attribute [rw] box_outs
|
|
146
|
+
# Returns box outs
|
|
147
|
+
# @api public
|
|
148
|
+
# @example
|
|
149
|
+
# stat.box_outs #=> 25
|
|
150
|
+
# @return [Integer] box outs
|
|
151
|
+
attribute :box_outs, Shale::Type::Integer
|
|
152
|
+
|
|
153
|
+
# @!attribute [rw] off_box_outs
|
|
154
|
+
# Returns offensive box outs
|
|
155
|
+
# @api public
|
|
156
|
+
# @example
|
|
157
|
+
# stat.off_box_outs #=> 8
|
|
158
|
+
# @return [Integer] offensive box outs
|
|
159
|
+
attribute :off_box_outs, Shale::Type::Integer
|
|
160
|
+
|
|
161
|
+
# @!attribute [rw] def_box_outs
|
|
162
|
+
# Returns defensive box outs
|
|
163
|
+
# @api public
|
|
164
|
+
# @example
|
|
165
|
+
# stat.def_box_outs #=> 17
|
|
166
|
+
# @return [Integer] defensive box outs
|
|
167
|
+
attribute :def_box_outs, Shale::Type::Integer
|
|
168
|
+
|
|
169
|
+
# Returns the team object
|
|
170
|
+
#
|
|
171
|
+
# @api public
|
|
172
|
+
# @example
|
|
173
|
+
# stat.team #=> #<NBA::Team>
|
|
174
|
+
# @return [Team, nil] the team object
|
|
175
|
+
def team
|
|
176
|
+
Teams.find(team_id)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Returns the game object
|
|
180
|
+
#
|
|
181
|
+
# @api public
|
|
182
|
+
# @example
|
|
183
|
+
# stat.game #=> #<NBA::Game>
|
|
184
|
+
# @return [Game, nil] the game object
|
|
185
|
+
def game
|
|
186
|
+
Games.find(game_id)
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
end
|