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 < PlayerDashboard
|
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 < PlayerDashboard
|
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 < PlayerDashboard
|
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 < PlayerDashboard
|
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,19 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class Profile < PlayerCareer
|
4
|
+
@endpoint = 'playerprofilev2'
|
5
|
+
|
6
|
+
def season_highs
|
7
|
+
create_stats_hash(@data[10])
|
8
|
+
end
|
9
|
+
|
10
|
+
def career_highs
|
11
|
+
create_stats_hash(@data[11])
|
12
|
+
end
|
13
|
+
|
14
|
+
def next_game
|
15
|
+
create_stats_hash(@data[12])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class ShootingSplits < PlayerDashboard
|
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,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,132 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class VsPlayer
|
4
|
+
include Initializable
|
5
|
+
include StatsRequest
|
6
|
+
include StatsHash
|
7
|
+
|
8
|
+
attr_accessor :player_id,
|
9
|
+
:vs_player_id,
|
10
|
+
:team_id,
|
11
|
+
:measure_type,
|
12
|
+
:per_mode,
|
13
|
+
:plus_minus,
|
14
|
+
:pace_adjust,
|
15
|
+
:rank,
|
16
|
+
:league_id,
|
17
|
+
:season,
|
18
|
+
:season_type,
|
19
|
+
:po_round,
|
20
|
+
:outcome,
|
21
|
+
:location,
|
22
|
+
:month,
|
23
|
+
:season_segment,
|
24
|
+
:date_from,
|
25
|
+
:date_to,
|
26
|
+
:opponent_team_id,
|
27
|
+
:vs_conference,
|
28
|
+
:vs_division,
|
29
|
+
:game_segment,
|
30
|
+
:period,
|
31
|
+
:shot_clock_range,
|
32
|
+
:last_n_games,
|
33
|
+
:data
|
34
|
+
|
35
|
+
def initialize(*args)
|
36
|
+
super(*args)
|
37
|
+
|
38
|
+
@team_id ||= 0
|
39
|
+
@measure_type ||= NbaRb::MeasureType.default
|
40
|
+
@per_mode ||= NbaRb::PerMode.default
|
41
|
+
@plus_minus ||= NbaRb::PlusMinus.default
|
42
|
+
@pace_adjust ||= NbaRb::PaceAdjust.default
|
43
|
+
@rank ||= NbaRb::PaceAdjust.default
|
44
|
+
@league_id ||= NbaRb::League.default
|
45
|
+
@season ||= NbaRb::CURRENT_SEASON
|
46
|
+
@season_type ||= NbaRb::SeasonType.default
|
47
|
+
@po_round ||= NbaRb::PlayoffRound.default
|
48
|
+
@outcome ||= NbaRb::Outcome.default
|
49
|
+
@location ||= NbaRb::Location.default
|
50
|
+
@month ||= NbaRb::Month.default
|
51
|
+
@season_segment ||= NbaRb::SeasonSegment.default
|
52
|
+
@date_from ||= NbaRb::DateFrom.default
|
53
|
+
@date_to ||= NbaRb::DateTo.default
|
54
|
+
@opponent_team_id ||= NbaRb::OpponentTeamID.default
|
55
|
+
@vs_conference ||= NbaRb::VsConference.default
|
56
|
+
@vs_division ||= NbaRb::VsDivision.default
|
57
|
+
@game_segment ||= NbaRb::GameSegment.default
|
58
|
+
@period ||= NbaRb::Period.default
|
59
|
+
@shot_clock_range ||= NbaRb::ShotClockRange.default
|
60
|
+
@last_n_games ||= NbaRb::LastNGames.default
|
61
|
+
|
62
|
+
res = stats_request('playervsplayer', 'PlayerID' => player_id,
|
63
|
+
'VsPlayerID' => vs_player_id,
|
64
|
+
'TeamID' => team_id,
|
65
|
+
'MeasureType' => measure_type,
|
66
|
+
'PerMode' => per_mode,
|
67
|
+
'PlusMinus' => plus_minus,
|
68
|
+
'PaceAdjust' => pace_adjust,
|
69
|
+
'Rank' => rank,
|
70
|
+
'LeagueID' => league_id,
|
71
|
+
'Season' => season,
|
72
|
+
'SeasonType' => season_type,
|
73
|
+
'PORound' => po_round,
|
74
|
+
'Outcome' => outcome,
|
75
|
+
'Location' => location,
|
76
|
+
'Month' => month,
|
77
|
+
'SeasonSegment' => season_segment,
|
78
|
+
'DateFrom' => date_from,
|
79
|
+
'DateTo' => date_to,
|
80
|
+
'OpponentTeamID' => opponent_team_id,
|
81
|
+
'VsConference' => vs_conference,
|
82
|
+
'VsDivision' => vs_division,
|
83
|
+
'GameSegment' => game_segment,
|
84
|
+
'Period' => period,
|
85
|
+
'ShotClockRange' => shot_clock_range,
|
86
|
+
'LastNGames' => last_n_games)
|
87
|
+
|
88
|
+
@data = res['resultSets']
|
89
|
+
end
|
90
|
+
|
91
|
+
def overall
|
92
|
+
create_stats_hash(@data[0])
|
93
|
+
end
|
94
|
+
|
95
|
+
def on_off_court
|
96
|
+
create_stats_hash(@data[1])
|
97
|
+
end
|
98
|
+
|
99
|
+
def shot_distance_overall
|
100
|
+
create_stats_hash(@data[2])
|
101
|
+
end
|
102
|
+
|
103
|
+
def shot_distance_on_court
|
104
|
+
create_stats_hash(@data[3])
|
105
|
+
end
|
106
|
+
|
107
|
+
def shot_distance_off_court
|
108
|
+
create_stats_hash(@data[4])
|
109
|
+
end
|
110
|
+
|
111
|
+
def shot_area_overall
|
112
|
+
create_stats_hash(@data[5])
|
113
|
+
end
|
114
|
+
|
115
|
+
def shot_area_on_court
|
116
|
+
create_stats_hash(@data[6])
|
117
|
+
end
|
118
|
+
|
119
|
+
def shot_area_off_court
|
120
|
+
create_stats_hash(@data[7])
|
121
|
+
end
|
122
|
+
|
123
|
+
def player_info
|
124
|
+
create_stats_hash(@data[8])
|
125
|
+
end
|
126
|
+
|
127
|
+
def vs_player_info
|
128
|
+
create_stats_hash(@data[9])
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class YearOverYearSplits < PlayerDashboard
|
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
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module NbaRb
|
2
|
+
module Player
|
3
|
+
class Profile < NbaRb::Player::Career
|
4
|
+
@endpoint = 'playerprofilev2'
|
5
|
+
|
6
|
+
def season_highs
|
7
|
+
create_stats_hash(@data[10])
|
8
|
+
end
|
9
|
+
|
10
|
+
def career_highs
|
11
|
+
create_stats_hash(@data[11])
|
12
|
+
end
|
13
|
+
|
14
|
+
def next_game
|
15
|
+
create_stats_hash(@data[12])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|