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