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,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
@@ -0,0 +1,7 @@
1
+ module NbaRb
2
+ module Player
3
+ class ReboundLogTracking < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashptreboundlogs'
5
+ end
6
+ end
7
+ end