nba_rb 0.1.1 → 0.7.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +107 -0
  3. data/fixtures/vcr_cassettes/has_working_BoxscoreAdvanced_endpoint.yml +85 -0
  4. data/fixtures/vcr_cassettes/has_working_BoxscoreFourFactors_endpoint.yml +85 -0
  5. data/fixtures/vcr_cassettes/has_working_BoxscoreScoring_endpoint.yml +85 -0
  6. data/fixtures/vcr_cassettes/has_working_BoxscoreUsage_endpoint.yml +85 -0
  7. data/fixtures/vcr_cassettes/has_working_Boxscore_endpoint.yml +85 -0
  8. data/fixtures/vcr_cassettes/has_working_PlayerCareer_endpoint.yml +59 -0
  9. data/fixtures/vcr_cassettes/has_working_PlayerList_endpoint.yml +184 -0
  10. data/fixtures/vcr_cassettes/has_working_PlayerSummary_endpoint.yml +61 -0
  11. data/lib/helpers/stats_request.rb +8 -4
  12. data/lib/nba_rb.rb +1 -1
  13. data/lib/nba_rb/constants.rb +279 -277
  14. data/lib/nba_rb/game.rb +16 -195
  15. data/lib/nba_rb/game/boxscore.rb +94 -0
  16. data/lib/nba_rb/game/boxscore_advanced.rb +15 -0
  17. data/lib/nba_rb/game/boxscore_four_factors.rb +19 -0
  18. data/lib/nba_rb/game/boxscore_misc.rb +19 -0
  19. data/lib/nba_rb/game/boxscore_scoring.rb +25 -0
  20. data/lib/nba_rb/game/boxscore_usage.rb +19 -0
  21. data/lib/nba_rb/game/hustle.rb +29 -0
  22. data/lib/nba_rb/game/play_by_play.rb +30 -0
  23. data/lib/nba_rb/game/today_schedule.rb +63 -0
  24. data/lib/nba_rb/player.rb +75 -921
  25. data/lib/nba_rb/player/career.rb +111 -0
  26. data/lib/nba_rb/player/clutch_splits.rb +70 -0
  27. data/lib/nba_rb/player/dashboard.rb +104 -0
  28. data/lib/nba_rb/player/defense_tracking.rb +7 -0
  29. data/lib/nba_rb/player/game_logs.rb +34 -0
  30. data/lib/nba_rb/player/general_splits.rb +123 -0
  31. data/lib/nba_rb/player/in_game_splits.rb +55 -0
  32. data/lib/nba_rb/player/last_n_games_splits.rb +27 -0
  33. data/lib/nba_rb/player/list.rb +32 -0
  34. data/lib/nba_rb/player/opponent_splits.rb +39 -0
  35. data/lib/nba_rb/player/pass_tracking.rb +15 -0
  36. data/lib/nba_rb/player/performance_splits.rb +19 -0
  37. data/lib/nba_rb/player/player_dashboard.rb +104 -0
  38. data/lib/nba_rb/player/player_game_logs.rb +34 -0
  39. data/lib/nba_rb/player/player_general_splits.rb +123 -0
  40. data/lib/nba_rb/player/player_in_game_splits.rb +55 -0
  41. data/lib/nba_rb/player/player_last_n_games_splits.rb +27 -0
  42. data/lib/nba_rb/player/player_list.rb +32 -0
  43. data/lib/nba_rb/player/player_opponent_splits.rb +39 -0
  44. data/lib/nba_rb/player/player_performance_splits.rb +19 -0
  45. data/lib/nba_rb/player/player_profile.rb +19 -0
  46. data/lib/nba_rb/player/player_shooting_splits.rb +35 -0
  47. data/lib/nba_rb/player/player_summary.rb +29 -0
  48. data/lib/nba_rb/player/player_vs_player.rb +132 -0
  49. data/lib/nba_rb/player/player_year_over_year_splits.rb +17 -0
  50. data/lib/nba_rb/player/profile.rb +19 -0
  51. data/lib/nba_rb/player/rebound_log_tracking.rb +7 -0
  52. data/lib/nba_rb/player/rebound_tracking.rb +23 -0
  53. data/lib/nba_rb/player/shooting_splits.rb +35 -0
  54. data/lib/nba_rb/player/shot_log_tracking.rb +7 -0
  55. data/lib/nba_rb/player/shot_tracking.rb +31 -0
  56. data/lib/nba_rb/player/summary.rb +29 -0
  57. data/lib/nba_rb/player/year_over_year_splits.rb +17 -0
  58. data/lib/nba_rb/team.rb +31 -725
  59. data/lib/nba_rb/team/clutch_splits.rb +49 -0
  60. data/lib/nba_rb/team/common_roster.rb +28 -0
  61. data/lib/nba_rb/team/dashboard.rb +98 -0
  62. data/lib/nba_rb/team/game_logs.rb +27 -0
  63. data/lib/nba_rb/team/general_splits.rb +27 -0
  64. data/lib/nba_rb/team/in_game_splits.rb +23 -0
  65. data/lib/nba_rb/team/last_n_games_splits.rb +27 -0
  66. data/lib/nba_rb/team/lineups.rb +88 -0
  67. data/lib/nba_rb/team/list.rb +22 -0
  68. data/lib/nba_rb/team/opponent_splits.rb +19 -0
  69. data/lib/nba_rb/team/pass_tracking.rb +15 -0
  70. data/lib/nba_rb/team/performance_splits.rb +19 -0
  71. data/lib/nba_rb/team/player_on_off_detail.rb +15 -0
  72. data/lib/nba_rb/team/player_on_off_summary.rb +15 -0
  73. data/lib/nba_rb/team/players.rb +11 -0
  74. data/lib/nba_rb/team/rebound_tracking.rb +23 -0
  75. data/lib/nba_rb/team/seasons.rb +26 -0
  76. data/lib/nba_rb/team/shooting_splits.rb +35 -0
  77. data/lib/nba_rb/team/shot_tracking.rb +27 -0
  78. data/lib/nba_rb/team/stats.rb +17 -0
  79. data/lib/nba_rb/team/summary.rb +34 -0
  80. data/lib/nba_rb/team/vs_player.rb +121 -0
  81. data/lib/nba_rb/team/year_over_year_splits.rb +11 -0
  82. data/lib/nba_rb/version.rb +1 -1
  83. data/nba_rb.gemspec +2 -0
  84. metadata +105 -3
@@ -0,0 +1,23 @@
1
+ module NbaRb
2
+ module Player
3
+ class ReboundTracking < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashptreb'
5
+
6
+ def shot_type_rebounding
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def num_contested_rebounding
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def shot_distance_rebounding
15
+ create_stats_hash(@data[3])
16
+ end
17
+
18
+ def rebound_distance_rebounding
19
+ create_stats_hash(@data[4])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,35 @@
1
+ module NbaRb
2
+ module Player
3
+ class ShootingSplits < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashboardbyshootingsplits'
5
+
6
+ def shot_5ft
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def shot_8ft
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def shot_areas
15
+ create_stats_hash(@data[3])
16
+ end
17
+
18
+ def assisted_shots
19
+ create_stats_hash(@data[4])
20
+ end
21
+
22
+ def shot_types_summary
23
+ create_stats_hash(@data[5])
24
+ end
25
+
26
+ def shot_types_detail
27
+ create_stats_hash(@data[6])
28
+ end
29
+
30
+ def assissted_by
31
+ create_stats_hash(@data[7])
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ module NbaRb
2
+ module Player
3
+ class ShotLogTracking < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashptshotlog'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,31 @@
1
+ module NbaRb
2
+ module Player
3
+ class ShotTracking < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashptshots'
5
+
6
+ def general_shooting
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def shot_clock_shooting
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def dribble_shooting
15
+ create_stats_hash(@data[3])
16
+ end
17
+
18
+ def closest_defender_shooting
19
+ create_stats_hash(@data[4])
20
+ end
21
+
22
+ def closest_defender_shooting_long
23
+ create_stats_hash(@data[5])
24
+ end
25
+
26
+ def touch_time_shooting
27
+ create_stats_hash(@data[6])
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ module NbaRb
2
+ module Player
3
+ class Summary
4
+ include Initializable
5
+ include StatsRequest
6
+ include StatsHash
7
+
8
+ attr_accessor :player_id,
9
+ :data
10
+
11
+ def initialize(*args)
12
+ super(*args)
13
+ @player_id ||= player_id
14
+
15
+ res = stats_request('commonplayerinfo', 'PlayerID' => player_id)
16
+
17
+ @data = res['resultSets']
18
+ end
19
+
20
+ def info
21
+ create_stats_hash(@data[0])
22
+ end
23
+
24
+ def headline_stats
25
+ create_stats_hash(@data[1])
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,17 @@
1
+ module NbaRb
2
+ module Player
3
+ class YearOverYearSplits < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashboardbyyearoveryear'
5
+
6
+ def splits_by_year
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def by_year(year)
11
+ splits_by_year.each do |hash|
12
+ return hash if hash['GROUP_VALUE'].include? year
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,727 +1,33 @@
1
- class TeamList
2
- include StatsHash
3
- include Initializable
4
- include StatsRequest
5
-
6
- attr_accessor :league_id,
7
- :data
8
-
9
- def initialize(*args)
10
- super(*args)
11
-
12
- @league_id ||= League.NBA
13
-
14
- res = stats_request('commonteamyears', 'LeagueID' => league_id)
15
-
16
- @data = res['resultSets']
17
- end
18
-
19
- def info
20
- create_stats_hash(@data[0])
21
- end
22
- end
23
-
24
- class TeamSummary
25
- include Initializable
26
- include StatsRequest
27
- include StatsHash
28
-
29
- attr_accessor :team_id,
30
- :season,
31
- :league_id,
32
- :season_type,
33
- :data
34
-
35
- def initialize(*args)
36
- super(*args)
37
-
38
- @season ||= NbaRb::CURRENT_SEASON
39
- @league_id ||= League.NBA
40
- @season_type ||= SeasonType.default
41
-
42
- res = stats_request('teaminfocommon', 'TeamID' => team_id,
43
- 'Season' => season,
44
- 'LeagueID' => league_id,
45
- 'SeasonType' => season_type)
46
-
47
- @data = res['resultSets']
48
- end
49
-
50
- def info
51
- create_stats_hash(@data[0])
52
- end
53
-
54
- def season_ranks
55
- create_stats_hash(@data[1])
56
- end
57
- end
58
-
59
- class TeamCommonRoster
60
- include Initializable
61
- include StatsRequest
62
- include StatsHash
63
-
64
- attr_accessor :team_id,
65
- :season,
66
- :data
67
-
68
- def initialize(*args)
69
- super(*args)
70
-
71
- @season ||= NbaRb::CURRENT_SEASON
72
-
73
- res = stats_request('commonteamroster', 'TeamID' => team_id,
74
- 'Season' => season)
75
-
76
- @data = res['resultSets']
77
- end
78
-
79
- def roster
80
- create_stats_hash(@data[0])
81
- end
82
-
83
- def coaches
84
- create_stats_hash(@data[1])
85
- end
86
- end
87
-
88
- class TeamDashboard
89
- include Initializable
90
- include StatsRequest
91
- include StatsHash
92
-
93
- @endpoint = ''
94
-
95
- class << self
96
- attr_reader :endpoint
97
- end
98
-
99
- def endpoint
100
- self.class.endpoint
101
- end
102
-
103
- attr_accessor :team_id,
104
- :measure_type,
105
- :per_mode,
106
- :plus_minus,
107
- :pace_adjust,
108
- :rank,
109
- :league_id,
110
- :season,
111
- :season_type,
112
- :po_round,
113
- :outcome,
114
- :location,
115
- :month,
116
- :season_segment,
117
- :date_from,
118
- :date_to,
119
- :opponent_team_id,
120
- :vs_conference,
121
- :vs_division,
122
- :game_segment,
123
- :period,
124
- :shot_clock_range,
125
- :last_n_games,
126
- :data
127
-
128
- def initialize(*args)
129
- super(*args)
130
-
131
- @measure_type ||= MeasureType.default
132
- @per_mode ||= PerMode.default
133
- @plus_minus ||= PlusMinus.default
134
- @pace_adjust ||= PaceAdjust.default
135
- @rank ||= Rank.default
136
- @league_id ||= League.default
137
- @season ||= NbaRb::CURRENT_SEASON
138
- @season_type ||= SeasonType.default
139
- @po_round ||= PlayoffRound.default
140
- @outcome ||= Outcome.default
141
- @location ||= Location.default
142
- @month ||= Month.default
143
- @season_segment ||= SeasonSegment.default
144
- @date_from ||= DateFrom.default
145
- @date_to ||= DateTo.default
146
- @opponent_team_id ||= OpponentTeamID.default
147
- @vs_conference ||= VsConference.default
148
- @vs_division ||= VsDivision.default
149
- @game_segment ||= GameSegment.default
150
- @period ||= Period.default
151
- @shot_clock_range ||= ShotClockRange.default
152
- @last_n_games ||= LastNGames.default
153
-
154
- res = stats_request(endpoint, 'TeamID' => team_id,
155
- 'MeasureType' => measure_type,
156
- 'PerMode' => per_mode,
157
- 'PlusMinus' => plus_minus,
158
- 'PaceAdjust' => pace_adjust,
159
- 'Rank' => rank,
160
- 'LeagueID' => league_id,
161
- 'Season' => season,
162
- 'SeasonType' => season_type,
163
- 'PORound' => po_round,
164
- 'Outcome' => outcome,
165
- 'Location' => location,
166
- 'Month' => month,
167
- 'SeasonSegment' => season_segment,
168
- 'DateFrom' => date_from,
169
- 'DateTo' => date_to,
170
- 'OpponentTeamID' => opponent_team_id,
171
- 'VsConference' => vs_conference,
172
- 'VsDivision' => vs_division,
173
- 'GameSegment' => game_segment,
174
- 'Period' => period,
175
- 'ShotClockRange' => shot_clock_range,
176
- 'LastNGames' => last_n_games)
177
-
178
- @data = res['resultSets']
179
- end
180
-
181
- def overall
182
- create_stats_hash(@data[0])
183
- end
184
- end
185
-
186
- class TeamGeneralSplits < TeamDashboard
187
- @endpoint = 'teamdashboardbygeneralsplits'
188
-
189
- def by_location
190
- create_stats_hash(@data[1])
191
- end
192
-
193
- def wins_losses
194
- create_stats_hash(@data[2])
195
- end
196
-
197
- def monthly
198
- create_stats_hash(@data[3])
199
- end
200
-
201
- def pre_post_all_star
202
- create_stats_hash(@data[4])
203
- end
204
-
205
- def days_rest
206
- create_stats_hash(@data[5])
207
- end
208
- end
209
-
210
- class TeamOpponentSplits < TeamDashboard
211
- @endpoint = 'teamdashboardbyopponent'
212
-
213
- def by_conference
214
- create_stats_hash(@data[1])
215
- end
216
-
217
- def by_division
218
- create_stats_hash(@data[2])
219
- end
220
-
221
- def by_opponent
222
- create_stats_hash(@data[3])
223
- end
224
- end
225
-
226
- class TeamLastNGamesSplits < TeamDashboard
227
- @endpoint = 'teamdashboardbylastngames'
228
-
229
- def last5
230
- create_stats_hash(@data[1])
231
- end
232
-
233
- def last10
234
- create_stats_hash(@data[2])
235
- end
236
-
237
- def last15
238
- create_stats_hash(@data[3])
239
- end
240
-
241
- def last20
242
- create_stats_hash(@data[4])
243
- end
244
-
245
- def gamenumber
246
- create_stats_hash(@data[5])
247
- end
248
- end
249
-
250
- class TeamInGameSplits < TeamDashboard
251
- @endpoint = 'teamdashboardbygamesplits'
252
-
253
- def by_half
254
- create_stats_hash(@data[1])
255
- end
256
-
257
- def by_period
258
- create_stats_hash(@data[2])
259
- end
260
-
261
- def by_score_margin
262
- create_stats_hash(@data[3])
263
- end
264
-
265
- def by_actual_margin
266
- create_stats_hash(@data[4])
267
- end
268
- end
269
-
270
- class TeamClutchSplits < TeamDashboard
271
- @endpoint = 'teamdashboardbyclutch'
272
-
273
- def last5min_deficit_5point
274
- # Results in last 5 minutes <= 5 points
275
- create_stats_hash(@data[1])
276
- end
277
-
278
- def last3min_deficit_5point
279
- # Results in last 5 minutes <= 5 points
280
- create_stats_hash(@data[2])
281
- end
282
-
283
- def last1min_deficit_5point
284
- # Results in last 5 minutes <= 5 points
285
- create_stats_hash(@data[3])
286
- end
287
-
288
- def last30sec_deficit_3point
289
- # Results in last 5 minutes <= 5 points
290
- create_stats_hash(@data[4])
291
- end
292
-
293
- def last10sec_deficit_3point
294
- # Results in last 5 minutes <= 5 points
295
- create_stats_hash(@data[5])
296
- end
297
-
298
- def last5min_plusminus_5point
299
- # Last 5 minutes +/= 5 points
300
- create_stats_hash(@data[6])
301
- end
302
-
303
- def last3min_plusminus_5point
304
- # Last 3 minutes +/= 5 points
305
- create_stats_hash(@data[7])
306
- end
307
-
308
- def last1min_plusminus_5point
309
- # Last 1 minutes +/= 5 points
310
- create_stats_hash(@data[8])
311
- end
312
-
313
- def last30sec_plusminus_5point
314
- # Last 30 seconds +/= 3 points
315
- create_stats_hash(@data[9])
316
- end
317
- end
318
-
319
- class TeamShootingSplits < TeamDashboard
320
- @endpoint = 'teamdashboardbyshootingsplits'
321
-
322
- def shot_5ft
323
- create_stats_hash(@data[1])
324
- end
325
-
326
- def shot_8ft
327
- create_stats_hash(@data[2])
328
- end
329
-
330
- def shot_areas
331
- create_stats_hash(@data[3])
332
- end
333
-
334
- def assisted_shots
335
- create_stats_hash(@data[4])
336
- end
337
-
338
- def shot_type_summary
339
- create_stats_hash(@data[5])
340
- end
341
-
342
- def shot_type_detail
343
- create_stats_hash(@data[6])
344
- end
345
-
346
- def assissted_by
347
- create_stats_hash(@data[7])
348
- end
349
- end
350
-
351
- class TeamPerformanceSplits < TeamDashboard
352
- @endpoint = 'teamdashboardbyteamperformance'
353
-
354
- def score_differential
355
- create_stats_hash(@data[1])
356
- end
357
-
358
- def points_scored
359
- create_stats_hash(@data[2])
360
- end
361
-
362
- def points_against
363
- create_stats_hash(@data[3])
364
- end
365
- end
366
-
367
- class TeamYearOverYearSplits < TeamDashboard
368
- @endpoint = 'teamdashboardbyyearoveryear'
369
-
370
- def by_year
371
- create_stats_hash(@data[1])
372
- end
373
- end
374
-
375
- class TeamLineups
376
- include Initializable
377
- include StatsRequest
378
- include StatsHash
379
-
380
- attr_accessor :team_id,
381
- :game_id,
382
- :group_quantity,
383
- :season,
384
- :season_type,
385
- :measure_type,
386
- :per_mode,
387
- :plus_minus,
388
- :pace_adjust,
389
- :rank,
390
- :outcome,
391
- :location,
392
- :month,
393
- :season_segment,
394
- :date_from,
395
- :date_to,
396
- :opponent_team_id,
397
- :vs_conference,
398
- :vs_division,
399
- :game_segment,
400
- :period,
401
- :last_n_games,
402
- :data
403
-
404
- def initialize(*args)
405
- super(*args)
406
-
407
- @game_id ||= ''
408
- @group_quantity ||= GroupQuantity.default
409
- @season ||= NbaRb::CURRENT_SEASON
410
- @season_type ||= SeasonType.default
411
- @measure_type ||= MeasureType.default
412
- @per_mode ||= PerMode.default
413
- @plus_minus ||= PlusMinus.default
414
- @pace_adjust ||= PaceAdjust.default
415
- @rank ||= Rank.default
416
- @outcome ||= Outcome.default
417
- @location ||= Location.default
418
- @month ||= Month.default
419
- @season_segment ||= SeasonSegment.default
420
- @date_from ||= DateFrom.default
421
- @date_to ||= DateTo.default
422
- @opponent_team_id ||= OpponentTeamID.default
423
- @vs_conference ||= VsConference.default
424
- @vs_division ||= VsDivision.default
425
- @game_segment ||= GameSegment.default
426
- @period ||= Period.default
427
- @last_n_games ||= LastNGames.default
428
-
429
- res = stats_request('teamdashlineups', 'GroupQuantity' => group_quantity,
430
- 'GameID' => game_id,
431
- 'TeamID' => team_id,
432
- 'Season' => season,
433
- 'SeasonType' => season_type,
434
- 'MeasureType' => measure_type,
435
- 'PerMode' => per_mode,
436
- 'PlusMinus' => plus_minus,
437
- 'PaceAdjust' => pace_adjust,
438
- 'Rank' => rank,
439
- 'Outcome' => outcome,
440
- 'Location' => location,
441
- 'Month' => month,
442
- 'SeasonSegment' => season_segment,
443
- 'DateFrom' => date_from,
444
- 'DateTo' => date_to,
445
- 'OpponentTeamID' => opponent_team_id,
446
- 'VsConference' => vs_conference,
447
- 'VsDivision' => vs_division,
448
- 'GameSegment' => game_segment,
449
- 'Period' => period,
450
- 'LastNGames' => last_n_games)
451
-
452
- @data = res['resultSets']
453
- end
454
-
455
- def overall
456
- create_stats_hash(@data[0])
457
- end
458
-
459
- def lineups
460
- create_stats_hash(@data[1])
461
- end
462
- end
463
-
464
- class TeamPlayers < TeamDashboard
465
- @endpoint = 'teamplayerdashboard'
466
-
467
- def season_totals
468
- create_stats_hash(@data[1])
469
- end
470
- end
471
-
472
- class TeamPlayerOnOffDetail < TeamDashboard
473
- @endpoint = 'teamplayeronoffdetails'
474
-
475
- def on_court
476
- create_stats_hash(@data[1])
477
- end
478
-
479
- def off_court
480
- create_stats_hash(@data[2])
481
- end
482
- end
483
-
484
- class TeamPlayerOnOffSummary < TeamDashboard
485
- @endpoint = 'teamplayeronoffsummary'
486
-
487
- def on_court
488
- create_stats_hash(@data[1])
489
- end
490
-
491
- def off_court
492
- create_stats_hash(@data[2])
493
- end
494
- end
495
-
496
- class TeamGameLogs
497
- include Initializable
498
- include StatsRequest
499
- include StatsHash
500
-
501
- attr_accessor :team_id,
502
- :season,
503
- :season_type,
504
- :data
505
-
506
- def initialize(*args)
507
- super(*args)
508
-
509
- @season ||= NbaRb::CURRENT_SEASON
510
- @season_type ||= SeasonType.default
511
-
512
- res = stats_request('teamgamelog', 'TeamID' => team_id,
513
- 'Season' => season,
514
- 'SeasonType' => season_type)
515
-
516
- @data = res['resultSets']
517
- end
518
-
519
- def info
520
- create_stats_hash(@data[1])
521
- end
522
- end
523
-
524
- class TeamSeasons
525
- include Initializable
526
- include StatsRequest
527
- include StatsHash
528
-
529
- attr_accessor :team_id,
530
- :season_type,
531
- :per_mode
532
-
533
- def initialize(*args)
534
- super(*args)
535
-
536
- @season_type ||= SeasonType.Default
537
- @per_mode ||= PerMode.Default
538
-
539
- res = stats_request('teamyearbyyearstats', 'TeamID' => team_id,
540
- 'SeasonType' => season_type,
541
- 'PerMode' => per_mode)
542
-
543
- @data = res['resultSets']
544
- end
545
-
546
- def info
547
- create_stats_hash(@data[1])
548
- end
549
- end
550
-
551
- class TeamShotTracking < TeamDashboard
552
- @endpoint = 'teamdashptshots'
553
-
554
- def shot_clock_shooting
555
- create_stats_hash(@data[1])
556
- end
557
-
558
- def dribble_shooting
559
- create_stats_hash(@data[2])
560
- end
561
-
562
- def closest_defender_shooting
563
- create_stats_hash(@data[3])
564
- end
565
-
566
- def closest_defender_shooting_long
567
- create_stats_hash(@data[4])
568
- end
569
-
570
- def touch_time_shooting
571
- create_stats_hash(@data[5])
572
- end
573
- end
574
-
575
- class TeamReboundTracking < TeamDashboard
576
- @endpoint = 'teamdashptreb'
577
-
578
- def shot_type_rebounding
579
- create_stats_hash(@data[1])
580
- end
581
-
582
- def contested_rebounding
583
- create_stats_hash(@data[2])
584
- end
585
-
586
- def shot_distance_rebounding
587
- create_stats_hash(@data[3])
588
- end
589
-
590
- def rebound_distance_rebounding
591
- create_stats_hash(@data[4])
592
- end
593
- end
594
-
595
- class TeamPassTracking < TeamDashboard
596
- @endpoint = 'teamdashptpass'
597
-
598
- def passes_made
599
- create_stats_hash(@data[0])
600
- end
601
-
602
- def passes_recieved
603
- create_stats_hash(@data[1])
604
- end
605
- end
606
-
607
- class TeamVsPlayer
608
- include Initializable
609
- include StatsRequest
610
- include StatsHash
611
-
612
- attr_accessor :team_id,
613
- :vs_player_id,
614
- :measure_type,
615
- :per_mode,
616
- :plus_minus,
617
- :pace_adjust,
618
- :rank,
619
- :league_id,
620
- :season,
621
- :season_type,
622
- :po_round,
623
- :outcome,
624
- :location,
625
- :month,
626
- :season_segment,
627
- :date_from,
628
- :date_to,
629
- :opponent_team_id,
630
- :vs_conference,
631
- :vs_division,
632
- :game_segment,
633
- :period,
634
- :shot_clock_range,
635
- :last_n_games,
636
- :data
637
-
638
- def initialize(*args)
639
- super(*args)
640
-
641
- @measure_type ||= MeasureType.default
642
- @per_mode ||= PerMode.default
643
- @plus_minus ||= PlusMinus.default
644
- @pace_adjust ||= PaceAdjust.default
645
- @rank ||= Rank.default
646
- @league_id ||= League.default
647
- @season ||= NbaRb::CURRENT_SEASON
648
- @season_type ||= SeasonType.default
649
- @po_round ||= PlayoffRound.default
650
- @outcome ||= Outcome.default
651
- @location ||= Location.default
652
- @month ||= Month.default
653
- @season_segment ||= SeasonSegment.default
654
- @date_from ||= DateFrom.default
655
- @date_to ||= DateTo.default
656
- @opponent_team_id ||= OpponentTeamID.default
657
- @vs_conference ||= VsConference.default
658
- @vs_division ||= VsDivision.default
659
- @game_segment ||= GameSegment.default
660
- @period ||= Period.default
661
- @shot_clock_range ||= ShotClockRange.default
662
- @last_n_games ||= LastNGames.default
663
-
664
- res = stats_request('teamvsplayer', 'TeamID' => team_id,
665
- 'VsPlayerID' => vs_player_id,
666
- 'MeasureType' => measure_type,
667
- 'PerMode' => per_mode,
668
- 'PlusMinus' => plus_minus,
669
- 'PaceAdjust' => pace_adjust,
670
- 'Rank' => rank,
671
- 'LeagueID' => league_id,
672
- 'Season' => season,
673
- 'SeasonType' => season_type,
674
- 'PORound' => po_round,
675
- 'Outcome' => outcome,
676
- 'Location' => location,
677
- 'Month' => month,
678
- 'SeasonSegment' => season_segment,
679
- 'DateFrom' => date_from,
680
- 'DateTo' => date_to,
681
- 'OpponentTeamID' => opponent_team_id,
682
- 'VsConference' => vs_conference,
683
- 'VsDivision' => vs_division,
684
- 'GameSegment' => game_segment,
685
- 'Period' => period,
686
- 'ShotClockRange' => shot_clock_range,
687
- 'LastNGames' => last_n_games)
688
-
689
- @data = res['resultSets']
690
- end
691
-
692
- def overall
693
- create_stats_hash(@data[0])
694
- end
695
-
696
- def vs_player_overall
697
- create_stats_hash(@data[1])
698
- end
699
-
700
- def on_off_court
701
- create_stats_hash(@data[2])
702
- end
703
-
704
- def shot_distance_overall
705
- create_stats_hash(@data[3])
706
- end
707
-
708
- def shot_distance_on_court
709
- create_stats_hash(@data[4])
710
- end
711
-
712
- def shot_distance_off_court
713
- create_stats_hash(@data[5])
714
- end
715
-
716
- def shot_area_overall
717
- create_stats_hash(@data[6])
718
- end
719
-
720
- def shot_area_on_court
721
- create_stats_hash(@data[7])
722
- end
723
-
724
- def shot_area_off_court
725
- create_stats_hash(@data[8])
1
+ module NbaRb
2
+ module Team
3
+ class BaseClass
4
+ include StatsHash
5
+ include Initializable
6
+ include StatsRequest
7
+ end
8
+
9
+ require_relative './team/dashboard'
10
+ require_relative './team/clutch_splits'
11
+ require_relative './team/common_roster'
12
+ require_relative './team/game_logs'
13
+ require_relative './team/general_splits'
14
+ require_relative './team/in_game_splits'
15
+ require_relative './team/last_n_games_splits'
16
+ require_relative './team/lineups'
17
+ require_relative './team/list'
18
+ require_relative './team/opponent_splits'
19
+ require_relative './team/pass_tracking'
20
+ require_relative './team/performance_splits'
21
+ require_relative './team/player_on_off_detail'
22
+ require_relative './team/player_on_off_summary'
23
+ require_relative './team/players'
24
+ require_relative './team/rebound_tracking'
25
+ require_relative './team/seasons'
26
+ require_relative './team/shooting_splits'
27
+ require_relative './team/shot_tracking'
28
+ require_relative './team/stats'
29
+ require_relative './team/summary'
30
+ require_relative './team/vs_player'
31
+ require_relative './team/year_over_year_splits'
726
32
  end
727
33
  end