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.
- 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,111 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class Career
|
4
|
+
include Initializable
|
5
|
+
include StatsRequest
|
6
|
+
include StatsHash
|
7
|
+
|
8
|
+
class << self
|
9
|
+
attr_reader :endpoint
|
10
|
+
end
|
11
|
+
|
12
|
+
def endpoint
|
13
|
+
self.class.endpoint
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_accessor :player_id,
|
17
|
+
:league_id,
|
18
|
+
:per_mode,
|
19
|
+
:data
|
20
|
+
|
21
|
+
def initialize(*args)
|
22
|
+
super(*args)
|
23
|
+
|
24
|
+
@per_mode ||= NbaRb::PerMode.per_game
|
25
|
+
@league_id ||= NbaRb::League.NBA
|
26
|
+
|
27
|
+
res = stats_request('playercareerstats', 'PlayerID' => player_id,
|
28
|
+
'LeagueID' => league_id,
|
29
|
+
'PerMode' => per_mode)
|
30
|
+
|
31
|
+
@data = res['resultSets']
|
32
|
+
end
|
33
|
+
|
34
|
+
def regular_season_totals
|
35
|
+
create_stats_hash(@data[0])
|
36
|
+
end
|
37
|
+
|
38
|
+
def season_totals_by_year(year)
|
39
|
+
regular_season_totals.each do |hash|
|
40
|
+
return hash if hash['SEASON_ID'].include? year
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def regular_season_career_totals
|
45
|
+
create_stats_hash(@data[1])
|
46
|
+
end
|
47
|
+
|
48
|
+
def post_season_totals
|
49
|
+
create_stats_hash(@data[2])
|
50
|
+
end
|
51
|
+
|
52
|
+
def post_season_totals_by_year(year)
|
53
|
+
post_season_totals.each do |hash|
|
54
|
+
return hash if hash['SEASON_ID'].include? year
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def post_season_career_totals
|
59
|
+
create_stats_hash(@data[3])
|
60
|
+
end
|
61
|
+
|
62
|
+
def all_star_season_totals
|
63
|
+
create_stats_hash(@data[4])
|
64
|
+
end
|
65
|
+
|
66
|
+
def all_star_season_totals_by_year(year)
|
67
|
+
all_star_season_totals.each do |hash|
|
68
|
+
return hash if hash['SEASON_ID'].include? year
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def career_all_star_season_totals
|
73
|
+
create_stats_hash(@data[5])
|
74
|
+
end
|
75
|
+
|
76
|
+
def college_season_totals
|
77
|
+
create_stats_hash(@data[6])
|
78
|
+
end
|
79
|
+
|
80
|
+
def college_season_totals_by_year(year)
|
81
|
+
college_season_totals.each do |hash|
|
82
|
+
return hash if hash['SEASON_ID'].include? year
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def career_college_season_totals
|
87
|
+
create_stats_hash(@data[7])
|
88
|
+
end
|
89
|
+
|
90
|
+
def regular_season_rankings
|
91
|
+
create_stats_hash(@data[8])
|
92
|
+
end
|
93
|
+
|
94
|
+
def regular_season_rankings_by_year(year)
|
95
|
+
regular_season_rankings.each do |hash|
|
96
|
+
return hash if hash['SEASON_ID'].include? year
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def post_season_rankings
|
101
|
+
create_stats_hash(@data[9])
|
102
|
+
end
|
103
|
+
|
104
|
+
def post_season_rankings_by_year(year)
|
105
|
+
post_season_rankings.each do |hash|
|
106
|
+
return hash if hash['SEASON_ID'].include? year
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class ClutchSplits < NbaRb::Player::Dashboard
|
4
|
+
@endpoint = 'playerdashboardbyclutch'
|
5
|
+
|
6
|
+
def last5min_deficit_5point
|
7
|
+
''"
|
8
|
+
Results in last 5 minutes <= 5 points
|
9
|
+
"''
|
10
|
+
create_stats_hash(@data[1])
|
11
|
+
end
|
12
|
+
|
13
|
+
def last3min_deficit_5point
|
14
|
+
''"
|
15
|
+
Results in last 5 minutes <= 5 points
|
16
|
+
"''
|
17
|
+
create_stats_hash(@data[2])
|
18
|
+
end
|
19
|
+
|
20
|
+
def last1min_deficit_5point
|
21
|
+
''"
|
22
|
+
Results in last 5 minutes <= 5 points
|
23
|
+
"''
|
24
|
+
create_stats_hash(@data[3])
|
25
|
+
end
|
26
|
+
|
27
|
+
def last30sec_deficit_3point
|
28
|
+
''"
|
29
|
+
Results in last 5 minutes <= 5 points
|
30
|
+
"''
|
31
|
+
create_stats_hash(@data[4])
|
32
|
+
end
|
33
|
+
|
34
|
+
def last10sec_deficit_3point
|
35
|
+
''"
|
36
|
+
Results in last 5 minutes <= 5 points
|
37
|
+
"''
|
38
|
+
create_stats_hash(@data[5])
|
39
|
+
end
|
40
|
+
|
41
|
+
def last5min_plusminus_5point
|
42
|
+
''"
|
43
|
+
Last 5 minutes +/= 5 points
|
44
|
+
"''
|
45
|
+
create_stats_hash(@data[6])
|
46
|
+
end
|
47
|
+
|
48
|
+
def last3min_plusminus_5point
|
49
|
+
''"
|
50
|
+
Last 3 minutes +/= 5 points
|
51
|
+
"''
|
52
|
+
create_stats_hash(@data[7])
|
53
|
+
end
|
54
|
+
|
55
|
+
def last1min_plusminus_5point
|
56
|
+
''"
|
57
|
+
Last 1 minutes +/= 5 points
|
58
|
+
"''
|
59
|
+
create_stats_hash(@data[8])
|
60
|
+
end
|
61
|
+
|
62
|
+
def last30sec_plusminus_5point
|
63
|
+
''"
|
64
|
+
Last 30 seconds +/= 3 points
|
65
|
+
"''
|
66
|
+
create_stats_hash(@data[9])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class Dashboard
|
4
|
+
include Initializable
|
5
|
+
include StatsRequest
|
6
|
+
include StatsHash
|
7
|
+
|
8
|
+
class << self
|
9
|
+
attr_reader :endpoint
|
10
|
+
end
|
11
|
+
|
12
|
+
def endpoint
|
13
|
+
self.class.endpoint
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_accessor :player_id,
|
17
|
+
:team_id,
|
18
|
+
:measure_type,
|
19
|
+
:per_mode,
|
20
|
+
:plus_minus,
|
21
|
+
:pace_adjust,
|
22
|
+
:rank,
|
23
|
+
:league_id,
|
24
|
+
:season,
|
25
|
+
:season_type,
|
26
|
+
:po_round,
|
27
|
+
:outcome,
|
28
|
+
:location,
|
29
|
+
:month,
|
30
|
+
:season_segment,
|
31
|
+
:date_from,
|
32
|
+
:date_to,
|
33
|
+
:opponent_team_id,
|
34
|
+
:vs_conference,
|
35
|
+
:vs_division,
|
36
|
+
:game_segment,
|
37
|
+
:period,
|
38
|
+
:shot_clock_range,
|
39
|
+
:last_n_games,
|
40
|
+
:data
|
41
|
+
|
42
|
+
@endpoint = ''
|
43
|
+
|
44
|
+
def initialize(*args)
|
45
|
+
super(*args)
|
46
|
+
|
47
|
+
@team_id ||= 0
|
48
|
+
@measure_type ||= NbaRb::MeasureType.default
|
49
|
+
@per_mode ||= NbaRb::PerMode.default
|
50
|
+
@plus_minus ||= NbaRb::PlusMinus.default
|
51
|
+
@pace_adjust ||= NbaRb::PaceAdjust.default
|
52
|
+
@rank ||= NbaRb::PaceAdjust.default
|
53
|
+
@league_id ||= NbaRb::League.default
|
54
|
+
@season ||= NbaRb::CURRENT_SEASON
|
55
|
+
@season_type ||= NbaRb::SeasonType.default
|
56
|
+
@po_round ||= NbaRb::PlayoffRound.default
|
57
|
+
@outcome ||= NbaRb::Outcome.default
|
58
|
+
@location ||= NbaRb::Location.default
|
59
|
+
@month ||= NbaRb::Month.default
|
60
|
+
@season_segment ||= NbaRb::SeasonSegment.default
|
61
|
+
@date_from ||= NbaRb::DateFrom.default
|
62
|
+
@date_to ||= NbaRb::DateTo.default
|
63
|
+
@opponent_team_id ||= NbaRb::OpponentTeamID.default
|
64
|
+
@vs_conference ||= NbaRb::VsConference.default
|
65
|
+
@vs_division ||= NbaRb::VsDivision.default
|
66
|
+
@game_segment ||= NbaRb::GameSegment.default
|
67
|
+
@period ||= NbaRb::Period.default
|
68
|
+
@shot_clock_range ||= NbaRb::ShotClockRange.default
|
69
|
+
@last_n_games ||= NbaRb::LastNGames.default
|
70
|
+
|
71
|
+
res = stats_request(endpoint, 'PlayerID' => player_id,
|
72
|
+
'TeamID' => team_id,
|
73
|
+
'MeasureType' => measure_type,
|
74
|
+
'PerMode' => per_mode,
|
75
|
+
'PlusMinus' => plus_minus,
|
76
|
+
'PaceAdjust' => pace_adjust,
|
77
|
+
'Rank' => rank,
|
78
|
+
'LeagueID' => league_id,
|
79
|
+
'Season' => season,
|
80
|
+
'SeasonType' => season_type,
|
81
|
+
'PORound' => po_round,
|
82
|
+
'Outcome' => outcome,
|
83
|
+
'Location' => location,
|
84
|
+
'Month' => month,
|
85
|
+
'SeasonSegment' => season_segment,
|
86
|
+
'DateFrom' => date_from,
|
87
|
+
'DateTo' => date_to,
|
88
|
+
'OpponentTeamID' => opponent_team_id,
|
89
|
+
'VsConference' => vs_conference,
|
90
|
+
'VsDivision' => vs_division,
|
91
|
+
'GameSegment' => game_segment,
|
92
|
+
'Period' => period,
|
93
|
+
'ShotClockRange' => shot_clock_range,
|
94
|
+
'LastNGames' => last_n_games)
|
95
|
+
|
96
|
+
@data = res['resultSets']
|
97
|
+
end
|
98
|
+
|
99
|
+
def overall
|
100
|
+
create_stats_hash(@data[0])
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class GameLogs
|
4
|
+
include Initializable
|
5
|
+
include StatsRequest
|
6
|
+
include StatsHash
|
7
|
+
|
8
|
+
attr_accessor :player_id,
|
9
|
+
:league_id,
|
10
|
+
:season,
|
11
|
+
:season_type,
|
12
|
+
:data
|
13
|
+
|
14
|
+
def initialize(*args)
|
15
|
+
super(*args)
|
16
|
+
|
17
|
+
@league_id ||= NbaRb::League.NBA
|
18
|
+
@season ||= NbaRb::CURRENT_SEASON
|
19
|
+
@season_type ||= NbaRb::SeasonType.regular
|
20
|
+
|
21
|
+
res = stats_request('playergamelog', 'PlayerID' => player_id,
|
22
|
+
'LeagueID' => league_id,
|
23
|
+
'Season' => season,
|
24
|
+
'SeasonType' => season_type)
|
25
|
+
|
26
|
+
@data = res['resultSets']
|
27
|
+
end
|
28
|
+
|
29
|
+
def info
|
30
|
+
create_stats_hash(@data[0])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class GeneralSplits < NbaRb::Player::Dashboard
|
4
|
+
@endpoint = 'playerdashboardbygeneralsplits'
|
5
|
+
|
6
|
+
def location
|
7
|
+
create_stats_hash(@data[1])
|
8
|
+
end
|
9
|
+
|
10
|
+
def home
|
11
|
+
location[0]
|
12
|
+
end
|
13
|
+
|
14
|
+
def away
|
15
|
+
location[1]
|
16
|
+
end
|
17
|
+
|
18
|
+
def win_losses
|
19
|
+
create_stats_hash(@data[2])
|
20
|
+
end
|
21
|
+
|
22
|
+
def in_wins
|
23
|
+
win_losses[0]
|
24
|
+
end
|
25
|
+
|
26
|
+
def in_losses
|
27
|
+
win_losses[1]
|
28
|
+
end
|
29
|
+
|
30
|
+
def by_month
|
31
|
+
create_stats_hash(@data[3])
|
32
|
+
end
|
33
|
+
|
34
|
+
def in_october
|
35
|
+
by_month[0]
|
36
|
+
end
|
37
|
+
|
38
|
+
def in_november
|
39
|
+
by_month[1]
|
40
|
+
end
|
41
|
+
|
42
|
+
def in_december
|
43
|
+
by_month[2]
|
44
|
+
end
|
45
|
+
|
46
|
+
def in_january
|
47
|
+
by_month[3]
|
48
|
+
end
|
49
|
+
|
50
|
+
def in_february
|
51
|
+
by_month[4]
|
52
|
+
end
|
53
|
+
|
54
|
+
def in_march
|
55
|
+
by_month[5]
|
56
|
+
end
|
57
|
+
|
58
|
+
def in_april
|
59
|
+
by_month[6]
|
60
|
+
end
|
61
|
+
|
62
|
+
def in_may
|
63
|
+
by_month[7]
|
64
|
+
end
|
65
|
+
|
66
|
+
def in_june
|
67
|
+
by_month[8]
|
68
|
+
end
|
69
|
+
|
70
|
+
def pre_post_all_star
|
71
|
+
create_stats_hash(@data[4])
|
72
|
+
end
|
73
|
+
|
74
|
+
def pre_all_star
|
75
|
+
pre_post_all_star[0]
|
76
|
+
end
|
77
|
+
|
78
|
+
def post_all_star
|
79
|
+
pre_post_all_star[1]
|
80
|
+
end
|
81
|
+
|
82
|
+
def starting_position
|
83
|
+
create_stats_hash(@data[5])
|
84
|
+
end
|
85
|
+
|
86
|
+
def as_starter
|
87
|
+
starting_position[0]
|
88
|
+
end
|
89
|
+
|
90
|
+
def as_bench
|
91
|
+
starting_position[1]
|
92
|
+
end
|
93
|
+
|
94
|
+
def days_rest
|
95
|
+
create_stats_hash(@data[6])
|
96
|
+
end
|
97
|
+
|
98
|
+
def zero_rest_days
|
99
|
+
days_rest[0]
|
100
|
+
end
|
101
|
+
|
102
|
+
def one_rest_day
|
103
|
+
days_rest[1]
|
104
|
+
end
|
105
|
+
|
106
|
+
def two_rest_days
|
107
|
+
days_rest[2]
|
108
|
+
end
|
109
|
+
|
110
|
+
def three_rest_days
|
111
|
+
days_rest[3]
|
112
|
+
end
|
113
|
+
|
114
|
+
def four_rest_days
|
115
|
+
days_rest[4]
|
116
|
+
end
|
117
|
+
|
118
|
+
def six_plus_rest_days
|
119
|
+
days_rest[5]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|