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 < NbaRb::Player::Dashboard
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 < NbaRb::Player::Dashboard
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 < NbaRb::Player::Dashboard
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,15 @@
1
+ module NbaRb
2
+ module Player
3
+ class PassTracking < NbaRb::Player::Dashboard
4
+ @endpoint = 'playerdashptpass'
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 Player
3
+ class PerformanceSplits < NbaRb::Player::Dashboard
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,104 @@
1
+ module NbaRb
2
+ module Player
3
+ class Dashboard
4
+ include Initializable
5
+ include StatsRequest
6
+ include StatsHash
7
+
8
+ class << self
9
+ attr_reader :endpoint
10
+ end
11
+
12
+ def endpoint
13
+ self.class.endpoint
14
+ end
15
+
16
+ attr_accessor :player_id,
17
+ :team_id,
18
+ :measure_type,
19
+ :per_mode,
20
+ :plus_minus,
21
+ :pace_adjust,
22
+ :rank,
23
+ :league_id,
24
+ :season,
25
+ :season_type,
26
+ :po_round,
27
+ :outcome,
28
+ :location,
29
+ :month,
30
+ :season_segment,
31
+ :date_from,
32
+ :date_to,
33
+ :opponent_team_id,
34
+ :vs_conference,
35
+ :vs_division,
36
+ :game_segment,
37
+ :period,
38
+ :shot_clock_range,
39
+ :last_n_games,
40
+ :data
41
+
42
+ @endpoint = ''
43
+
44
+ def initialize(*args)
45
+ super(*args)
46
+
47
+ @team_id ||= 0
48
+ @measure_type ||= NbaRb::MeasureType.default
49
+ @per_mode ||= NbaRb::PerMode.default
50
+ @plus_minus ||= NbaRb::PlusMinus.default
51
+ @pace_adjust ||= NbaRb::PaceAdjust.default
52
+ @rank ||= NbaRb::PaceAdjust.default
53
+ @league_id ||= NbaRb::League.default
54
+ @season ||= NbaRb::CURRENT_SEASON
55
+ @season_type ||= NbaRb::SeasonType.default
56
+ @po_round ||= NbaRb::PlayoffRound.default
57
+ @outcome ||= NbaRb::Outcome.default
58
+ @location ||= NbaRb::Location.default
59
+ @month ||= NbaRb::Month.default
60
+ @season_segment ||= NbaRb::SeasonSegment.default
61
+ @date_from ||= NbaRb::DateFrom.default
62
+ @date_to ||= NbaRb::DateTo.default
63
+ @opponent_team_id ||= NbaRb::OpponentTeamID.default
64
+ @vs_conference ||= NbaRb::VsConference.default
65
+ @vs_division ||= NbaRb::VsDivision.default
66
+ @game_segment ||= NbaRb::GameSegment.default
67
+ @period ||= NbaRb::Period.default
68
+ @shot_clock_range ||= NbaRb::ShotClockRange.default
69
+ @last_n_games ||= NbaRb::LastNGames.default
70
+
71
+ res = stats_request(endpoint, 'PlayerID' => player_id,
72
+ 'TeamID' => team_id,
73
+ 'MeasureType' => measure_type,
74
+ 'PerMode' => per_mode,
75
+ 'PlusMinus' => plus_minus,
76
+ 'PaceAdjust' => pace_adjust,
77
+ 'Rank' => rank,
78
+ 'LeagueID' => league_id,
79
+ 'Season' => season,
80
+ 'SeasonType' => season_type,
81
+ 'PORound' => po_round,
82
+ 'Outcome' => outcome,
83
+ 'Location' => location,
84
+ 'Month' => month,
85
+ 'SeasonSegment' => season_segment,
86
+ 'DateFrom' => date_from,
87
+ 'DateTo' => date_to,
88
+ 'OpponentTeamID' => opponent_team_id,
89
+ 'VsConference' => vs_conference,
90
+ 'VsDivision' => vs_division,
91
+ 'GameSegment' => game_segment,
92
+ 'Period' => period,
93
+ 'ShotClockRange' => shot_clock_range,
94
+ 'LastNGames' => last_n_games)
95
+
96
+ @data = res['resultSets']
97
+ end
98
+
99
+ def overall
100
+ create_stats_hash(@data[0])
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,34 @@
1
+ module NbaRb
2
+ module Player
3
+ class GameLogs
4
+ include Initializable
5
+ include StatsRequest
6
+ include StatsHash
7
+
8
+ attr_accessor :player_id,
9
+ :league_id,
10
+ :season,
11
+ :season_type,
12
+ :data
13
+
14
+ def initialize(*args)
15
+ super(*args)
16
+
17
+ @league_id ||= NbaRb::League.NBA
18
+ @season ||= NbaRb::CURRENT_SEASON
19
+ @season_type ||= NbaRb::SeasonType.regular
20
+
21
+ res = stats_request('playergamelog', 'PlayerID' => player_id,
22
+ 'LeagueID' => league_id,
23
+ 'Season' => season,
24
+ 'SeasonType' => season_type)
25
+
26
+ @data = res['resultSets']
27
+ end
28
+
29
+ def info
30
+ create_stats_hash(@data[0])
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,123 @@
1
+ module NbaRb
2
+ module Player
3
+ class GeneralSplits < PlayerDashboard
4
+ @endpoint = 'playerdashboardbygeneralsplits'
5
+
6
+ def location
7
+ create_stats_hash(@data[1])
8
+ end
9
+
10
+ def home
11
+ location[0]
12
+ end
13
+
14
+ def away
15
+ location[1]
16
+ end
17
+
18
+ def win_losses
19
+ create_stats_hash(@data[2])
20
+ end
21
+
22
+ def in_wins
23
+ win_losses[0]
24
+ end
25
+
26
+ def in_losses
27
+ win_losses[1]
28
+ end
29
+
30
+ def by_month
31
+ create_stats_hash(@data[3])
32
+ end
33
+
34
+ def in_october
35
+ by_month[0]
36
+ end
37
+
38
+ def in_november
39
+ by_month[1]
40
+ end
41
+
42
+ def in_december
43
+ by_month[2]
44
+ end
45
+
46
+ def in_january
47
+ by_month[3]
48
+ end
49
+
50
+ def in_february
51
+ by_month[4]
52
+ end
53
+
54
+ def in_march
55
+ by_month[5]
56
+ end
57
+
58
+ def in_april
59
+ by_month[6]
60
+ end
61
+
62
+ def in_may
63
+ by_month[7]
64
+ end
65
+
66
+ def in_june
67
+ by_month[8]
68
+ end
69
+
70
+ def pre_post_all_star
71
+ create_stats_hash(@data[4])
72
+ end
73
+
74
+ def pre_all_star
75
+ pre_post_all_star[0]
76
+ end
77
+
78
+ def post_all_star
79
+ pre_post_all_star[1]
80
+ end
81
+
82
+ def starting_position
83
+ create_stats_hash(@data[5])
84
+ end
85
+
86
+ def as_starter
87
+ starting_position[0]
88
+ end
89
+
90
+ def as_bench
91
+ starting_position[1]
92
+ end
93
+
94
+ def days_rest
95
+ create_stats_hash(@data[6])
96
+ end
97
+
98
+ def zero_rest_days
99
+ days_rest[0]
100
+ end
101
+
102
+ def one_rest_day
103
+ days_rest[1]
104
+ end
105
+
106
+ def two_rest_days
107
+ days_rest[2]
108
+ end
109
+
110
+ def three_rest_days
111
+ days_rest[3]
112
+ end
113
+
114
+ def four_rest_days
115
+ days_rest[4]
116
+ end
117
+
118
+ def six_plus_rest_days
119
+ days_rest[5]
120
+ end
121
+ end
122
+ end
123
+ end