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