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,49 @@
1
+ module NbaRb
2
+ module Team
3
+ class ClutchSplits < Dashboard
4
+ @endpoint = 'teamdashboardbyclutch'
5
+
6
+ # Results in last X minutes <= X points
7
+
8
+ def last5min_deficit_5point
9
+ create_stats_hash(@data[1])
10
+ end
11
+
12
+ def last3min_deficit_5point
13
+ create_stats_hash(@data[2])
14
+ end
15
+
16
+ def last1min_deficit_5point
17
+ create_stats_hash(@data[3])
18
+ end
19
+
20
+ def last30sec_deficit_3point
21
+ create_stats_hash(@data[4])
22
+ end
23
+
24
+ def last10sec_deficit_3point
25
+ create_stats_hash(@data[5])
26
+ end
27
+
28
+ def last5min_plusminus_5point
29
+ # Last 5 minutes +/= 5 points
30
+ create_stats_hash(@data[6])
31
+ end
32
+
33
+ def last3min_plusminus_5point
34
+ # Last 3 minutes +/= 5 points
35
+ create_stats_hash(@data[7])
36
+ end
37
+
38
+ def last1min_plusminus_5point
39
+ # Last 1 minutes +/= 5 points
40
+ create_stats_hash(@data[8])
41
+ end
42
+
43
+ def last30sec_plusminus_5point
44
+ # Last 30 seconds +/= 3 points
45
+ create_stats_hash(@data[9])
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,28 @@
1
+ module NbaRb
2
+ module Team
3
+ class CommonRoster < BaseClass
4
+ attr_accessor :team_id,
5
+ :season,
6
+ :data
7
+
8
+ def initialize(*args)
9
+ super(*args)
10
+
11
+ @season ||= NbaRb::CURRENT_SEASON
12
+
13
+ res = stats_request('commonteamroster', 'TeamID' => team_id,
14
+ 'Season' => season)
15
+
16
+ @data = res['resultSets']
17
+ end
18
+
19
+ def roster
20
+ create_stats_hash(@data[0])
21
+ end
22
+
23
+ def coaches
24
+ create_stats_hash(@data[1])
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,98 @@
1
+ module NbaRb
2
+ module Team
3
+ class Dashboard < BaseClass
4
+ @endpoint = ''
5
+
6
+ class << self
7
+ attr_reader :endpoint
8
+ end
9
+
10
+ def endpoint
11
+ self.class.endpoint
12
+ end
13
+
14
+ attr_accessor :team_id,
15
+ :measure_type,
16
+ :per_mode,
17
+ :plus_minus,
18
+ :pace_adjust,
19
+ :rank,
20
+ :league_id,
21
+ :season,
22
+ :season_type,
23
+ :po_round,
24
+ :outcome,
25
+ :location,
26
+ :month,
27
+ :season_segment,
28
+ :date_from,
29
+ :date_to,
30
+ :opponent_team_id,
31
+ :vs_conference,
32
+ :vs_division,
33
+ :game_segment,
34
+ :period,
35
+ :shot_clock_range,
36
+ :last_n_games,
37
+ :data
38
+
39
+ def initialize(*args)
40
+ super(*args)
41
+
42
+ @endpoint = ''
43
+ @measure_type ||= NbaRb::MeasureType.default
44
+ @per_mode ||= NbaRb::PerMode.default
45
+ @plus_minus ||= NbaRb::PlusMinus.default
46
+ @pace_adjust ||= NbaRb::PaceAdjust.default
47
+ @rank ||= NbaRb::Rank.default
48
+ @league_id ||= NbaRb::League.default
49
+ @season ||= NbaRb::CURRENT_SEASON
50
+ @season_type ||= NbaRb::SeasonType.default
51
+ @po_round ||= NbaRb::PlayoffRound.default
52
+ @outcome ||= NbaRb::Outcome.default
53
+ @location ||= NbaRb::Location.default
54
+ @month ||= NbaRb::Month.default
55
+ @season_segment ||= NbaRb::SeasonSegment.default
56
+ @date_from ||= NbaRb::DateFrom.default
57
+ @date_to ||= NbaRb::DateTo.default
58
+ @opponent_team_id ||= NbaRb::OpponentTeamID.default
59
+ @vs_conference ||= NbaRb::VsConference.default
60
+ @vs_division ||= NbaRb::VsDivision.default
61
+ @game_segment ||= NbaRb::GameSegment.default
62
+ @period ||= NbaRb::Period.default
63
+ @shot_clock_range ||= NbaRb::ShotClockRange.default
64
+ @last_n_games ||= NbaRb::LastNGames.default
65
+
66
+ res = stats_request(endpoint, 'TeamID' => team_id,
67
+ 'MeasureType' => measure_type,
68
+ 'PerMode' => per_mode,
69
+ 'PlusMinus' => plus_minus,
70
+ 'PaceAdjust' => pace_adjust,
71
+ 'Rank' => rank,
72
+ 'LeagueID' => league_id,
73
+ 'Season' => season,
74
+ 'SeasonType' => season_type,
75
+ 'PORound' => po_round,
76
+ 'Outcome' => outcome,
77
+ 'Location' => location,
78
+ 'Month' => month,
79
+ 'SeasonSegment' => season_segment,
80
+ 'DateFrom' => date_from,
81
+ 'DateTo' => date_to,
82
+ 'OpponentTeamID' => opponent_team_id,
83
+ 'VsConference' => vs_conference,
84
+ 'VsDivision' => vs_division,
85
+ 'GameSegment' => game_segment,
86
+ 'Period' => period,
87
+ 'ShotClockRange' => shot_clock_range,
88
+ 'LastNGames' => last_n_games)
89
+
90
+ @data = res['resultSets']
91
+ end
92
+
93
+ def overall
94
+ create_stats_hash(@data[0])
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,27 @@
1
+ module NbaRb
2
+ module Team
3
+ class GameLogs
4
+ attr_accessor :team_id,
5
+ :season,
6
+ :season_type,
7
+ :data
8
+
9
+ def initialize(*args)
10
+ super(*args)
11
+
12
+ @season ||= NbaRb::CURRENT_SEASON
13
+ @season_type ||= NbaRb::SeasonType.default
14
+
15
+ res = stats_request('teamgamelog', 'TeamID' => team_id,
16
+ 'Season' => season,
17
+ 'SeasonType' => season_type)
18
+
19
+ @data = res['resultSets']
20
+ end
21
+
22
+ def info
23
+ create_stats_hash(@data[1])
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module NbaRb
2
+ module Team
3
+ class GeneralSplits < Dashboard
4
+ @endpoint = 'teamdashboardbygeneralsplits'
5
+
6
+ def by_location
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def wins_losses
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def monthly
15
+ create_stats_hash(@data[3])
16
+ end
17
+
18
+ def pre_post_all_star
19
+ create_stats_hash(@data[4])
20
+ end
21
+
22
+ def days_rest
23
+ create_stats_hash(@data[5])
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,23 @@
1
+ module NbaRb
2
+ module Team
3
+ class InGamesSplits < Dashboard
4
+ @endpoint = 'teamdashboardbygamesplits'
5
+
6
+ def by_half
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def by_period
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def by_score_margin
15
+ create_stats_hash(@data[3])
16
+ end
17
+
18
+ def by_actual_margin
19
+ create_stats_hash(@data[4])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,27 @@
1
+ module NbaRb
2
+ module Team
3
+ class LastNGamesSplits < Dashboard
4
+ @endpoint = 'teamdashboardbylastngames'
5
+
6
+ def last_5
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def last_10
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def last_15
15
+ create_stats_hash(@data[3])
16
+ end
17
+
18
+ def last_20
19
+ create_stats_hash(@data[4])
20
+ end
21
+
22
+ def game_number
23
+ create_stats_hash(@data[5])
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,88 @@
1
+ module NbaRb
2
+ module Team
3
+ class Lineups
4
+ attr_accessor :team_id,
5
+ :game_id,
6
+ :group_quantity,
7
+ :season,
8
+ :season_type,
9
+ :measure_type,
10
+ :per_mode,
11
+ :plus_minus,
12
+ :pace_adjust,
13
+ :rank,
14
+ :outcome,
15
+ :location,
16
+ :month,
17
+ :season_segment,
18
+ :date_from,
19
+ :date_to,
20
+ :opponent_team_id,
21
+ :vs_conference,
22
+ :vs_division,
23
+ :game_segment,
24
+ :period,
25
+ :last_n_games,
26
+ :data
27
+
28
+ def initialize(*args)
29
+ super(*args)
30
+
31
+ @game_id ||= ''
32
+ @group_quantity ||= NbaRb::GroupQuantity.default
33
+ @season ||= NbaRb::CURRENT_SEASON
34
+ @season_type ||= NbaRb::SeasonType.default
35
+ @measure_type ||= NbaRb::MeasureType.default
36
+ @per_mode ||= NbaRb::PerMode.default
37
+ @plus_minus ||= NbaRb::PlusMinus.default
38
+ @pace_adjust ||= NbaRb::PaceAdjust.default
39
+ @rank ||= NbaRb::Rank.default
40
+ @outcome ||= NbaRb::Outcome.default
41
+ @location ||= NbaRb::Location.default
42
+ @month ||= NbaRb::Month.default
43
+ @season_segment ||= NbaRb::SeasonSegment.default
44
+ @date_from ||= NbaRb::DateFrom.default
45
+ @date_to ||= NbaRb::DateTo.default
46
+ @opponent_team_id ||= NbaRb::OpponentTeamID.default
47
+ @vs_conference ||= NbaRb::VsConference.default
48
+ @vs_division ||= NbaRb::VsDivision.default
49
+ @game_segment ||= NbaRb::GameSegment.default
50
+ @period ||= NbaRb::Period.default
51
+ @last_n_games ||= NbaRb::LastNGames.default
52
+
53
+ res = stats_request('teamdashlineups', 'GroupQuantity' => group_quantity,
54
+ 'GameID' => game_id,
55
+ 'TeamID' => team_id,
56
+ 'Season' => season,
57
+ 'SeasonType' => season_type,
58
+ 'MeasureType' => measure_type,
59
+ 'PerMode' => per_mode,
60
+ 'PlusMinus' => plus_minus,
61
+ 'PaceAdjust' => pace_adjust,
62
+ 'Rank' => rank,
63
+ 'Outcome' => outcome,
64
+ 'Location' => location,
65
+ 'Month' => month,
66
+ 'SeasonSegment' => season_segment,
67
+ 'DateFrom' => date_from,
68
+ 'DateTo' => date_to,
69
+ 'OpponentTeamID' => opponent_team_id,
70
+ 'VsConference' => vs_conference,
71
+ 'VsDivision' => vs_division,
72
+ 'GameSegment' => game_segment,
73
+ 'Period' => period,
74
+ 'LastNGames' => last_n_games)
75
+
76
+ @data = res['resultSets']
77
+ end
78
+
79
+ def overall
80
+ create_stats_hash(@data[0])
81
+ end
82
+
83
+ def lineups
84
+ create_stats_hash(@data[1])
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,22 @@
1
+ module NbaRb
2
+ module Team
3
+ class List < BaseClass
4
+ attr_accessor :league_id,
5
+ :data
6
+
7
+ def initialize(*args)
8
+ super(*args)
9
+
10
+ @league_id ||= NbaRb::League.NBA
11
+
12
+ res = stats_request('commonteamyears', 'LeagueID' => league_id)
13
+
14
+ @data = res['resultSets']
15
+ end
16
+
17
+ def info
18
+ create_stats_hash(@data[0])
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,19 @@
1
+ module NbaRb
2
+ module Team
3
+ class OpponentSplits < Dashboard
4
+ @endpoint = 'teamdashboardbyopponent'
5
+
6
+ def by_conference
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def by_division
11
+ create_stats_hash(@data[2])
12
+ end
13
+
14
+ def by_opponent
15
+ create_stats_hash(@data[3])
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ module NbaRb
2
+ module Team
3
+ class PassTracking < Dashboard
4
+ @endpoint = 'teamdashptpass'
5
+
6
+ def passes_made
7
+ create_stats_hash(@data[0])
8
+ end
9
+
10
+ def passes_recieved
11
+ create_stats_hash(@data[1])
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module NbaRb
2
+ module Team
3
+ class PerformanceSplits < Dashboard
4
+ @endpoint = 'teamdashboardbyteamperformance'
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