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