nba_rb 0.1.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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