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,485 @@
1
+ require "equalizer"
2
+ require "shale"
3
+
4
+ module NBA
5
+ # Represents cumulative team statistics for a player
6
+ class CumeStatsTeamPlayer < Shale::Mapper
7
+ include Equalizer.new(:person_id)
8
+
9
+ # @!attribute [rw] person_id
10
+ # Returns the player person ID
11
+ # @api public
12
+ # @example
13
+ # player.person_id #=> 201939
14
+ # @return [Integer] the player person ID
15
+ attribute :person_id, Shale::Type::Integer
16
+
17
+ # @!attribute [rw] player_name
18
+ # Returns the player name
19
+ # @api public
20
+ # @example
21
+ # player.player_name #=> "Stephen Curry"
22
+ # @return [String] the player name
23
+ attribute :player_name, Shale::Type::String
24
+
25
+ # @!attribute [rw] jersey_num
26
+ # Returns the jersey number
27
+ # @api public
28
+ # @example
29
+ # player.jersey_num #=> "30"
30
+ # @return [String] the jersey number
31
+ attribute :jersey_num, Shale::Type::String
32
+
33
+ # @!attribute [rw] team_id
34
+ # Returns the team ID
35
+ # @api public
36
+ # @example
37
+ # player.team_id #=> 1610612744
38
+ # @return [Integer] the team ID
39
+ attribute :team_id, Shale::Type::Integer
40
+
41
+ # @!attribute [rw] gp
42
+ # Returns games played
43
+ # @api public
44
+ # @example
45
+ # player.gp #=> 10
46
+ # @return [Integer] games played
47
+ attribute :gp, Shale::Type::Integer
48
+
49
+ # @!attribute [rw] gs
50
+ # Returns games started
51
+ # @api public
52
+ # @example
53
+ # player.gs #=> 10
54
+ # @return [Integer] games started
55
+ attribute :gs, Shale::Type::Integer
56
+
57
+ # @!attribute [rw] actual_minutes
58
+ # Returns total minutes played
59
+ # @api public
60
+ # @example
61
+ # player.actual_minutes #=> 350
62
+ # @return [Integer] total minutes played
63
+ attribute :actual_minutes, Shale::Type::Integer
64
+
65
+ # @!attribute [rw] actual_seconds
66
+ # Returns total seconds played
67
+ # @api public
68
+ # @example
69
+ # player.actual_seconds #=> 21000
70
+ # @return [Integer] total seconds played
71
+ attribute :actual_seconds, Shale::Type::Integer
72
+
73
+ # @!attribute [rw] fgm
74
+ # Returns field goals made
75
+ # @api public
76
+ # @example
77
+ # player.fgm #=> 100
78
+ # @return [Integer] field goals made
79
+ attribute :fgm, Shale::Type::Integer
80
+
81
+ # @!attribute [rw] fga
82
+ # Returns field goals attempted
83
+ # @api public
84
+ # @example
85
+ # player.fga #=> 200
86
+ # @return [Integer] field goals attempted
87
+ attribute :fga, Shale::Type::Integer
88
+
89
+ # @!attribute [rw] fg_pct
90
+ # Returns field goal percentage
91
+ # @api public
92
+ # @example
93
+ # player.fg_pct #=> 0.500
94
+ # @return [Float] field goal percentage
95
+ attribute :fg_pct, Shale::Type::Float
96
+
97
+ # @!attribute [rw] fg3m
98
+ # Returns three point field goals made
99
+ # @api public
100
+ # @example
101
+ # player.fg3m #=> 40
102
+ # @return [Integer] three point field goals made
103
+ attribute :fg3m, Shale::Type::Integer
104
+
105
+ # @!attribute [rw] fg3a
106
+ # Returns three point field goals attempted
107
+ # @api public
108
+ # @example
109
+ # player.fg3a #=> 100
110
+ # @return [Integer] three point field goals attempted
111
+ attribute :fg3a, Shale::Type::Integer
112
+
113
+ # @!attribute [rw] fg3_pct
114
+ # Returns three point field goal percentage
115
+ # @api public
116
+ # @example
117
+ # player.fg3_pct #=> 0.400
118
+ # @return [Float] three point field goal percentage
119
+ attribute :fg3_pct, Shale::Type::Float
120
+
121
+ # @!attribute [rw] ftm
122
+ # Returns free throws made
123
+ # @api public
124
+ # @example
125
+ # player.ftm #=> 80
126
+ # @return [Integer] free throws made
127
+ attribute :ftm, Shale::Type::Integer
128
+
129
+ # @!attribute [rw] fta
130
+ # Returns free throws attempted
131
+ # @api public
132
+ # @example
133
+ # player.fta #=> 90
134
+ # @return [Integer] free throws attempted
135
+ attribute :fta, Shale::Type::Integer
136
+
137
+ # @!attribute [rw] ft_pct
138
+ # Returns free throw percentage
139
+ # @api public
140
+ # @example
141
+ # player.ft_pct #=> 0.889
142
+ # @return [Float] free throw percentage
143
+ attribute :ft_pct, Shale::Type::Float
144
+
145
+ # @!attribute [rw] oreb
146
+ # Returns offensive rebounds
147
+ # @api public
148
+ # @example
149
+ # player.oreb #=> 10
150
+ # @return [Integer] offensive rebounds
151
+ attribute :oreb, Shale::Type::Integer
152
+
153
+ # @!attribute [rw] dreb
154
+ # Returns defensive rebounds
155
+ # @api public
156
+ # @example
157
+ # player.dreb #=> 50
158
+ # @return [Integer] defensive rebounds
159
+ attribute :dreb, Shale::Type::Integer
160
+
161
+ # @!attribute [rw] tot_reb
162
+ # Returns total rebounds
163
+ # @api public
164
+ # @example
165
+ # player.tot_reb #=> 60
166
+ # @return [Integer] total rebounds
167
+ attribute :tot_reb, Shale::Type::Integer
168
+
169
+ # @!attribute [rw] ast
170
+ # Returns assists
171
+ # @api public
172
+ # @example
173
+ # player.ast #=> 70
174
+ # @return [Integer] assists
175
+ attribute :ast, Shale::Type::Integer
176
+
177
+ # @!attribute [rw] pf
178
+ # Returns personal fouls
179
+ # @api public
180
+ # @example
181
+ # player.pf #=> 20
182
+ # @return [Integer] personal fouls
183
+ attribute :pf, Shale::Type::Integer
184
+
185
+ # @!attribute [rw] stl
186
+ # Returns steals
187
+ # @api public
188
+ # @example
189
+ # player.stl #=> 15
190
+ # @return [Integer] steals
191
+ attribute :stl, Shale::Type::Integer
192
+
193
+ # @!attribute [rw] tov
194
+ # Returns turnovers
195
+ # @api public
196
+ # @example
197
+ # player.tov #=> 25
198
+ # @return [Integer] turnovers
199
+ attribute :tov, Shale::Type::Integer
200
+
201
+ # @!attribute [rw] blk
202
+ # Returns blocks
203
+ # @api public
204
+ # @example
205
+ # player.blk #=> 5
206
+ # @return [Integer] blocks
207
+ attribute :blk, Shale::Type::Integer
208
+
209
+ # @!attribute [rw] pts
210
+ # Returns points
211
+ # @api public
212
+ # @example
213
+ # player.pts #=> 280
214
+ # @return [Integer] points
215
+ attribute :pts, Shale::Type::Integer
216
+
217
+ # @!attribute [rw] avg_minutes
218
+ # Returns average minutes per game
219
+ # @api public
220
+ # @example
221
+ # player.avg_minutes #=> 35.0
222
+ # @return [Float] average minutes per game
223
+ attribute :avg_minutes, Shale::Type::Float
224
+
225
+ # @!attribute [rw] fgm_pg
226
+ # Returns average field goals made per game
227
+ # @api public
228
+ # @example
229
+ # player.fgm_pg #=> 10.0
230
+ # @return [Float] average field goals made per game
231
+ attribute :fgm_pg, Shale::Type::Float
232
+
233
+ # @!attribute [rw] fga_pg
234
+ # Returns average field goals attempted per game
235
+ # @api public
236
+ # @example
237
+ # player.fga_pg #=> 20.0
238
+ # @return [Float] average field goals attempted per game
239
+ attribute :fga_pg, Shale::Type::Float
240
+
241
+ # @!attribute [rw] fg3m_pg
242
+ # Returns average three point field goals made per game
243
+ # @api public
244
+ # @example
245
+ # player.fg3m_pg #=> 4.0
246
+ # @return [Float] average three point field goals made per game
247
+ attribute :fg3m_pg, Shale::Type::Float
248
+
249
+ # @!attribute [rw] fg3a_pg
250
+ # Returns average three point field goals attempted per game
251
+ # @api public
252
+ # @example
253
+ # player.fg3a_pg #=> 10.0
254
+ # @return [Float] average three point field goals attempted per game
255
+ attribute :fg3a_pg, Shale::Type::Float
256
+
257
+ # @!attribute [rw] ftm_pg
258
+ # Returns average free throws made per game
259
+ # @api public
260
+ # @example
261
+ # player.ftm_pg #=> 8.0
262
+ # @return [Float] average free throws made per game
263
+ attribute :ftm_pg, Shale::Type::Float
264
+
265
+ # @!attribute [rw] fta_pg
266
+ # Returns average free throws attempted per game
267
+ # @api public
268
+ # @example
269
+ # player.fta_pg #=> 9.0
270
+ # @return [Float] average free throws attempted per game
271
+ attribute :fta_pg, Shale::Type::Float
272
+
273
+ # @!attribute [rw] oreb_pg
274
+ # Returns average offensive rebounds per game
275
+ # @api public
276
+ # @example
277
+ # player.oreb_pg #=> 1.0
278
+ # @return [Float] average offensive rebounds per game
279
+ attribute :oreb_pg, Shale::Type::Float
280
+
281
+ # @!attribute [rw] dreb_pg
282
+ # Returns average defensive rebounds per game
283
+ # @api public
284
+ # @example
285
+ # player.dreb_pg #=> 5.0
286
+ # @return [Float] average defensive rebounds per game
287
+ attribute :dreb_pg, Shale::Type::Float
288
+
289
+ # @!attribute [rw] reb_pg
290
+ # Returns average rebounds per game
291
+ # @api public
292
+ # @example
293
+ # player.reb_pg #=> 6.0
294
+ # @return [Float] average rebounds per game
295
+ attribute :reb_pg, Shale::Type::Float
296
+
297
+ # @!attribute [rw] ast_pg
298
+ # Returns average assists per game
299
+ # @api public
300
+ # @example
301
+ # player.ast_pg #=> 7.0
302
+ # @return [Float] average assists per game
303
+ attribute :ast_pg, Shale::Type::Float
304
+
305
+ # @!attribute [rw] pf_pg
306
+ # Returns average personal fouls per game
307
+ # @api public
308
+ # @example
309
+ # player.pf_pg #=> 2.0
310
+ # @return [Float] average personal fouls per game
311
+ attribute :pf_pg, Shale::Type::Float
312
+
313
+ # @!attribute [rw] stl_pg
314
+ # Returns average steals per game
315
+ # @api public
316
+ # @example
317
+ # player.stl_pg #=> 1.5
318
+ # @return [Float] average steals per game
319
+ attribute :stl_pg, Shale::Type::Float
320
+
321
+ # @!attribute [rw] tov_pg
322
+ # Returns average turnovers per game
323
+ # @api public
324
+ # @example
325
+ # player.tov_pg #=> 2.5
326
+ # @return [Float] average turnovers per game
327
+ attribute :tov_pg, Shale::Type::Float
328
+
329
+ # @!attribute [rw] blk_pg
330
+ # Returns average blocks per game
331
+ # @api public
332
+ # @example
333
+ # player.blk_pg #=> 0.5
334
+ # @return [Float] average blocks per game
335
+ attribute :blk_pg, Shale::Type::Float
336
+
337
+ # @!attribute [rw] pts_pg
338
+ # Returns average points per game
339
+ # @api public
340
+ # @example
341
+ # player.pts_pg #=> 28.0
342
+ # @return [Float] average points per game
343
+ attribute :pts_pg, Shale::Type::Float
344
+
345
+ # @!attribute [rw] fgm_per_min
346
+ # Returns field goals made per minute
347
+ # @api public
348
+ # @example
349
+ # player.fgm_per_min #=> 0.286
350
+ # @return [Float] field goals made per minute
351
+ attribute :fgm_per_min, Shale::Type::Float
352
+
353
+ # @!attribute [rw] fga_per_min
354
+ # Returns field goals attempted per minute
355
+ # @api public
356
+ # @example
357
+ # player.fga_per_min #=> 0.571
358
+ # @return [Float] field goals attempted per minute
359
+ attribute :fga_per_min, Shale::Type::Float
360
+
361
+ # @!attribute [rw] fg3m_per_min
362
+ # Returns three point field goals made per minute
363
+ # @api public
364
+ # @example
365
+ # player.fg3m_per_min #=> 0.114
366
+ # @return [Float] three point field goals made per minute
367
+ attribute :fg3m_per_min, Shale::Type::Float
368
+
369
+ # @!attribute [rw] fg3a_per_min
370
+ # Returns three point field goals attempted per minute
371
+ # @api public
372
+ # @example
373
+ # player.fg3a_per_min #=> 0.286
374
+ # @return [Float] three point field goals attempted per minute
375
+ attribute :fg3a_per_min, Shale::Type::Float
376
+
377
+ # @!attribute [rw] ftm_per_min
378
+ # Returns free throws made per minute
379
+ # @api public
380
+ # @example
381
+ # player.ftm_per_min #=> 0.229
382
+ # @return [Float] free throws made per minute
383
+ attribute :ftm_per_min, Shale::Type::Float
384
+
385
+ # @!attribute [rw] fta_per_min
386
+ # Returns free throws attempted per minute
387
+ # @api public
388
+ # @example
389
+ # player.fta_per_min #=> 0.257
390
+ # @return [Float] free throws attempted per minute
391
+ attribute :fta_per_min, Shale::Type::Float
392
+
393
+ # @!attribute [rw] oreb_per_min
394
+ # Returns offensive rebounds per minute
395
+ # @api public
396
+ # @example
397
+ # player.oreb_per_min #=> 0.029
398
+ # @return [Float] offensive rebounds per minute
399
+ attribute :oreb_per_min, Shale::Type::Float
400
+
401
+ # @!attribute [rw] dreb_per_min
402
+ # Returns defensive rebounds per minute
403
+ # @api public
404
+ # @example
405
+ # player.dreb_per_min #=> 0.143
406
+ # @return [Float] defensive rebounds per minute
407
+ attribute :dreb_per_min, Shale::Type::Float
408
+
409
+ # @!attribute [rw] reb_per_min
410
+ # Returns rebounds per minute
411
+ # @api public
412
+ # @example
413
+ # player.reb_per_min #=> 0.171
414
+ # @return [Float] rebounds per minute
415
+ attribute :reb_per_min, Shale::Type::Float
416
+
417
+ # @!attribute [rw] ast_per_min
418
+ # Returns assists per minute
419
+ # @api public
420
+ # @example
421
+ # player.ast_per_min #=> 0.200
422
+ # @return [Float] assists per minute
423
+ attribute :ast_per_min, Shale::Type::Float
424
+
425
+ # @!attribute [rw] pf_per_min
426
+ # Returns personal fouls per minute
427
+ # @api public
428
+ # @example
429
+ # player.pf_per_min #=> 0.057
430
+ # @return [Float] personal fouls per minute
431
+ attribute :pf_per_min, Shale::Type::Float
432
+
433
+ # @!attribute [rw] stl_per_min
434
+ # Returns steals per minute
435
+ # @api public
436
+ # @example
437
+ # player.stl_per_min #=> 0.043
438
+ # @return [Float] steals per minute
439
+ attribute :stl_per_min, Shale::Type::Float
440
+
441
+ # @!attribute [rw] tov_per_min
442
+ # Returns turnovers per minute
443
+ # @api public
444
+ # @example
445
+ # player.tov_per_min #=> 0.071
446
+ # @return [Float] turnovers per minute
447
+ attribute :tov_per_min, Shale::Type::Float
448
+
449
+ # @!attribute [rw] blk_per_min
450
+ # Returns blocks per minute
451
+ # @api public
452
+ # @example
453
+ # player.blk_per_min #=> 0.014
454
+ # @return [Float] blocks per minute
455
+ attribute :blk_per_min, Shale::Type::Float
456
+
457
+ # @!attribute [rw] pts_per_min
458
+ # Returns points per minute
459
+ # @api public
460
+ # @example
461
+ # player.pts_per_min #=> 0.800
462
+ # @return [Float] points per minute
463
+ attribute :pts_per_min, Shale::Type::Float
464
+
465
+ # Returns the player object
466
+ #
467
+ # @api public
468
+ # @example
469
+ # player.player #=> #<NBA::Player>
470
+ # @return [Player, nil] the player object
471
+ def player
472
+ Players.find(person_id)
473
+ end
474
+
475
+ # Returns the team object
476
+ #
477
+ # @api public
478
+ # @example
479
+ # player.team #=> #<NBA::Team>
480
+ # @return [Team, nil] the team object
481
+ def team
482
+ Teams.find(team_id)
483
+ end
484
+ end
485
+ end