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
@@ -1,197 +1,18 @@
1
- class Boxscore
2
- include Initializable
3
- include StatsRequest
4
- include StatsHash
5
-
6
- @endpoint = 'boxscore'
7
-
8
- class << self
9
- attr_reader :endpoint
10
- end
11
-
12
- def endpoint
13
- self.class.endpoint
14
- end
15
-
16
- attr_accessor :game_id,
17
- :range_type,
18
- :start_period,
19
- :end_period,
20
- :start_range,
21
- :end_range,
22
- :data
23
-
24
- def initialize(*args)
25
- super(*args)
26
-
27
- @range_type ||= RangeType.default
28
- @start_period ||= Period.default
29
- @end_period ||= Period.default
30
- @start_range ||= StartRange.default
31
- @end_range ||= EndRange.default
32
-
33
- res = stats_request(endpoint, 'GameID' => game_id,
34
- 'RangeType' => range_type,
35
- 'StartPeriod' => start_period,
36
- 'EndPeriod' => end_period,
37
- 'StartRange' => start_range,
38
- 'EndRange' => end_range)
39
-
40
- @data = res['resultSets']
41
- end
42
-
43
- def game_summary
44
- create_stats_hash(@data[0])
45
- end
46
-
47
- def line_score
48
- create_stats_hash(@data[1])
49
- end
50
-
51
- def season_series
52
- create_stats_hash(@data[2])
53
- end
54
-
55
- def last_meeting
56
- create_stats_hash(@data[3])
57
- end
58
-
59
- def player_stats
60
- create_stats_hash(@data[4])
61
- end
62
-
63
- def team_stats
64
- create_stats_hash(@data[5])
65
- end
66
-
67
- def other_stats
68
- create_stats_hash(@data[6])
69
- end
70
-
71
- def officials
72
- create_stats_hash(@data[7])
73
- end
74
-
75
- def game_info
76
- create_stats_hash(@data[8])
77
- end
78
-
79
- def inactive_players
80
- create_stats_hash(@data[9])
81
- end
82
-
83
- def available_video
84
- create_stats_hash(@data[10])
85
- end
86
-
87
- def player_track
88
- create_stats_hash(@data[11])
89
- end
90
-
91
- def player_track_team
92
- create_stats_hash(@data[12])
93
- end
94
- end
95
-
96
- class BoxscoreScoring < Boxscore
97
- @endpoint = 'boxscorescoring'
98
-
99
- def endpoint
100
- self.class.endpoint
101
- end
102
-
103
- def sql_players_scoring
104
- create_stats_hash(@data[13])
105
- end
106
-
107
- def sql_team_scoring
108
- create_stats_hash(@data[14])
109
- end
110
- end
111
-
112
- class BoxscoreUsage < Boxscore
113
- @endpoint = 'boxscoreusage'
114
-
115
- def endpoint
116
- self.class.endpoint
117
- end
118
-
119
- def sql_players_usage
120
- create_stats_hash(@data[13])
121
- end
122
-
123
- def sql_team_usage
124
- create_stats_hash(@data[14])
125
- end
126
- end
127
-
128
- class BoxscoreMisc < Boxscore
129
- @endpoint = 'boxscoremisc'
130
-
131
- def endpoint
132
- self.class.endpoint
133
- end
134
-
135
- def sql_players_misc
136
- create_stats_hash(@data[13])
137
- end
138
-
139
- def sql_team_misc
140
- create_stats_hash(@data[14])
141
- end
142
- end
143
-
144
- class BoxscoreAdvanced < Boxscore
145
- @endpoint = 'boxscoreadvanced'
146
-
147
- def sql_players_advanced
148
- create_stats_hash(@data[13])
149
- end
150
-
151
- def sql_team_advanced
152
- create_stats_hash(@data[14])
153
- end
154
- end
155
-
156
- class BoxscoreFourFactors < Boxscore
157
- @endpoint = 'boxscorefourfactors'
158
-
159
- def endpoint
160
- self.class.endpoint
161
- end
162
-
163
- def sql_players_four_factors
164
- create_stats_hash(@data[13])
165
- end
166
-
167
- def sql_team_four_factors
168
- create_stats_hash(@data[14])
169
- end
170
- end
171
-
172
- class PlayByPlay
173
- include Initializable
174
- include StatsRequest
175
- include StatsHash
176
-
177
- def initialize(*args)
178
- super(*args)
179
-
180
- @start_period ||= Period.default
181
- @end_period ||= Period.default
182
-
183
- res = stats_request('playbyplay', 'GameID' => @game_id,
184
- 'StartPeriod' => start_period,
185
- 'EndPeriod' => end_period)
186
-
187
- @data = res['resultSets']
188
- end
189
-
190
- def info
191
- create_stats_hash(@data[0])
192
- end
193
-
194
- def available_video
195
- create_stats_hash(@data[1])
1
+ module NbaRb
2
+ module Game
3
+ class BaseClass
4
+ include StatsHash
5
+ include Initializable
6
+ include StatsRequest
7
+ end
8
+
9
+ require_relative './game/boxscore'
10
+ require_relative './game/boxscore_advanced'
11
+ require_relative './game/boxscore_four_factors'
12
+ require_relative './game/boxscore_misc'
13
+ require_relative './game/boxscore_scoring'
14
+ require_relative './game/boxscore_usage'
15
+ require_relative './game/play_by_play'
16
+ require_relative './game/today_schedule'
196
17
  end
197
18
  end
@@ -0,0 +1,94 @@
1
+ module NbaRb
2
+ module Game
3
+ class Boxscore < BaseClass
4
+ @endpoint = 'boxscoretraditionalv2'
5
+
6
+ class << self
7
+ attr_reader :endpoint
8
+ end
9
+
10
+ def endpoint
11
+ self.class.endpoint
12
+ end
13
+
14
+ attr_accessor :game_id,
15
+ :range_type,
16
+ :start_period,
17
+ :end_period,
18
+ :start_range,
19
+ :end_range,
20
+ :data
21
+
22
+ def initialize(*args)
23
+ super(*args)
24
+
25
+ @range_type ||= NbaRb::RangeType.default
26
+ @start_period ||= NbaRb::Period.default
27
+ @end_period ||= NbaRb::Period.default
28
+ @start_range ||= NbaRb::StartRange.default
29
+ @end_range ||= NbaRb::EndRange.default
30
+
31
+ res = stats_request(endpoint, 'GameID' => game_id,
32
+ 'RangeType' => range_type,
33
+ 'StartPeriod' => start_period,
34
+ 'EndPeriod' => end_period,
35
+ 'StartRange' => start_range,
36
+ 'EndRange' => end_range)
37
+
38
+ @data = res['resultSets']
39
+ end
40
+
41
+ def game_summary
42
+ create_stats_hash(@data[0])
43
+ end
44
+
45
+ def line_score
46
+ create_stats_hash(@data[1])
47
+ end
48
+
49
+ def season_series
50
+ create_stats_hash(@data[2])
51
+ end
52
+
53
+ def last_meeting
54
+ create_stats_hash(@data[3])
55
+ end
56
+
57
+ def player_stats
58
+ create_stats_hash(@data[4])
59
+ end
60
+
61
+ def team_stats
62
+ create_stats_hash(@data[5])
63
+ end
64
+
65
+ def other_stats
66
+ create_stats_hash(@data[6])
67
+ end
68
+
69
+ def officials
70
+ create_stats_hash(@data[7])
71
+ end
72
+
73
+ def game_info
74
+ create_stats_hash(@data[8])
75
+ end
76
+
77
+ def inactive_players
78
+ create_stats_hash(@data[9])
79
+ end
80
+
81
+ def available_video
82
+ create_stats_hash(@data[10])
83
+ end
84
+
85
+ def player_track
86
+ create_stats_hash(@data[11])
87
+ end
88
+
89
+ def player_track_team
90
+ create_stats_hash(@data[12])
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,15 @@
1
+ module NbaRb
2
+ module Game
3
+ class BoxscoreAdvanced < Boxscore
4
+ @endpoint = 'boxscoreadvancedv2'
5
+
6
+ def players_advanced
7
+ create_stats_hash(@data[13])
8
+ end
9
+
10
+ def team_advanced
11
+ create_stats_hash(@data[14])
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module NbaRb
2
+ module Game
3
+ class BoxscoreFourFactors < Boxscore
4
+ @endpoint = 'boxscorefourfactorsv2'
5
+
6
+ def endpoint
7
+ self.class.endpoint
8
+ end
9
+
10
+ def players_four_factors
11
+ create_stats_hash(@data[13])
12
+ end
13
+
14
+ def team_four_factors
15
+ create_stats_hash(@data[14])
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module NbaRb
2
+ module Game
3
+ class BoxscoreMisc < Boxscore
4
+ @endpoint = 'boxscoremiscv2'
5
+
6
+ def endpoint
7
+ self.class.endpoint
8
+ end
9
+
10
+ def players_misc
11
+ create_stats_hash(@data[13])
12
+ end
13
+
14
+ def team_misc
15
+ create_stats_hash(@data[14])
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,25 @@
1
+ module NbaRb
2
+ module Game
3
+ class BoxscoreScoring < Boxscore
4
+ @endpoint = 'boxscorescoringv2'
5
+
6
+ def endpoint
7
+ self.class.endpoint
8
+ end
9
+
10
+ def matchup
11
+ scores = players_scoring
12
+ home_team = scores[0]['TEAM_ABBREVIATION']
13
+ away_team = scores.last['TEAM_ABBREVIATION']
14
+ end
15
+
16
+ def players_scoring
17
+ create_stats_hash(@data[13])
18
+ end
19
+
20
+ def team_scoring
21
+ create_stats_hash(@data[14])
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ module NbaRb
2
+ module Game
3
+ class BoxscoreUsage < Boxscore
4
+ @endpoint = 'boxscoreusagev2'
5
+
6
+ def endpoint
7
+ self.class.endpoint
8
+ end
9
+
10
+ def players_usage
11
+ create_stats_hash(@data[13])
12
+ end
13
+
14
+ def team_usage
15
+ create_stats_hash(@data[14])
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,29 @@
1
+ module NbaRb
2
+ module Game
3
+ class Hustle < BaseClass
4
+ @endpoint = 'hustlestatsboxscore'
5
+
6
+ attr_accessor :game_id
7
+
8
+ def initialize(*args)
9
+ super(*args)
10
+
11
+ res = stats_request(endpoint, 'GameID' => game_id)
12
+
13
+ @data = res['resultSets']
14
+ end
15
+
16
+ def hustle_stats_available
17
+ create_stats_hash(@data[0])
18
+ end
19
+
20
+ def hustle_stats_player_box_score
21
+ create_stats_hash(@data[1])
22
+ end
23
+
24
+ def hustle_stats_team_box_score
25
+ create_stats_hash(@data[2])
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ module NbaRb
2
+ module Game
3
+ class PlayByPlay < BaseClass
4
+ include Initializable
5
+ include StatsRequest
6
+ include StatsHash
7
+
8
+ def initialize(*args)
9
+ super(*args)
10
+
11
+ @start_period ||= NbaRb::Period.default
12
+ @end_period ||= NbaRb::Period.default
13
+
14
+ res = stats_request('playbyplay', 'GameID' => @game_id,
15
+ 'StartPeriod' => start_period,
16
+ 'EndPeriod' => end_period)
17
+
18
+ @data = res['resultSets']
19
+ end
20
+
21
+ def info
22
+ create_stats_hash(@data[0])
23
+ end
24
+
25
+ def available_video
26
+ create_stats_hash(@data[1])
27
+ end
28
+ end
29
+ end
30
+ end