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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +107 -0
  3. data/fixtures/vcr_cassettes/has_working_BoxscoreAdvanced_endpoint.yml +85 -0
  4. data/fixtures/vcr_cassettes/has_working_BoxscoreFourFactors_endpoint.yml +85 -0
  5. data/fixtures/vcr_cassettes/has_working_BoxscoreScoring_endpoint.yml +85 -0
  6. data/fixtures/vcr_cassettes/has_working_BoxscoreUsage_endpoint.yml +85 -0
  7. data/fixtures/vcr_cassettes/has_working_Boxscore_endpoint.yml +85 -0
  8. data/fixtures/vcr_cassettes/has_working_PlayerCareer_endpoint.yml +59 -0
  9. data/fixtures/vcr_cassettes/has_working_PlayerList_endpoint.yml +184 -0
  10. data/fixtures/vcr_cassettes/has_working_PlayerSummary_endpoint.yml +61 -0
  11. data/lib/helpers/stats_request.rb +8 -4
  12. data/lib/nba_rb.rb +1 -1
  13. data/lib/nba_rb/constants.rb +279 -277
  14. data/lib/nba_rb/game.rb +16 -195
  15. data/lib/nba_rb/game/boxscore.rb +94 -0
  16. data/lib/nba_rb/game/boxscore_advanced.rb +15 -0
  17. data/lib/nba_rb/game/boxscore_four_factors.rb +19 -0
  18. data/lib/nba_rb/game/boxscore_misc.rb +19 -0
  19. data/lib/nba_rb/game/boxscore_scoring.rb +25 -0
  20. data/lib/nba_rb/game/boxscore_usage.rb +19 -0
  21. data/lib/nba_rb/game/hustle.rb +29 -0
  22. data/lib/nba_rb/game/play_by_play.rb +30 -0
  23. data/lib/nba_rb/game/today_schedule.rb +63 -0
  24. data/lib/nba_rb/player.rb +75 -921
  25. data/lib/nba_rb/player/career.rb +111 -0
  26. data/lib/nba_rb/player/clutch_splits.rb +70 -0
  27. data/lib/nba_rb/player/dashboard.rb +104 -0
  28. data/lib/nba_rb/player/defense_tracking.rb +7 -0
  29. data/lib/nba_rb/player/game_logs.rb +34 -0
  30. data/lib/nba_rb/player/general_splits.rb +123 -0
  31. data/lib/nba_rb/player/in_game_splits.rb +55 -0
  32. data/lib/nba_rb/player/last_n_games_splits.rb +27 -0
  33. data/lib/nba_rb/player/list.rb +32 -0
  34. data/lib/nba_rb/player/opponent_splits.rb +39 -0
  35. data/lib/nba_rb/player/pass_tracking.rb +15 -0
  36. data/lib/nba_rb/player/performance_splits.rb +19 -0
  37. data/lib/nba_rb/player/player_dashboard.rb +104 -0
  38. data/lib/nba_rb/player/player_game_logs.rb +34 -0
  39. data/lib/nba_rb/player/player_general_splits.rb +123 -0
  40. data/lib/nba_rb/player/player_in_game_splits.rb +55 -0
  41. data/lib/nba_rb/player/player_last_n_games_splits.rb +27 -0
  42. data/lib/nba_rb/player/player_list.rb +32 -0
  43. data/lib/nba_rb/player/player_opponent_splits.rb +39 -0
  44. data/lib/nba_rb/player/player_performance_splits.rb +19 -0
  45. data/lib/nba_rb/player/player_profile.rb +19 -0
  46. data/lib/nba_rb/player/player_shooting_splits.rb +35 -0
  47. data/lib/nba_rb/player/player_summary.rb +29 -0
  48. data/lib/nba_rb/player/player_vs_player.rb +132 -0
  49. data/lib/nba_rb/player/player_year_over_year_splits.rb +17 -0
  50. data/lib/nba_rb/player/profile.rb +19 -0
  51. data/lib/nba_rb/player/rebound_log_tracking.rb +7 -0
  52. data/lib/nba_rb/player/rebound_tracking.rb +23 -0
  53. data/lib/nba_rb/player/shooting_splits.rb +35 -0
  54. data/lib/nba_rb/player/shot_log_tracking.rb +7 -0
  55. data/lib/nba_rb/player/shot_tracking.rb +31 -0
  56. data/lib/nba_rb/player/summary.rb +29 -0
  57. data/lib/nba_rb/player/year_over_year_splits.rb +17 -0
  58. data/lib/nba_rb/team.rb +31 -725
  59. data/lib/nba_rb/team/clutch_splits.rb +49 -0
  60. data/lib/nba_rb/team/common_roster.rb +28 -0
  61. data/lib/nba_rb/team/dashboard.rb +98 -0
  62. data/lib/nba_rb/team/game_logs.rb +27 -0
  63. data/lib/nba_rb/team/general_splits.rb +27 -0
  64. data/lib/nba_rb/team/in_game_splits.rb +23 -0
  65. data/lib/nba_rb/team/last_n_games_splits.rb +27 -0
  66. data/lib/nba_rb/team/lineups.rb +88 -0
  67. data/lib/nba_rb/team/list.rb +22 -0
  68. data/lib/nba_rb/team/opponent_splits.rb +19 -0
  69. data/lib/nba_rb/team/pass_tracking.rb +15 -0
  70. data/lib/nba_rb/team/performance_splits.rb +19 -0
  71. data/lib/nba_rb/team/player_on_off_detail.rb +15 -0
  72. data/lib/nba_rb/team/player_on_off_summary.rb +15 -0
  73. data/lib/nba_rb/team/players.rb +11 -0
  74. data/lib/nba_rb/team/rebound_tracking.rb +23 -0
  75. data/lib/nba_rb/team/seasons.rb +26 -0
  76. data/lib/nba_rb/team/shooting_splits.rb +35 -0
  77. data/lib/nba_rb/team/shot_tracking.rb +27 -0
  78. data/lib/nba_rb/team/stats.rb +17 -0
  79. data/lib/nba_rb/team/summary.rb +34 -0
  80. data/lib/nba_rb/team/vs_player.rb +121 -0
  81. data/lib/nba_rb/team/year_over_year_splits.rb +11 -0
  82. data/lib/nba_rb/version.rb +1 -1
  83. data/nba_rb.gemspec +2 -0
  84. 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,7 @@
1
+ module NbaRb
2
+ module Player
3
+ class DefenseTracking < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashptshotdefend'
5
+ end
6
+ end
7
+ 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