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
data/lib/nba_rb/game.rb
CHANGED
@@ -1,197 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
:range_type,
|
18
|
-
:start_period,
|
19
|
-
:end_period,
|
20
|
-
:start_range,
|
21
|
-
:end_range,
|
22
|
-
:data
|
23
|
-
|
24
|
-
def initialize(*args)
|
25
|
-
super(*args)
|
26
|
-
|
27
|
-
@range_type ||= RangeType.default
|
28
|
-
@start_period ||= Period.default
|
29
|
-
@end_period ||= Period.default
|
30
|
-
@start_range ||= StartRange.default
|
31
|
-
@end_range ||= EndRange.default
|
32
|
-
|
33
|
-
res = stats_request(endpoint, 'GameID' => game_id,
|
34
|
-
'RangeType' => range_type,
|
35
|
-
'StartPeriod' => start_period,
|
36
|
-
'EndPeriod' => end_period,
|
37
|
-
'StartRange' => start_range,
|
38
|
-
'EndRange' => end_range)
|
39
|
-
|
40
|
-
@data = res['resultSets']
|
41
|
-
end
|
42
|
-
|
43
|
-
def game_summary
|
44
|
-
create_stats_hash(@data[0])
|
45
|
-
end
|
46
|
-
|
47
|
-
def line_score
|
48
|
-
create_stats_hash(@data[1])
|
49
|
-
end
|
50
|
-
|
51
|
-
def season_series
|
52
|
-
create_stats_hash(@data[2])
|
53
|
-
end
|
54
|
-
|
55
|
-
def last_meeting
|
56
|
-
create_stats_hash(@data[3])
|
57
|
-
end
|
58
|
-
|
59
|
-
def player_stats
|
60
|
-
create_stats_hash(@data[4])
|
61
|
-
end
|
62
|
-
|
63
|
-
def team_stats
|
64
|
-
create_stats_hash(@data[5])
|
65
|
-
end
|
66
|
-
|
67
|
-
def other_stats
|
68
|
-
create_stats_hash(@data[6])
|
69
|
-
end
|
70
|
-
|
71
|
-
def officials
|
72
|
-
create_stats_hash(@data[7])
|
73
|
-
end
|
74
|
-
|
75
|
-
def game_info
|
76
|
-
create_stats_hash(@data[8])
|
77
|
-
end
|
78
|
-
|
79
|
-
def inactive_players
|
80
|
-
create_stats_hash(@data[9])
|
81
|
-
end
|
82
|
-
|
83
|
-
def available_video
|
84
|
-
create_stats_hash(@data[10])
|
85
|
-
end
|
86
|
-
|
87
|
-
def player_track
|
88
|
-
create_stats_hash(@data[11])
|
89
|
-
end
|
90
|
-
|
91
|
-
def player_track_team
|
92
|
-
create_stats_hash(@data[12])
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
class BoxscoreScoring < Boxscore
|
97
|
-
@endpoint = 'boxscorescoring'
|
98
|
-
|
99
|
-
def endpoint
|
100
|
-
self.class.endpoint
|
101
|
-
end
|
102
|
-
|
103
|
-
def sql_players_scoring
|
104
|
-
create_stats_hash(@data[13])
|
105
|
-
end
|
106
|
-
|
107
|
-
def sql_team_scoring
|
108
|
-
create_stats_hash(@data[14])
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
class BoxscoreUsage < Boxscore
|
113
|
-
@endpoint = 'boxscoreusage'
|
114
|
-
|
115
|
-
def endpoint
|
116
|
-
self.class.endpoint
|
117
|
-
end
|
118
|
-
|
119
|
-
def sql_players_usage
|
120
|
-
create_stats_hash(@data[13])
|
121
|
-
end
|
122
|
-
|
123
|
-
def sql_team_usage
|
124
|
-
create_stats_hash(@data[14])
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
class BoxscoreMisc < Boxscore
|
129
|
-
@endpoint = 'boxscoremisc'
|
130
|
-
|
131
|
-
def endpoint
|
132
|
-
self.class.endpoint
|
133
|
-
end
|
134
|
-
|
135
|
-
def sql_players_misc
|
136
|
-
create_stats_hash(@data[13])
|
137
|
-
end
|
138
|
-
|
139
|
-
def sql_team_misc
|
140
|
-
create_stats_hash(@data[14])
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
class BoxscoreAdvanced < Boxscore
|
145
|
-
@endpoint = 'boxscoreadvanced'
|
146
|
-
|
147
|
-
def sql_players_advanced
|
148
|
-
create_stats_hash(@data[13])
|
149
|
-
end
|
150
|
-
|
151
|
-
def sql_team_advanced
|
152
|
-
create_stats_hash(@data[14])
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
class BoxscoreFourFactors < Boxscore
|
157
|
-
@endpoint = 'boxscorefourfactors'
|
158
|
-
|
159
|
-
def endpoint
|
160
|
-
self.class.endpoint
|
161
|
-
end
|
162
|
-
|
163
|
-
def sql_players_four_factors
|
164
|
-
create_stats_hash(@data[13])
|
165
|
-
end
|
166
|
-
|
167
|
-
def sql_team_four_factors
|
168
|
-
create_stats_hash(@data[14])
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
class PlayByPlay
|
173
|
-
include Initializable
|
174
|
-
include StatsRequest
|
175
|
-
include StatsHash
|
176
|
-
|
177
|
-
def initialize(*args)
|
178
|
-
super(*args)
|
179
|
-
|
180
|
-
@start_period ||= Period.default
|
181
|
-
@end_period ||= Period.default
|
182
|
-
|
183
|
-
res = stats_request('playbyplay', 'GameID' => @game_id,
|
184
|
-
'StartPeriod' => start_period,
|
185
|
-
'EndPeriod' => end_period)
|
186
|
-
|
187
|
-
@data = res['resultSets']
|
188
|
-
end
|
189
|
-
|
190
|
-
def info
|
191
|
-
create_stats_hash(@data[0])
|
192
|
-
end
|
193
|
-
|
194
|
-
def available_video
|
195
|
-
create_stats_hash(@data[1])
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class BaseClass
|
4
|
+
include StatsHash
|
5
|
+
include Initializable
|
6
|
+
include StatsRequest
|
7
|
+
end
|
8
|
+
|
9
|
+
require_relative './game/boxscore'
|
10
|
+
require_relative './game/boxscore_advanced'
|
11
|
+
require_relative './game/boxscore_four_factors'
|
12
|
+
require_relative './game/boxscore_misc'
|
13
|
+
require_relative './game/boxscore_scoring'
|
14
|
+
require_relative './game/boxscore_usage'
|
15
|
+
require_relative './game/play_by_play'
|
16
|
+
require_relative './game/today_schedule'
|
196
17
|
end
|
197
18
|
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class Boxscore < BaseClass
|
4
|
+
@endpoint = 'boxscoretraditionalv2'
|
5
|
+
|
6
|
+
class << self
|
7
|
+
attr_reader :endpoint
|
8
|
+
end
|
9
|
+
|
10
|
+
def endpoint
|
11
|
+
self.class.endpoint
|
12
|
+
end
|
13
|
+
|
14
|
+
attr_accessor :game_id,
|
15
|
+
:range_type,
|
16
|
+
:start_period,
|
17
|
+
:end_period,
|
18
|
+
:start_range,
|
19
|
+
:end_range,
|
20
|
+
:data
|
21
|
+
|
22
|
+
def initialize(*args)
|
23
|
+
super(*args)
|
24
|
+
|
25
|
+
@range_type ||= NbaRb::RangeType.default
|
26
|
+
@start_period ||= NbaRb::Period.default
|
27
|
+
@end_period ||= NbaRb::Period.default
|
28
|
+
@start_range ||= NbaRb::StartRange.default
|
29
|
+
@end_range ||= NbaRb::EndRange.default
|
30
|
+
|
31
|
+
res = stats_request(endpoint, 'GameID' => game_id,
|
32
|
+
'RangeType' => range_type,
|
33
|
+
'StartPeriod' => start_period,
|
34
|
+
'EndPeriod' => end_period,
|
35
|
+
'StartRange' => start_range,
|
36
|
+
'EndRange' => end_range)
|
37
|
+
|
38
|
+
@data = res['resultSets']
|
39
|
+
end
|
40
|
+
|
41
|
+
def game_summary
|
42
|
+
create_stats_hash(@data[0])
|
43
|
+
end
|
44
|
+
|
45
|
+
def line_score
|
46
|
+
create_stats_hash(@data[1])
|
47
|
+
end
|
48
|
+
|
49
|
+
def season_series
|
50
|
+
create_stats_hash(@data[2])
|
51
|
+
end
|
52
|
+
|
53
|
+
def last_meeting
|
54
|
+
create_stats_hash(@data[3])
|
55
|
+
end
|
56
|
+
|
57
|
+
def player_stats
|
58
|
+
create_stats_hash(@data[4])
|
59
|
+
end
|
60
|
+
|
61
|
+
def team_stats
|
62
|
+
create_stats_hash(@data[5])
|
63
|
+
end
|
64
|
+
|
65
|
+
def other_stats
|
66
|
+
create_stats_hash(@data[6])
|
67
|
+
end
|
68
|
+
|
69
|
+
def officials
|
70
|
+
create_stats_hash(@data[7])
|
71
|
+
end
|
72
|
+
|
73
|
+
def game_info
|
74
|
+
create_stats_hash(@data[8])
|
75
|
+
end
|
76
|
+
|
77
|
+
def inactive_players
|
78
|
+
create_stats_hash(@data[9])
|
79
|
+
end
|
80
|
+
|
81
|
+
def available_video
|
82
|
+
create_stats_hash(@data[10])
|
83
|
+
end
|
84
|
+
|
85
|
+
def player_track
|
86
|
+
create_stats_hash(@data[11])
|
87
|
+
end
|
88
|
+
|
89
|
+
def player_track_team
|
90
|
+
create_stats_hash(@data[12])
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class BoxscoreFourFactors < Boxscore
|
4
|
+
@endpoint = 'boxscorefourfactorsv2'
|
5
|
+
|
6
|
+
def endpoint
|
7
|
+
self.class.endpoint
|
8
|
+
end
|
9
|
+
|
10
|
+
def players_four_factors
|
11
|
+
create_stats_hash(@data[13])
|
12
|
+
end
|
13
|
+
|
14
|
+
def team_four_factors
|
15
|
+
create_stats_hash(@data[14])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class BoxscoreMisc < Boxscore
|
4
|
+
@endpoint = 'boxscoremiscv2'
|
5
|
+
|
6
|
+
def endpoint
|
7
|
+
self.class.endpoint
|
8
|
+
end
|
9
|
+
|
10
|
+
def players_misc
|
11
|
+
create_stats_hash(@data[13])
|
12
|
+
end
|
13
|
+
|
14
|
+
def team_misc
|
15
|
+
create_stats_hash(@data[14])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class BoxscoreScoring < Boxscore
|
4
|
+
@endpoint = 'boxscorescoringv2'
|
5
|
+
|
6
|
+
def endpoint
|
7
|
+
self.class.endpoint
|
8
|
+
end
|
9
|
+
|
10
|
+
def matchup
|
11
|
+
scores = players_scoring
|
12
|
+
home_team = scores[0]['TEAM_ABBREVIATION']
|
13
|
+
away_team = scores.last['TEAM_ABBREVIATION']
|
14
|
+
end
|
15
|
+
|
16
|
+
def players_scoring
|
17
|
+
create_stats_hash(@data[13])
|
18
|
+
end
|
19
|
+
|
20
|
+
def team_scoring
|
21
|
+
create_stats_hash(@data[14])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class BoxscoreUsage < Boxscore
|
4
|
+
@endpoint = 'boxscoreusagev2'
|
5
|
+
|
6
|
+
def endpoint
|
7
|
+
self.class.endpoint
|
8
|
+
end
|
9
|
+
|
10
|
+
def players_usage
|
11
|
+
create_stats_hash(@data[13])
|
12
|
+
end
|
13
|
+
|
14
|
+
def team_usage
|
15
|
+
create_stats_hash(@data[14])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class Hustle < BaseClass
|
4
|
+
@endpoint = 'hustlestatsboxscore'
|
5
|
+
|
6
|
+
attr_accessor :game_id
|
7
|
+
|
8
|
+
def initialize(*args)
|
9
|
+
super(*args)
|
10
|
+
|
11
|
+
res = stats_request(endpoint, 'GameID' => game_id)
|
12
|
+
|
13
|
+
@data = res['resultSets']
|
14
|
+
end
|
15
|
+
|
16
|
+
def hustle_stats_available
|
17
|
+
create_stats_hash(@data[0])
|
18
|
+
end
|
19
|
+
|
20
|
+
def hustle_stats_player_box_score
|
21
|
+
create_stats_hash(@data[1])
|
22
|
+
end
|
23
|
+
|
24
|
+
def hustle_stats_team_box_score
|
25
|
+
create_stats_hash(@data[2])
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Game
|
3
|
+
class PlayByPlay < BaseClass
|
4
|
+
include Initializable
|
5
|
+
include StatsRequest
|
6
|
+
include StatsHash
|
7
|
+
|
8
|
+
def initialize(*args)
|
9
|
+
super(*args)
|
10
|
+
|
11
|
+
@start_period ||= NbaRb::Period.default
|
12
|
+
@end_period ||= NbaRb::Period.default
|
13
|
+
|
14
|
+
res = stats_request('playbyplay', 'GameID' => @game_id,
|
15
|
+
'StartPeriod' => start_period,
|
16
|
+
'EndPeriod' => end_period)
|
17
|
+
|
18
|
+
@data = res['resultSets']
|
19
|
+
end
|
20
|
+
|
21
|
+
def info
|
22
|
+
create_stats_hash(@data[0])
|
23
|
+
end
|
24
|
+
|
25
|
+
def available_video
|
26
|
+
create_stats_hash(@data[1])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|