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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +107 -0
- data/fixtures/vcr_cassettes/has_working_BoxscoreAdvanced_endpoint.yml +85 -0
- data/fixtures/vcr_cassettes/has_working_BoxscoreFourFactors_endpoint.yml +85 -0
- data/fixtures/vcr_cassettes/has_working_BoxscoreScoring_endpoint.yml +85 -0
- data/fixtures/vcr_cassettes/has_working_BoxscoreUsage_endpoint.yml +85 -0
- data/fixtures/vcr_cassettes/has_working_Boxscore_endpoint.yml +85 -0
- data/fixtures/vcr_cassettes/has_working_PlayerCareer_endpoint.yml +59 -0
- data/fixtures/vcr_cassettes/has_working_PlayerList_endpoint.yml +184 -0
- data/fixtures/vcr_cassettes/has_working_PlayerSummary_endpoint.yml +61 -0
- data/lib/helpers/stats_request.rb +8 -4
- data/lib/nba_rb.rb +1 -1
- data/lib/nba_rb/constants.rb +279 -277
- data/lib/nba_rb/game.rb +16 -195
- data/lib/nba_rb/game/boxscore.rb +94 -0
- data/lib/nba_rb/game/boxscore_advanced.rb +15 -0
- data/lib/nba_rb/game/boxscore_four_factors.rb +19 -0
- data/lib/nba_rb/game/boxscore_misc.rb +19 -0
- data/lib/nba_rb/game/boxscore_scoring.rb +25 -0
- data/lib/nba_rb/game/boxscore_usage.rb +19 -0
- data/lib/nba_rb/game/hustle.rb +29 -0
- data/lib/nba_rb/game/play_by_play.rb +30 -0
- data/lib/nba_rb/game/today_schedule.rb +63 -0
- data/lib/nba_rb/player.rb +75 -921
- data/lib/nba_rb/player/career.rb +111 -0
- data/lib/nba_rb/player/clutch_splits.rb +70 -0
- data/lib/nba_rb/player/dashboard.rb +104 -0
- data/lib/nba_rb/player/defense_tracking.rb +7 -0
- data/lib/nba_rb/player/game_logs.rb +34 -0
- data/lib/nba_rb/player/general_splits.rb +123 -0
- data/lib/nba_rb/player/in_game_splits.rb +55 -0
- data/lib/nba_rb/player/last_n_games_splits.rb +27 -0
- data/lib/nba_rb/player/list.rb +32 -0
- data/lib/nba_rb/player/opponent_splits.rb +39 -0
- data/lib/nba_rb/player/pass_tracking.rb +15 -0
- data/lib/nba_rb/player/performance_splits.rb +19 -0
- data/lib/nba_rb/player/player_dashboard.rb +104 -0
- data/lib/nba_rb/player/player_game_logs.rb +34 -0
- data/lib/nba_rb/player/player_general_splits.rb +123 -0
- data/lib/nba_rb/player/player_in_game_splits.rb +55 -0
- data/lib/nba_rb/player/player_last_n_games_splits.rb +27 -0
- data/lib/nba_rb/player/player_list.rb +32 -0
- data/lib/nba_rb/player/player_opponent_splits.rb +39 -0
- data/lib/nba_rb/player/player_performance_splits.rb +19 -0
- data/lib/nba_rb/player/player_profile.rb +19 -0
- data/lib/nba_rb/player/player_shooting_splits.rb +35 -0
- data/lib/nba_rb/player/player_summary.rb +29 -0
- data/lib/nba_rb/player/player_vs_player.rb +132 -0
- data/lib/nba_rb/player/player_year_over_year_splits.rb +17 -0
- data/lib/nba_rb/player/profile.rb +19 -0
- data/lib/nba_rb/player/rebound_log_tracking.rb +7 -0
- data/lib/nba_rb/player/rebound_tracking.rb +23 -0
- data/lib/nba_rb/player/shooting_splits.rb +35 -0
- data/lib/nba_rb/player/shot_log_tracking.rb +7 -0
- data/lib/nba_rb/player/shot_tracking.rb +31 -0
- data/lib/nba_rb/player/summary.rb +29 -0
- data/lib/nba_rb/player/year_over_year_splits.rb +17 -0
- data/lib/nba_rb/team.rb +31 -725
- data/lib/nba_rb/team/clutch_splits.rb +49 -0
- data/lib/nba_rb/team/common_roster.rb +28 -0
- data/lib/nba_rb/team/dashboard.rb +98 -0
- data/lib/nba_rb/team/game_logs.rb +27 -0
- data/lib/nba_rb/team/general_splits.rb +27 -0
- data/lib/nba_rb/team/in_game_splits.rb +23 -0
- data/lib/nba_rb/team/last_n_games_splits.rb +27 -0
- data/lib/nba_rb/team/lineups.rb +88 -0
- data/lib/nba_rb/team/list.rb +22 -0
- data/lib/nba_rb/team/opponent_splits.rb +19 -0
- data/lib/nba_rb/team/pass_tracking.rb +15 -0
- data/lib/nba_rb/team/performance_splits.rb +19 -0
- data/lib/nba_rb/team/player_on_off_detail.rb +15 -0
- data/lib/nba_rb/team/player_on_off_summary.rb +15 -0
- data/lib/nba_rb/team/players.rb +11 -0
- data/lib/nba_rb/team/rebound_tracking.rb +23 -0
- data/lib/nba_rb/team/seasons.rb +26 -0
- data/lib/nba_rb/team/shooting_splits.rb +35 -0
- data/lib/nba_rb/team/shot_tracking.rb +27 -0
- data/lib/nba_rb/team/stats.rb +17 -0
- data/lib/nba_rb/team/summary.rb +34 -0
- data/lib/nba_rb/team/vs_player.rb +121 -0
- data/lib/nba_rb/team/year_over_year_splits.rb +11 -0
- data/lib/nba_rb/version.rb +1 -1
- data/nba_rb.gemspec +2 -0
- 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,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
|
data/lib/nba_rb/team.rb
CHANGED
@@ -1,727 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|