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