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,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
|