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.
Files changed (321) hide show
  1. checksums.yaml +5 -5
  2. data/AGENTS.md +362 -0
  3. data/CHANGELOG.md +169 -0
  4. data/CLAUDE.md +1 -0
  5. data/LICENSE +21 -0
  6. data/README.md +501 -101
  7. data/bin/console +10 -0
  8. data/bin/setup +6 -0
  9. data/exe/nba +8 -0
  10. data/lib/nba/all_time_leader.rb +77 -0
  11. data/lib/nba/all_time_leaders.rb +185 -0
  12. data/lib/nba/assist_leader.rb +92 -0
  13. data/lib/nba/assist_leaders.rb +64 -0
  14. data/lib/nba/assist_tracker.rb +108 -0
  15. data/lib/nba/assist_tracker_entry.rb +206 -0
  16. data/lib/nba/award.rb +128 -0
  17. data/lib/nba/box_score.rb +2 -0
  18. data/lib/nba/box_score_advanced.rb +114 -0
  19. data/lib/nba/box_score_advanced_player_stat.rb +297 -0
  20. data/lib/nba/box_score_advanced_team_stat.rb +237 -0
  21. data/lib/nba/box_score_advanced_v3.rb +124 -0
  22. data/lib/nba/box_score_defensive_player_stat.rb +281 -0
  23. data/lib/nba/box_score_defensive_team_stat.rb +85 -0
  24. data/lib/nba/box_score_defensive_v2.rb +190 -0
  25. data/lib/nba/box_score_four_factors.rb +91 -0
  26. data/lib/nba/box_score_four_factors_player_stat.rb +185 -0
  27. data/lib/nba/box_score_four_factors_team_stat.rb +141 -0
  28. data/lib/nba/box_score_four_factors_v3.rb +133 -0
  29. data/lib/nba/box_score_hustle.rb +226 -0
  30. data/lib/nba/box_score_hustle_player_stat.rb +233 -0
  31. data/lib/nba/box_score_hustle_team_stat.rb +189 -0
  32. data/lib/nba/box_score_matchup_stat.rb +417 -0
  33. data/lib/nba/box_score_matchups_v3.rb +184 -0
  34. data/lib/nba/box_score_misc.rb +100 -0
  35. data/lib/nba/box_score_misc_player_stat.rb +217 -0
  36. data/lib/nba/box_score_misc_team_stat.rb +173 -0
  37. data/lib/nba/box_score_misc_v3.rb +163 -0
  38. data/lib/nba/box_score_player_stat.rb +273 -0
  39. data/lib/nba/box_score_player_track.rb +223 -0
  40. data/lib/nba/box_score_player_track_stat.rb +273 -0
  41. data/lib/nba/box_score_player_track_team_stat.rb +229 -0
  42. data/lib/nba/box_score_scoring.rb +103 -0
  43. data/lib/nba/box_score_scoring_player_stat.rb +241 -0
  44. data/lib/nba/box_score_scoring_team_stat.rb +197 -0
  45. data/lib/nba/box_score_scoring_v3.rb +170 -0
  46. data/lib/nba/box_score_similarity_score.rb +119 -0
  47. data/lib/nba/box_score_similarity_stat.rb +76 -0
  48. data/lib/nba/box_score_starter_bench_stat.rb +257 -0
  49. data/lib/nba/box_score_summary.rb +285 -0
  50. data/lib/nba/box_score_summary_v2.rb +202 -0
  51. data/lib/nba/box_score_summary_v3.rb +120 -0
  52. data/lib/nba/box_score_summary_v3_data.rb +419 -0
  53. data/lib/nba/box_score_team_stat.rb +229 -0
  54. data/lib/nba/box_score_traditional.rb +101 -0
  55. data/lib/nba/box_score_traditional_v3.rb +195 -0
  56. data/lib/nba/box_score_usage.rb +102 -0
  57. data/lib/nba/box_score_usage_player_stat.rb +265 -0
  58. data/lib/nba/box_score_usage_team_stat.rb +221 -0
  59. data/lib/nba/box_score_usage_v3.rb +169 -0
  60. data/lib/nba/box_score_v3_helpers.rb +144 -0
  61. data/lib/nba/career_stats.rb +217 -0
  62. data/lib/nba/cli/display/player_display.rb +98 -0
  63. data/lib/nba/cli/display.rb +178 -0
  64. data/lib/nba/cli/formatters/game_formatters.rb +86 -0
  65. data/lib/nba/cli/formatters/leaders_formatters.rb +26 -0
  66. data/lib/nba/cli/formatters/player_formatters.rb +52 -0
  67. data/lib/nba/cli/formatters/standings_formatters.rb +26 -0
  68. data/lib/nba/cli/formatters/team_formatters.rb +67 -0
  69. data/lib/nba/cli/formatters/time_formatters.rb +82 -0
  70. data/lib/nba/cli/formatters.rb +56 -0
  71. data/lib/nba/cli/helpers.rb +135 -0
  72. data/lib/nba/cli.rb +171 -20
  73. data/lib/nba/client.rb +35 -0
  74. data/lib/nba/collection.rb +89 -0
  75. data/lib/nba/college_player_stat.rb +200 -0
  76. data/lib/nba/common_player_info.rb +142 -0
  77. data/lib/nba/common_playoff_series.rb +90 -0
  78. data/lib/nba/common_team_years.rb +113 -0
  79. data/lib/nba/conference.rb +39 -0
  80. data/lib/nba/connection.rb +84 -0
  81. data/lib/nba/cume_stats_player.rb +358 -0
  82. data/lib/nba/cume_stats_player_game.rb +217 -0
  83. data/lib/nba/cume_stats_player_games.rb +99 -0
  84. data/lib/nba/cume_stats_player_games_entry.rb +25 -0
  85. data/lib/nba/cume_stats_player_total.rb +481 -0
  86. data/lib/nba/cume_stats_team.rb +349 -0
  87. data/lib/nba/cume_stats_team_games.rb +145 -0
  88. data/lib/nba/cume_stats_team_games_entry.rb +25 -0
  89. data/lib/nba/cume_stats_team_player.rb +485 -0
  90. data/lib/nba/cume_stats_team_total.rb +267 -0
  91. data/lib/nba/data.rb +73 -0
  92. data/lib/nba/defense_hub.rb +109 -0
  93. data/lib/nba/defense_hub_stat.rb +57 -0
  94. data/lib/nba/defensive_shot_stat.rb +102 -0
  95. data/lib/nba/division.rb +49 -0
  96. data/lib/nba/draft_board.rb +126 -0
  97. data/lib/nba/draft_board_pick.rb +173 -0
  98. data/lib/nba/draft_combine_anthro_measurement.rb +163 -0
  99. data/lib/nba/draft_combine_drill_result.rb +115 -0
  100. data/lib/nba/draft_combine_drill_results.rb +112 -0
  101. data/lib/nba/draft_combine_non_stationary_shooting.rb +268 -0
  102. data/lib/nba/draft_combine_non_stationary_shooting_result.rb +355 -0
  103. data/lib/nba/draft_combine_player_anthro.rb +133 -0
  104. data/lib/nba/draft_combine_spot_shooting.rb +243 -0
  105. data/lib/nba/draft_combine_spot_shooting_result.rb +419 -0
  106. data/lib/nba/draft_combine_stat.rb +211 -0
  107. data/lib/nba/draft_combine_stats.rb +160 -0
  108. data/lib/nba/draft_history.rb +142 -0
  109. data/lib/nba/draft_pick.rb +154 -0
  110. data/lib/nba/dunk_score_leader.rb +93 -0
  111. data/lib/nba/dunk_score_leaders.rb +77 -0
  112. data/lib/nba/estimated_metrics_stat.rb +152 -0
  113. data/lib/nba/fantasy_profile_stat.rb +142 -0
  114. data/lib/nba/fantasy_widget.rb +72 -0
  115. data/lib/nba/fantasy_widget_player.rb +98 -0
  116. data/lib/nba/found_game.rb +260 -0
  117. data/lib/nba/franchise.rb +136 -0
  118. data/lib/nba/franchise_history.rb +142 -0
  119. data/lib/nba/franchise_leader.rb +147 -0
  120. data/lib/nba/franchise_leaders.rb +162 -0
  121. data/lib/nba/franchise_player.rb +224 -0
  122. data/lib/nba/franchise_players.rb +147 -0
  123. data/lib/nba/game.rb +80 -64
  124. data/lib/nba/game_log.rb +349 -0
  125. data/lib/nba/game_rotation.rb +152 -0
  126. data/lib/nba/game_streak.rb +102 -0
  127. data/lib/nba/games.rb +46 -0
  128. data/lib/nba/home_page_leader.rb +99 -0
  129. data/lib/nba/home_page_leaders.rb +75 -0
  130. data/lib/nba/home_page_stat.rb +57 -0
  131. data/lib/nba/home_page_v2.rb +110 -0
  132. data/lib/nba/hustle_stats_box_score.rb +182 -0
  133. data/lib/nba/infographic_fan_duel_player.rb +139 -0
  134. data/lib/nba/infographic_fan_duel_player_stat.rb +311 -0
  135. data/lib/nba/ist_standing.rb +167 -0
  136. data/lib/nba/ist_standings.rb +81 -0
  137. data/lib/nba/leader.rb +103 -0
  138. data/lib/nba/leaders.rb +110 -0
  139. data/lib/nba/leaders_tile.rb +57 -0
  140. data/lib/nba/leaders_tiles.rb +90 -0
  141. data/lib/nba/league.rb +37 -0
  142. data/lib/nba/league_dash_lineup_stat.rb +270 -0
  143. data/lib/nba/league_dash_lineups.rb +177 -0
  144. data/lib/nba/league_dash_opp_pt_shot.rb +150 -0
  145. data/lib/nba/league_dash_player_bio_stat.rb +217 -0
  146. data/lib/nba/league_dash_player_bio_stats.rb +164 -0
  147. data/lib/nba/league_dash_player_clutch.rb +212 -0
  148. data/lib/nba/league_dash_player_clutch_stat.rb +271 -0
  149. data/lib/nba/league_dash_player_pt_shot.rb +152 -0
  150. data/lib/nba/league_dash_player_pt_shot_stat.rb +193 -0
  151. data/lib/nba/league_dash_player_shot_location_stat.rb +265 -0
  152. data/lib/nba/league_dash_player_shot_locations.rb +210 -0
  153. data/lib/nba/league_dash_player_stat.rb +306 -0
  154. data/lib/nba/league_dash_player_stats.rb +176 -0
  155. data/lib/nba/league_dash_pt_defend.rb +160 -0
  156. data/lib/nba/league_dash_pt_defend_stat.rb +145 -0
  157. data/lib/nba/league_dash_pt_stats.rb +152 -0
  158. data/lib/nba/league_dash_pt_stats_stat.rb +169 -0
  159. data/lib/nba/league_dash_pt_team_defend.rb +158 -0
  160. data/lib/nba/league_dash_pt_team_defend_stat.rb +110 -0
  161. data/lib/nba/league_dash_team_clutch.rb +211 -0
  162. data/lib/nba/league_dash_team_clutch_stat.rb +237 -0
  163. data/lib/nba/league_dash_team_pt_shot.rb +150 -0
  164. data/lib/nba/league_dash_team_pt_shot_stat.rb +166 -0
  165. data/lib/nba/league_dash_team_shot_location_stat.rb +230 -0
  166. data/lib/nba/league_dash_team_shot_locations.rb +208 -0
  167. data/lib/nba/league_dash_team_stat.rb +275 -0
  168. data/lib/nba/league_dash_team_stats.rb +172 -0
  169. data/lib/nba/league_game_finder.rb +170 -0
  170. data/lib/nba/league_game_log.rb +224 -0
  171. data/lib/nba/league_hustle_stats_player.rb +161 -0
  172. data/lib/nba/league_hustle_stats_player_stat.rb +253 -0
  173. data/lib/nba/league_hustle_stats_team.rb +157 -0
  174. data/lib/nba/league_hustle_stats_team_stat.rb +179 -0
  175. data/lib/nba/league_lineup_viz.rb +184 -0
  176. data/lib/nba/league_lineup_viz_stat.rb +214 -0
  177. data/lib/nba/league_player_on_details.rb +175 -0
  178. data/lib/nba/league_player_on_details_stat.rb +313 -0
  179. data/lib/nba/league_season_matchup_stat.rb +241 -0
  180. data/lib/nba/league_season_matchups.rb +181 -0
  181. data/lib/nba/league_standing.rb +284 -0
  182. data/lib/nba/league_standings.rb +159 -0
  183. data/lib/nba/league_wide_shot_stat.rb +62 -0
  184. data/lib/nba/live_action.rb +240 -0
  185. data/lib/nba/live_box_score.rb +143 -0
  186. data/lib/nba/live_connection.rb +84 -0
  187. data/lib/nba/live_game.rb +230 -0
  188. data/lib/nba/live_play_by_play.rb +120 -0
  189. data/lib/nba/live_player_stat.rb +276 -0
  190. data/lib/nba/live_scoreboard.rb +102 -0
  191. data/lib/nba/matchup_rollup.rb +98 -0
  192. data/lib/nba/matchups_rollup.rb +81 -0
  193. data/lib/nba/pass_stat.rb +209 -0
  194. data/lib/nba/play.rb +258 -0
  195. data/lib/nba/play_by_play.rb +85 -0
  196. data/lib/nba/play_by_play_v3.rb +91 -0
  197. data/lib/nba/play_type_stat.rb +206 -0
  198. data/lib/nba/player.rb +242 -24
  199. data/lib/nba/player_awards.rb +110 -0
  200. data/lib/nba/player_career_by_college.rb +86 -0
  201. data/lib/nba/player_career_by_college_rollup.rb +143 -0
  202. data/lib/nba/player_career_stats.rb +77 -0
  203. data/lib/nba/player_compare.rb +156 -0
  204. data/lib/nba/player_comparison_stat.rb +242 -0
  205. data/lib/nba/player_dash_pt_pass.rb +164 -0
  206. data/lib/nba/player_dash_pt_reb.rb +235 -0
  207. data/lib/nba/player_dash_pt_shot_defend.rb +119 -0
  208. data/lib/nba/player_dash_pt_shots.rb +279 -0
  209. data/lib/nba/player_dashboard.rb +259 -0
  210. data/lib/nba/player_dashboard_stat.rb +248 -0
  211. data/lib/nba/player_estimated_metrics.rb +84 -0
  212. data/lib/nba/player_fantasy_profile_bar_graph.rb +147 -0
  213. data/lib/nba/player_game_log.rb +72 -0
  214. data/lib/nba/player_game_logs.rb +117 -0
  215. data/lib/nba/player_game_streak_finder.rb +108 -0
  216. data/lib/nba/player_index.rb +135 -0
  217. data/lib/nba/player_index_entry.rb +266 -0
  218. data/lib/nba/player_info.rb +225 -0
  219. data/lib/nba/player_next_n_games.rb +64 -0
  220. data/lib/nba/player_profile_v2.rb +169 -0
  221. data/lib/nba/player_vs_player.rb +153 -0
  222. data/lib/nba/players.rb +107 -0
  223. data/lib/nba/playoff_matchup.rb +84 -0
  224. data/lib/nba/playoff_picture.rb +98 -0
  225. data/lib/nba/playoff_series.rb +76 -0
  226. data/lib/nba/position.rb +48 -0
  227. data/lib/nba/rebound_stat.rb +189 -0
  228. data/lib/nba/response_parser.rb +116 -0
  229. data/lib/nba/roster.rb +74 -0
  230. data/lib/nba/rotation_entry.rb +154 -0
  231. data/lib/nba/schedule.rb +183 -0
  232. data/lib/nba/schedule_international.rb +182 -0
  233. data/lib/nba/scheduled_game.rb +240 -0
  234. data/lib/nba/scoreboard.rb +183 -0
  235. data/lib/nba/scoreboard_v3.rb +104 -0
  236. data/lib/nba/shot.rb +208 -0
  237. data/lib/nba/shot_chart.rb +75 -0
  238. data/lib/nba/shot_chart_league_wide.rb +102 -0
  239. data/lib/nba/shot_chart_lineup_detail.rb +109 -0
  240. data/lib/nba/shot_stat.rb +174 -0
  241. data/lib/nba/standing.rb +129 -0
  242. data/lib/nba/standings.rb +75 -0
  243. data/lib/nba/static.rb +107 -0
  244. data/lib/nba/synergy_play_types.rb +211 -0
  245. data/lib/nba/team.rb +203 -127
  246. data/lib/nba/team_and_players_vs_players.rb +227 -0
  247. data/lib/nba/team_and_players_vs_players_stat.rb +155 -0
  248. data/lib/nba/team_dash_pt_pass.rb +157 -0
  249. data/lib/nba/team_dash_pt_reb.rb +216 -0
  250. data/lib/nba/team_dash_pt_shots.rb +244 -0
  251. data/lib/nba/team_dashboard.rb +275 -0
  252. data/lib/nba/team_dashboard_stat.rb +248 -0
  253. data/lib/nba/team_detail.rb +117 -0
  254. data/lib/nba/team_details.rb +173 -0
  255. data/lib/nba/team_estimated_metrics.rb +91 -0
  256. data/lib/nba/team_estimated_metrics_stat.rb +146 -0
  257. data/lib/nba/team_game_log.rb +143 -0
  258. data/lib/nba/team_game_log_entry.rb +246 -0
  259. data/lib/nba/team_game_log_stat.rb +275 -0
  260. data/lib/nba/team_game_logs.rb +163 -0
  261. data/lib/nba/team_game_streak.rb +111 -0
  262. data/lib/nba/team_game_streak_finder.rb +109 -0
  263. data/lib/nba/team_historical_leader.rb +207 -0
  264. data/lib/nba/team_historical_leaders.rb +98 -0
  265. data/lib/nba/team_historical_record.rb +139 -0
  266. data/lib/nba/team_info.rb +150 -0
  267. data/lib/nba/team_info_common.rb +177 -0
  268. data/lib/nba/team_on_off_overall_stat.rb +477 -0
  269. data/lib/nba/team_on_off_player_stat.rb +523 -0
  270. data/lib/nba/team_on_off_player_summary.rb +135 -0
  271. data/lib/nba/team_pass_stat.rb +183 -0
  272. data/lib/nba/team_player_dashboard.rb +212 -0
  273. data/lib/nba/team_player_on_off_details.rb +218 -0
  274. data/lib/nba/team_player_on_off_summary.rb +214 -0
  275. data/lib/nba/team_player_stat.rb +275 -0
  276. data/lib/nba/team_rebound_stat.rb +189 -0
  277. data/lib/nba/team_season_rank.rb +110 -0
  278. data/lib/nba/team_shot_stat.rb +173 -0
  279. data/lib/nba/team_vs_player.rb +151 -0
  280. data/lib/nba/team_vs_player_stat.rb +157 -0
  281. data/lib/nba/team_year.rb +55 -0
  282. data/lib/nba/team_year_by_year_stats.rb +152 -0
  283. data/lib/nba/team_year_stat.rb +282 -0
  284. data/lib/nba/teams.rb +33 -0
  285. data/lib/nba/upcoming_game.rb +115 -0
  286. data/lib/nba/utils.rb +94 -0
  287. data/lib/nba/version.rb +5 -2
  288. data/lib/nba/video_detail.rb +103 -0
  289. data/lib/nba/video_details.rb +118 -0
  290. data/lib/nba/video_details_asset.rb +115 -0
  291. data/lib/nba/video_details_asset_entry.rb +91 -0
  292. data/lib/nba/video_event.rb +83 -0
  293. data/lib/nba/video_event_asset.rb +91 -0
  294. data/lib/nba/video_events.rb +106 -0
  295. data/lib/nba/video_events_asset.rb +107 -0
  296. data/lib/nba/video_status.rb +129 -0
  297. data/lib/nba/video_status_entry.rb +161 -0
  298. data/lib/nba/vs_player_stat.rb +156 -0
  299. data/lib/nba/win_probability.rb +117 -0
  300. data/lib/nba/win_probability_point.rb +140 -0
  301. data/lib/nba.rb +249 -5
  302. data/sig/equalizer.rbs +3 -0
  303. data/sig/nba.rbs +7297 -0
  304. data/sig/shale.rbs +24 -0
  305. data/sig/thor.rbs +19 -0
  306. metadata +324 -95
  307. data/.gitignore +0 -18
  308. data/.travis.yml +0 -22
  309. data/Gemfile +0 -23
  310. data/LICENSE.md +0 -22
  311. data/Rakefile +0 -18
  312. data/bin/nba +0 -7
  313. data/cache/teams.json +0 -16529
  314. data/lib/faraday_middleware/scrape_game.rb +0 -41
  315. data/lib/nba/request.rb +0 -37
  316. data/nba.gemspec +0 -28
  317. data/spec/fixtures/games.html +0 -785
  318. data/spec/fixtures/teams.json +0 -16529
  319. data/spec/game_spec.rb +0 -40
  320. data/spec/spec_helper.rb +0 -25
  321. data/spec/team_spec.rb +0 -93
@@ -0,0 +1,477 @@
1
+ require "equalizer"
2
+ require "shale"
3
+
4
+ module NBA
5
+ # Represents overall team on/off court statistics
6
+ #
7
+ # @api public
8
+ class TeamOnOffOverallStat < Shale::Mapper
9
+ include Equalizer.new(:team_id, :group_value)
10
+
11
+ # @!attribute [rw] group_set
12
+ # Returns the group set name
13
+ # @api public
14
+ # @example
15
+ # stat.group_set #=> "Overall"
16
+ # @return [String, nil] the group set
17
+ attribute :group_set, Shale::Type::String
18
+
19
+ # @!attribute [rw] group_value
20
+ # Returns the group value
21
+ # @api public
22
+ # @example
23
+ # stat.group_value #=> "On Court"
24
+ # @return [String, nil] the group value
25
+ attribute :group_value, Shale::Type::String
26
+
27
+ # @!attribute [rw] team_id
28
+ # Returns the team ID
29
+ # @api public
30
+ # @example
31
+ # stat.team_id #=> 1610612744
32
+ # @return [Integer, nil] the team ID
33
+ attribute :team_id, Shale::Type::Integer
34
+
35
+ # @!attribute [rw] team_abbreviation
36
+ # Returns the team abbreviation
37
+ # @api public
38
+ # @example
39
+ # stat.team_abbreviation #=> "GSW"
40
+ # @return [String, nil] the team abbreviation
41
+ attribute :team_abbreviation, Shale::Type::String
42
+
43
+ # @!attribute [rw] team_name
44
+ # Returns the team name
45
+ # @api public
46
+ # @example
47
+ # stat.team_name #=> "Warriors"
48
+ # @return [String, nil] the team name
49
+ attribute :team_name, Shale::Type::String
50
+
51
+ # @!attribute [rw] gp
52
+ # Returns games played
53
+ # @api public
54
+ # @example
55
+ # stat.gp #=> 82
56
+ # @return [Integer, nil] games played
57
+ attribute :gp, Shale::Type::Integer
58
+
59
+ # @!attribute [rw] w
60
+ # Returns wins
61
+ # @api public
62
+ # @example
63
+ # stat.w #=> 46
64
+ # @return [Integer, nil] wins
65
+ attribute :w, Shale::Type::Integer
66
+
67
+ # @!attribute [rw] l
68
+ # Returns losses
69
+ # @api public
70
+ # @example
71
+ # stat.l #=> 36
72
+ # @return [Integer, nil] losses
73
+ attribute :l, Shale::Type::Integer
74
+
75
+ # @!attribute [rw] w_pct
76
+ # Returns win percentage
77
+ # @api public
78
+ # @example
79
+ # stat.w_pct #=> 0.561
80
+ # @return [Float, nil] win percentage
81
+ attribute :w_pct, Shale::Type::Float
82
+
83
+ # @!attribute [rw] min
84
+ # Returns minutes
85
+ # @api public
86
+ # @example
87
+ # stat.min #=> 240.0
88
+ # @return [Float, nil] minutes
89
+ attribute :min, Shale::Type::Float
90
+
91
+ # @!attribute [rw] fgm
92
+ # Returns field goals made
93
+ # @api public
94
+ # @example
95
+ # stat.fgm #=> 39.6
96
+ # @return [Float, nil] field goals made
97
+ attribute :fgm, Shale::Type::Float
98
+
99
+ # @!attribute [rw] fga
100
+ # Returns field goals attempted
101
+ # @api public
102
+ # @example
103
+ # stat.fga #=> 87.8
104
+ # @return [Float, nil] field goals attempted
105
+ attribute :fga, Shale::Type::Float
106
+
107
+ # @!attribute [rw] fg_pct
108
+ # Returns field goal percentage
109
+ # @api public
110
+ # @example
111
+ # stat.fg_pct #=> 0.451
112
+ # @return [Float, nil] field goal percentage
113
+ attribute :fg_pct, Shale::Type::Float
114
+
115
+ # @!attribute [rw] fg3m
116
+ # Returns three-pointers made
117
+ # @api public
118
+ # @example
119
+ # stat.fg3m #=> 14.8
120
+ # @return [Float, nil] three-pointers made
121
+ attribute :fg3m, Shale::Type::Float
122
+
123
+ # @!attribute [rw] fg3a
124
+ # Returns three-pointers attempted
125
+ # @api public
126
+ # @example
127
+ # stat.fg3a #=> 40.2
128
+ # @return [Float, nil] three-pointers attempted
129
+ attribute :fg3a, Shale::Type::Float
130
+
131
+ # @!attribute [rw] fg3_pct
132
+ # Returns three-point percentage
133
+ # @api public
134
+ # @example
135
+ # stat.fg3_pct #=> 0.368
136
+ # @return [Float, nil] three-point percentage
137
+ attribute :fg3_pct, Shale::Type::Float
138
+
139
+ # @!attribute [rw] ftm
140
+ # Returns free throws made
141
+ # @api public
142
+ # @example
143
+ # stat.ftm #=> 17.8
144
+ # @return [Float, nil] free throws made
145
+ attribute :ftm, Shale::Type::Float
146
+
147
+ # @!attribute [rw] fta
148
+ # Returns free throws attempted
149
+ # @api public
150
+ # @example
151
+ # stat.fta #=> 22.1
152
+ # @return [Float, nil] free throws attempted
153
+ attribute :fta, Shale::Type::Float
154
+
155
+ # @!attribute [rw] ft_pct
156
+ # Returns free throw percentage
157
+ # @api public
158
+ # @example
159
+ # stat.ft_pct #=> 0.805
160
+ # @return [Float, nil] free throw percentage
161
+ attribute :ft_pct, Shale::Type::Float
162
+
163
+ # @!attribute [rw] oreb
164
+ # Returns offensive rebounds
165
+ # @api public
166
+ # @example
167
+ # stat.oreb #=> 9.1
168
+ # @return [Float, nil] offensive rebounds
169
+ attribute :oreb, Shale::Type::Float
170
+
171
+ # @!attribute [rw] dreb
172
+ # Returns defensive rebounds
173
+ # @api public
174
+ # @example
175
+ # stat.dreb #=> 34.8
176
+ # @return [Float, nil] defensive rebounds
177
+ attribute :dreb, Shale::Type::Float
178
+
179
+ # @!attribute [rw] reb
180
+ # Returns total rebounds
181
+ # @api public
182
+ # @example
183
+ # stat.reb #=> 43.9
184
+ # @return [Float, nil] total rebounds
185
+ attribute :reb, Shale::Type::Float
186
+
187
+ # @!attribute [rw] ast
188
+ # Returns assists
189
+ # @api public
190
+ # @example
191
+ # stat.ast #=> 27.5
192
+ # @return [Float, nil] assists
193
+ attribute :ast, Shale::Type::Float
194
+
195
+ # @!attribute [rw] tov
196
+ # Returns turnovers
197
+ # @api public
198
+ # @example
199
+ # stat.tov #=> 14.1
200
+ # @return [Float, nil] turnovers
201
+ attribute :tov, Shale::Type::Float
202
+
203
+ # @!attribute [rw] stl
204
+ # Returns steals
205
+ # @api public
206
+ # @example
207
+ # stat.stl #=> 7.6
208
+ # @return [Float, nil] steals
209
+ attribute :stl, Shale::Type::Float
210
+
211
+ # @!attribute [rw] blk
212
+ # Returns blocks
213
+ # @api public
214
+ # @example
215
+ # stat.blk #=> 4.8
216
+ # @return [Float, nil] blocks
217
+ attribute :blk, Shale::Type::Float
218
+
219
+ # @!attribute [rw] blka
220
+ # Returns blocked attempts
221
+ # @api public
222
+ # @example
223
+ # stat.blka #=> 4.2
224
+ # @return [Float, nil] blocked attempts
225
+ attribute :blka, Shale::Type::Float
226
+
227
+ # @!attribute [rw] pf
228
+ # Returns personal fouls
229
+ # @api public
230
+ # @example
231
+ # stat.pf #=> 20.1
232
+ # @return [Float, nil] personal fouls
233
+ attribute :pf, Shale::Type::Float
234
+
235
+ # @!attribute [rw] pfd
236
+ # Returns personal fouls drawn
237
+ # @api public
238
+ # @example
239
+ # stat.pfd #=> 18.9
240
+ # @return [Float, nil] personal fouls drawn
241
+ attribute :pfd, Shale::Type::Float
242
+
243
+ # @!attribute [rw] pts
244
+ # Returns points
245
+ # @api public
246
+ # @example
247
+ # stat.pts #=> 111.8
248
+ # @return [Float, nil] points
249
+ attribute :pts, Shale::Type::Float
250
+
251
+ # @!attribute [rw] plus_minus
252
+ # Returns plus/minus
253
+ # @api public
254
+ # @example
255
+ # stat.plus_minus #=> 2.5
256
+ # @return [Float, nil] plus/minus
257
+ attribute :plus_minus, Shale::Type::Float
258
+
259
+ # @!attribute [rw] gp_rank
260
+ # Returns games played rank
261
+ # @api public
262
+ # @example
263
+ # stat.gp_rank #=> 1
264
+ # @return [Integer, nil] games played rank
265
+ attribute :gp_rank, Shale::Type::Integer
266
+
267
+ # @!attribute [rw] w_rank
268
+ # Returns wins rank
269
+ # @api public
270
+ # @example
271
+ # stat.w_rank #=> 5
272
+ # @return [Integer, nil] wins rank
273
+ attribute :w_rank, Shale::Type::Integer
274
+
275
+ # @!attribute [rw] l_rank
276
+ # Returns losses rank
277
+ # @api public
278
+ # @example
279
+ # stat.l_rank #=> 8
280
+ # @return [Integer, nil] losses rank
281
+ attribute :l_rank, Shale::Type::Integer
282
+
283
+ # @!attribute [rw] w_pct_rank
284
+ # Returns win percentage rank
285
+ # @api public
286
+ # @example
287
+ # stat.w_pct_rank #=> 6
288
+ # @return [Integer, nil] win percentage rank
289
+ attribute :w_pct_rank, Shale::Type::Integer
290
+
291
+ # @!attribute [rw] min_rank
292
+ # Returns minutes rank
293
+ # @api public
294
+ # @example
295
+ # stat.min_rank #=> 15
296
+ # @return [Integer, nil] minutes rank
297
+ attribute :min_rank, Shale::Type::Integer
298
+
299
+ # @!attribute [rw] fgm_rank
300
+ # Returns field goals made rank
301
+ # @api public
302
+ # @example
303
+ # stat.fgm_rank #=> 10
304
+ # @return [Integer, nil] field goals made rank
305
+ attribute :fgm_rank, Shale::Type::Integer
306
+
307
+ # @!attribute [rw] fga_rank
308
+ # Returns field goals attempted rank
309
+ # @api public
310
+ # @example
311
+ # stat.fga_rank #=> 12
312
+ # @return [Integer, nil] field goals attempted rank
313
+ attribute :fga_rank, Shale::Type::Integer
314
+
315
+ # @!attribute [rw] fg_pct_rank
316
+ # Returns field goal percentage rank
317
+ # @api public
318
+ # @example
319
+ # stat.fg_pct_rank #=> 8
320
+ # @return [Integer, nil] field goal percentage rank
321
+ attribute :fg_pct_rank, Shale::Type::Integer
322
+
323
+ # @!attribute [rw] fg3m_rank
324
+ # Returns three-pointers made rank
325
+ # @api public
326
+ # @example
327
+ # stat.fg3m_rank #=> 3
328
+ # @return [Integer, nil] three-pointers made rank
329
+ attribute :fg3m_rank, Shale::Type::Integer
330
+
331
+ # @!attribute [rw] fg3a_rank
332
+ # Returns three-pointers attempted rank
333
+ # @api public
334
+ # @example
335
+ # stat.fg3a_rank #=> 5
336
+ # @return [Integer, nil] three-pointers attempted rank
337
+ attribute :fg3a_rank, Shale::Type::Integer
338
+
339
+ # @!attribute [rw] fg3_pct_rank
340
+ # Returns three-point percentage rank
341
+ # @api public
342
+ # @example
343
+ # stat.fg3_pct_rank #=> 7
344
+ # @return [Integer, nil] three-point percentage rank
345
+ attribute :fg3_pct_rank, Shale::Type::Integer
346
+
347
+ # @!attribute [rw] ftm_rank
348
+ # Returns free throws made rank
349
+ # @api public
350
+ # @example
351
+ # stat.ftm_rank #=> 14
352
+ # @return [Integer, nil] free throws made rank
353
+ attribute :ftm_rank, Shale::Type::Integer
354
+
355
+ # @!attribute [rw] fta_rank
356
+ # Returns free throws attempted rank
357
+ # @api public
358
+ # @example
359
+ # stat.fta_rank #=> 16
360
+ # @return [Integer, nil] free throws attempted rank
361
+ attribute :fta_rank, Shale::Type::Integer
362
+
363
+ # @!attribute [rw] ft_pct_rank
364
+ # Returns free throw percentage rank
365
+ # @api public
366
+ # @example
367
+ # stat.ft_pct_rank #=> 9
368
+ # @return [Integer, nil] free throw percentage rank
369
+ attribute :ft_pct_rank, Shale::Type::Integer
370
+
371
+ # @!attribute [rw] oreb_rank
372
+ # Returns offensive rebounds rank
373
+ # @api public
374
+ # @example
375
+ # stat.oreb_rank #=> 20
376
+ # @return [Integer, nil] offensive rebounds rank
377
+ attribute :oreb_rank, Shale::Type::Integer
378
+
379
+ # @!attribute [rw] dreb_rank
380
+ # Returns defensive rebounds rank
381
+ # @api public
382
+ # @example
383
+ # stat.dreb_rank #=> 11
384
+ # @return [Integer, nil] defensive rebounds rank
385
+ attribute :dreb_rank, Shale::Type::Integer
386
+
387
+ # @!attribute [rw] reb_rank
388
+ # Returns total rebounds rank
389
+ # @api public
390
+ # @example
391
+ # stat.reb_rank #=> 13
392
+ # @return [Integer, nil] total rebounds rank
393
+ attribute :reb_rank, Shale::Type::Integer
394
+
395
+ # @!attribute [rw] ast_rank
396
+ # Returns assists rank
397
+ # @api public
398
+ # @example
399
+ # stat.ast_rank #=> 4
400
+ # @return [Integer, nil] assists rank
401
+ attribute :ast_rank, Shale::Type::Integer
402
+
403
+ # @!attribute [rw] tov_rank
404
+ # Returns turnovers rank
405
+ # @api public
406
+ # @example
407
+ # stat.tov_rank #=> 18
408
+ # @return [Integer, nil] turnovers rank
409
+ attribute :tov_rank, Shale::Type::Integer
410
+
411
+ # @!attribute [rw] stl_rank
412
+ # Returns steals rank
413
+ # @api public
414
+ # @example
415
+ # stat.stl_rank #=> 7
416
+ # @return [Integer, nil] steals rank
417
+ attribute :stl_rank, Shale::Type::Integer
418
+
419
+ # @!attribute [rw] blk_rank
420
+ # Returns blocks rank
421
+ # @api public
422
+ # @example
423
+ # stat.blk_rank #=> 19
424
+ # @return [Integer, nil] blocks rank
425
+ attribute :blk_rank, Shale::Type::Integer
426
+
427
+ # @!attribute [rw] blka_rank
428
+ # Returns blocked attempts rank
429
+ # @api public
430
+ # @example
431
+ # stat.blka_rank #=> 22
432
+ # @return [Integer, nil] blocked attempts rank
433
+ attribute :blka_rank, Shale::Type::Integer
434
+
435
+ # @!attribute [rw] pf_rank
436
+ # Returns personal fouls rank
437
+ # @api public
438
+ # @example
439
+ # stat.pf_rank #=> 25
440
+ # @return [Integer, nil] personal fouls rank
441
+ attribute :pf_rank, Shale::Type::Integer
442
+
443
+ # @!attribute [rw] pfd_rank
444
+ # Returns personal fouls drawn rank
445
+ # @api public
446
+ # @example
447
+ # stat.pfd_rank #=> 17
448
+ # @return [Integer, nil] personal fouls drawn rank
449
+ attribute :pfd_rank, Shale::Type::Integer
450
+
451
+ # @!attribute [rw] pts_rank
452
+ # Returns points rank
453
+ # @api public
454
+ # @example
455
+ # stat.pts_rank #=> 2
456
+ # @return [Integer, nil] points rank
457
+ attribute :pts_rank, Shale::Type::Integer
458
+
459
+ # @!attribute [rw] plus_minus_rank
460
+ # Returns plus/minus rank
461
+ # @api public
462
+ # @example
463
+ # stat.plus_minus_rank #=> 6
464
+ # @return [Integer, nil] plus/minus rank
465
+ attribute :plus_minus_rank, Shale::Type::Integer
466
+
467
+ # Returns the team object
468
+ #
469
+ # @api public
470
+ # @example
471
+ # stat.team #=> #<NBA::Team>
472
+ # @return [Team, nil] the team object
473
+ def team
474
+ Teams.find(team_id)
475
+ end
476
+ end
477
+ end