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,55 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class InGameSplits < NbaRb::Player::Dashboard
|
4
|
+
@endpoint = 'playerdashboardbygamesplits'
|
5
|
+
|
6
|
+
def by_half
|
7
|
+
create_stats_hash(@data[1])
|
8
|
+
end
|
9
|
+
|
10
|
+
def first_half
|
11
|
+
by_half[0]
|
12
|
+
end
|
13
|
+
|
14
|
+
def second_half
|
15
|
+
by_half[1]
|
16
|
+
end
|
17
|
+
|
18
|
+
def by_period
|
19
|
+
create_stats_hash(@data[2])
|
20
|
+
end
|
21
|
+
|
22
|
+
def first_quarter
|
23
|
+
by_period[0]
|
24
|
+
end
|
25
|
+
|
26
|
+
def second_quarter
|
27
|
+
by_period[1]
|
28
|
+
end
|
29
|
+
|
30
|
+
def third_quarter
|
31
|
+
by_period[2]
|
32
|
+
end
|
33
|
+
|
34
|
+
def fourth_quarter
|
35
|
+
by_period[3]
|
36
|
+
end
|
37
|
+
|
38
|
+
def by_score_margin
|
39
|
+
create_stats_hash(@data[3])
|
40
|
+
end
|
41
|
+
|
42
|
+
def tied_games
|
43
|
+
by_score_margin[0]
|
44
|
+
end
|
45
|
+
|
46
|
+
def close_games
|
47
|
+
by_score_margin[1]
|
48
|
+
end
|
49
|
+
|
50
|
+
def by_actual_margin
|
51
|
+
create_stats_hash(@data[4])
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class LastNGamesSplits < NbaRb::Player::Dashboard
|
4
|
+
@endpoint = 'playerdashboardbylastngames'
|
5
|
+
|
6
|
+
def last5
|
7
|
+
create_stats_hash(@data[1])
|
8
|
+
end
|
9
|
+
|
10
|
+
def last10
|
11
|
+
create_stats_hash(@data[2])
|
12
|
+
end
|
13
|
+
|
14
|
+
def last15
|
15
|
+
create_stats_hash(@data[3])
|
16
|
+
end
|
17
|
+
|
18
|
+
def last20
|
19
|
+
create_stats_hash(@data[4])
|
20
|
+
end
|
21
|
+
|
22
|
+
def gamenumber
|
23
|
+
create_stats_hash(@data[5])
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class List
|
4
|
+
include Initializable
|
5
|
+
include StatsRequest
|
6
|
+
include StatsHash
|
7
|
+
|
8
|
+
attr_accessor :league_id,
|
9
|
+
:season,
|
10
|
+
:only_current,
|
11
|
+
:data
|
12
|
+
|
13
|
+
def initialize(*args)
|
14
|
+
super(*args)
|
15
|
+
|
16
|
+
@league_id ||= NbaRb::League.NBA
|
17
|
+
@season ||= NbaRb::CURRENT_SEASON
|
18
|
+
@only_current ||= 1
|
19
|
+
|
20
|
+
res = stats_request('commonallplayers', 'LeagueID' => league_id,
|
21
|
+
'Season' => season,
|
22
|
+
'IsOnlyCurrentSeason' => only_current)
|
23
|
+
|
24
|
+
@data = res['resultSets']
|
25
|
+
end
|
26
|
+
|
27
|
+
def info
|
28
|
+
@data[0]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class OpponentSplits < NbaRb::Player::Dashboard
|
4
|
+
@endpoint = 'playerdashboardbyopponent'
|
5
|
+
|
6
|
+
def by_conference
|
7
|
+
create_stats_hash(@data[1])
|
8
|
+
end
|
9
|
+
|
10
|
+
def vs_east
|
11
|
+
by_conference[0]
|
12
|
+
end
|
13
|
+
|
14
|
+
def vs_west
|
15
|
+
by_conference[1]
|
16
|
+
end
|
17
|
+
|
18
|
+
def by_division
|
19
|
+
create_stats_hash(@data[2])
|
20
|
+
end
|
21
|
+
|
22
|
+
def vs_division(division)
|
23
|
+
by_division.each do |hash|
|
24
|
+
return hash if hash['GROUP_VALUE'].downcase.include? division.downcase
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def by_opponent
|
29
|
+
create_stats_hash(@data[3])
|
30
|
+
end
|
31
|
+
|
32
|
+
def vs_team(team)
|
33
|
+
by_opponent.each do |hash|
|
34
|
+
return hash if hash['GROUP_VALUE'].downcase.include? team.downcase
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class PerformanceSplits < NbaRb::Player::Dashboard
|
4
|
+
@endpoint = 'playerdashboardbyteamperformance'
|
5
|
+
|
6
|
+
def score_differential
|
7
|
+
create_stats_hash(@data[1])
|
8
|
+
end
|
9
|
+
|
10
|
+
def points_scored
|
11
|
+
create_stats_hash(@data[2])
|
12
|
+
end
|
13
|
+
|
14
|
+
def points_against
|
15
|
+
create_stats_hash(@data[3])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
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 < PlayerDashboard
|
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
|