nba_stats 0.9.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 (111) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.idea/.name +1 -0
  4. data/.idea/.rakeTasks +7 -0
  5. data/.idea/encodings.xml +5 -0
  6. data/.idea/misc.xml +21 -0
  7. data/.idea/modules.xml +9 -0
  8. data/.idea/nba_stats.iml +43 -0
  9. data/.idea/scopes/scope_settings.xml +5 -0
  10. data/.idea/vcs.xml +7 -0
  11. data/.idea/workspace.xml +782 -0
  12. data/Gemfile +4 -0
  13. data/LICENSE.txt +22 -0
  14. data/README.md +68 -0
  15. data/Rakefile +45 -0
  16. data/lib/nba_stats/client.rb +135 -0
  17. data/lib/nba_stats/configuration.rb +37 -0
  18. data/lib/nba_stats/constants.rb +96 -0
  19. data/lib/nba_stats/discovery/discovery.rb +193 -0
  20. data/lib/nba_stats/errors.rb +9 -0
  21. data/lib/nba_stats/helper.rb +10 -0
  22. data/lib/nba_stats/resources/box_score.rb +35 -0
  23. data/lib/nba_stats/resources/box_score_advanced.rb +38 -0
  24. data/lib/nba_stats/resources/box_score_four_factors.rb +38 -0
  25. data/lib/nba_stats/resources/box_score_misc.rb +38 -0
  26. data/lib/nba_stats/resources/box_score_scoring.rb +38 -0
  27. data/lib/nba_stats/resources/box_score_usage.rb +38 -0
  28. data/lib/nba_stats/resources/common_all_players.rb +23 -0
  29. data/lib/nba_stats/resources/common_player_info.rb +24 -0
  30. data/lib/nba_stats/resources/common_team_roster.rb +24 -0
  31. data/lib/nba_stats/resources/common_team_years.rb +24 -0
  32. data/lib/nba_stats/resources/draft_combine_drill_results.rb +24 -0
  33. data/lib/nba_stats/resources/draft_combine_non_stationary_shooting.rb +24 -0
  34. data/lib/nba_stats/resources/draft_combine_player_anthro.rb +24 -0
  35. data/lib/nba_stats/resources/draft_combine_spot_shooting.rb +24 -0
  36. data/lib/nba_stats/resources/draft_combine_stats.rb +24 -0
  37. data/lib/nba_stats/resources/franchise_history.rb +25 -0
  38. data/lib/nba_stats/resources/home_page_leaders.rb +26 -0
  39. data/lib/nba_stats/resources/league_dash_lineups.rb +24 -0
  40. data/lib/nba_stats/resources/league_dash_player_stats.rb +24 -0
  41. data/lib/nba_stats/resources/play_by_play.rb +25 -0
  42. data/lib/nba_stats/resources/player_career_stats.rb +29 -0
  43. data/lib/nba_stats/resources/player_profile.rb +31 -0
  44. data/lib/nba_stats/resources/resource_base.rb +86 -0
  45. data/lib/nba_stats/resources/scoreboard.rb +29 -0
  46. data/lib/nba_stats/resources/shot_chart_detail.rb +25 -0
  47. data/lib/nba_stats/resources/team_game_log.rb +23 -0
  48. data/lib/nba_stats/resources/team_info_common.rb +24 -0
  49. data/lib/nba_stats/resources/team_year_by_year_stats.rb +24 -0
  50. data/lib/nba_stats/stats/box_score.rb +42 -0
  51. data/lib/nba_stats/stats/box_score_advanced.rb +41 -0
  52. data/lib/nba_stats/stats/box_score_four_factors.rb +41 -0
  53. data/lib/nba_stats/stats/box_score_misc.rb +41 -0
  54. data/lib/nba_stats/stats/box_score_scoring.rb +41 -0
  55. data/lib/nba_stats/stats/box_score_usage.rb +41 -0
  56. data/lib/nba_stats/stats/common_all_players.rb +33 -0
  57. data/lib/nba_stats/stats/common_player_info.rb +33 -0
  58. data/lib/nba_stats/stats/common_team_roster.rb +33 -0
  59. data/lib/nba_stats/stats/common_team_years.rb +26 -0
  60. data/lib/nba_stats/stats/draft_combine_drill_results.rb +29 -0
  61. data/lib/nba_stats/stats/draft_combine_non_stationary_shooting.rb +29 -0
  62. data/lib/nba_stats/stats/draft_combine_player_anthro.rb +29 -0
  63. data/lib/nba_stats/stats/draft_combine_spot_shooting.rb +29 -0
  64. data/lib/nba_stats/stats/draft_combine_stats.rb +29 -0
  65. data/lib/nba_stats/stats/franchise_history.rb +26 -0
  66. data/lib/nba_stats/stats/home_page_leaders.rb +44 -0
  67. data/lib/nba_stats/stats/league_dash_lineups.rb +107 -0
  68. data/lib/nba_stats/stats/league_dash_player_stats.rb +104 -0
  69. data/lib/nba_stats/stats/play_by_play.rb +32 -0
  70. data/lib/nba_stats/stats/player_career_stats.rb +32 -0
  71. data/lib/nba_stats/stats/player_profile.rb +45 -0
  72. data/lib/nba_stats/stats/scoreboard.rb +33 -0
  73. data/lib/nba_stats/stats/shot_chart_detail.rb +95 -0
  74. data/lib/nba_stats/stats/team_game_log.rb +36 -0
  75. data/lib/nba_stats/stats/team_info_common.rb +36 -0
  76. data/lib/nba_stats/stats/team_year_by_year_stats.rb +38 -0
  77. data/lib/nba_stats/version.rb +3 -0
  78. data/lib/nba_stats.rb +8 -0
  79. data/nba_stats.gemspec +28 -0
  80. data/spec/client/box_score_advanced_spec.rb +30 -0
  81. data/spec/client/box_score_four_factors_spec.rb +30 -0
  82. data/spec/client/box_score_misc_spec.rb +30 -0
  83. data/spec/client/box_score_scoring_spec.rb +30 -0
  84. data/spec/client/box_score_spec.rb +30 -0
  85. data/spec/client/box_score_usage_spec.rb +30 -0
  86. data/spec/client/common_all_players_spec.rb +27 -0
  87. data/spec/client/common_player_info_spec.rb +33 -0
  88. data/spec/client/common_team_roster_spec.rb +27 -0
  89. data/spec/client/common_team_years_spec.rb +27 -0
  90. data/spec/client/draft_combine_drill_results_spec.rb +27 -0
  91. data/spec/client/draft_combine_non_stationary_shooting_spec.rb +27 -0
  92. data/spec/client/draft_combine_player_anthro_spec.rb +27 -0
  93. data/spec/client/draft_combine_spot_shooting_spec.rb +27 -0
  94. data/spec/client/draft_combine_stats_spec.rb +27 -0
  95. data/spec/client/franchise_history_spec.rb +30 -0
  96. data/spec/client/home_page_leaders_spec.rb +27 -0
  97. data/spec/client/league_dash_lineups_spec.rb +27 -0
  98. data/spec/client/league_dash_player_stats_spec.rb +27 -0
  99. data/spec/client/play_by_play_spec.rb +30 -0
  100. data/spec/client/player_career_stats_spec.rb +30 -0
  101. data/spec/client/player_profile_spec.rb +30 -0
  102. data/spec/client/scoreboard_spec.rb +30 -0
  103. data/spec/client/shot_chart_detail_spec.rb +27 -0
  104. data/spec/client/team_game_log_spec.rb +27 -0
  105. data/spec/client/team_info_common_spec.rb +30 -0
  106. data/spec/client/team_year_by_year_stats_spec.rb +30 -0
  107. data/spec/client_spec.rb +17 -0
  108. data/spec/configuration_spec.rb +38 -0
  109. data/spec/nba_stats_spec.rb +13 -0
  110. data/spec/spec_helper.rb +21 -0
  111. metadata +268 -0
@@ -0,0 +1,29 @@
1
+ require 'nba_stats/resources/draft_combine_spot_shooting'
2
+
3
+ module NbaStats
4
+
5
+ module DraftCombineSpotShooting
6
+
7
+ # The path of the draftcombinespotshooting API
8
+ DRAFT_COMBINE_SPOT_SHOOTING_PATH = '/stats/draftcombinespotshooting'
9
+
10
+ # Calls the draftcombinespotshooting API and returns a DraftCombineSpotShooting resource.
11
+ #
12
+ # @param season_year [String]
13
+ # @param league_id [String]
14
+ # @return [NbaStats::Resources::DraftCombineSpotShooting]
15
+ def draft_combine_spot_shooting(
16
+ season_year,
17
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
18
+ )
19
+ NbaStats::Resources::DraftCombineSpotShooting.new(
20
+ get(DRAFT_COMBINE_SPOT_SHOOTING_PATH, {
21
+ :LeagueID => league_id,
22
+ :SeasonYear => season_year
23
+ })
24
+ )
25
+ end
26
+
27
+ end # DraftCombineSpotShooting
28
+
29
+ end
@@ -0,0 +1,29 @@
1
+ require 'nba_stats/resources/draft_combine_stats'
2
+
3
+ module NbaStats
4
+
5
+ module DraftCombineStats
6
+
7
+ # The path of the draftcombinestats API
8
+ DRAFT_COMBINE_STATS_PATH = '/stats/draftcombinestats/'
9
+
10
+ # Calls the draftcombinestats API and returns a DraftCombineStats resource.
11
+ #
12
+ # @param season_year [String]
13
+ # @param league_id [String]
14
+ # @return [NbaStats::Resources::DraftCombineStats]
15
+ def draft_combine_stats(
16
+ season_year,
17
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
18
+ )
19
+ NbaStats::Resources::DraftCombineStats.new(
20
+ get(DRAFT_COMBINE_STATS_PATH, {
21
+ :LeagueID => league_id,
22
+ :SeasonYear => season_year
23
+ })
24
+ )
25
+ end
26
+
27
+ end # DraftCombineStats
28
+
29
+ end
@@ -0,0 +1,26 @@
1
+ require 'nba_stats/resources/franchise_history'
2
+
3
+ module NbaStats
4
+
5
+ module FranchiseHistory
6
+
7
+ # The path of the franchisehistory API
8
+ FRANCHISE_HISTORY_PATH = '/stats/franchisehistory'
9
+
10
+ # Calls the franchisehistory API and returns a FranchiseHistory resource.
11
+ #
12
+ # @param league_id [String]
13
+ # @return [NbaStats::Resources::FranchiseHistory]
14
+ def franchise_history(
15
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
16
+ )
17
+ NbaStats::Resources::FranchiseHistory.new(
18
+ get(FRANCHISE_HISTORY_PATH, {
19
+ :LeagueID => league_id
20
+ })
21
+ )
22
+ end
23
+
24
+ end # FranchiseHistory
25
+
26
+ end
@@ -0,0 +1,44 @@
1
+ require 'nba_stats/resources/home_page_leaders'
2
+
3
+ module NbaStats
4
+
5
+ module HomePageLeaders
6
+
7
+ # The path of the homepageleaders API
8
+ HOME_PAGE_LEADERS_PATH = '/stats/homepageleaders'
9
+
10
+ # Calls the homepageleaders API and returns a HomePageLeaders resource.
11
+ #
12
+ # @param season [String]
13
+ # @param season_type [String]
14
+ # @param league_id [String]
15
+ # @param game_scope [String]
16
+ # @param stat_category [String]
17
+ # @param player_scope [String]
18
+ # @param player_or_team [String]
19
+ # @return [NbaStats::Resources::HomePageLeaders]
20
+ def home_page_leaders(
21
+ season,
22
+ game_scope=NbaStats::Constants::GAME_SCOPE_SEASON,
23
+ stat_category=NbaStats::Constants::STAT_CATEGORY_POINTS,
24
+ player_scope=NbaStats::Constants::PLAYER_SCOPE_ALL_PLAYERS,
25
+ player_or_team=NbaStats::Constants::PLAYER_OR_TEAM_PLAYER,
26
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
27
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
28
+ )
29
+ NbaStats::Resources::HomePageLeaders.new(
30
+ get(HOME_PAGE_LEADERS_PATH, {
31
+ :Season => season,
32
+ :SeasonType => season_type,
33
+ :LeagueID => league_id,
34
+ :GameScope => game_scope,
35
+ :StatCategory => stat_category,
36
+ :PlayerScope => player_scope,
37
+ :PlayerOrTeam => player_or_team
38
+ })
39
+ )
40
+ end
41
+
42
+ end # HomePageLeaders
43
+
44
+ end
@@ -0,0 +1,107 @@
1
+ require 'nba_stats/resources/league_dash_lineups'
2
+
3
+ module NbaStats
4
+
5
+ module LeagueDashLineups
6
+
7
+ # The path of the leaguedashlineups API
8
+ LEAGUE_DASH_LINEUPS_PATH = '/stats/leaguedashlineups'
9
+
10
+ # Calls the leaguedashlineups API and returns a LeagueDashLineups resource.
11
+ #
12
+ # @param season [String]
13
+ # @param team_id [Integer]
14
+ # @param group_quantity [Integer]
15
+ # @param measure_type [String]
16
+ # @param per_mode [String]
17
+ # @param plus_minus [String]
18
+ # @param pace_adjust [String]
19
+ # @param rank [String]
20
+ # @param outcome [String]
21
+ # @param location [String]
22
+ # @param month [Integer]
23
+ # @param season_segment [String]
24
+ # @param date_from [Date]
25
+ # @param date_to [Date]
26
+ # @param opponent_team_id [Integer]
27
+ # @param vs_conference [String]
28
+ # @param vs_division [String]
29
+ # @param game_segment [String]
30
+ # @param period [Integer]
31
+ # @param last_n_games [Integer]
32
+ # @param game_scope [String]
33
+ # @param player_experience [Integer]
34
+ # @param player_position [String]
35
+ # @param starter_bench [String]
36
+ # @param season_type [String]
37
+ # @param league_id [String]
38
+ # @return [NbaStats::Resources::LeagueDashLineups]
39
+ def league_dash_lineups(
40
+ season,
41
+ team_id=nil,
42
+ group_quantity=5,
43
+ measure_type=NbaStats::Constants::MEASURE_TYPE_BASE,
44
+ per_mode=NbaStats::Constants::PER_MODE_GAME,
45
+ plus_minus=NbaStats::Constants::NO,
46
+ pace_adjust=NbaStats::Constants::NO,
47
+ rank=NbaStats::Constants::NO,
48
+ outcome=nil,
49
+ location=nil,
50
+ month=0,
51
+ season_segment=nil,
52
+ date_from=nil,
53
+ date_to=nil,
54
+ opponent_team_id=0,
55
+ vs_conference=nil,
56
+ vs_division=nil,
57
+ game_segment=nil,
58
+ period=0,
59
+ last_n_games=0,
60
+ game_scope=nil,
61
+ player_experience=nil,
62
+ player_position=nil,
63
+ starter_bench=nil,
64
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
65
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
66
+ )
67
+ unless date_from.nil?
68
+ date_from = date_from.strftime('%m-%d-%Y')
69
+ end
70
+ unless date_to.nil?
71
+ date_to = date_to.strftime('%m-%d-%Y')
72
+ end
73
+ NbaStats::Resources::LeagueDashLineups.new(
74
+ get(LEAGUE_DASH_LINEUPS_PATH, {
75
+ :Season => season,
76
+ :SeasonType => season_type,
77
+ :LeagueID => league_id,
78
+ :TeamID => team_id,
79
+ :MeasureType => measure_type,
80
+ :PerMode => per_mode,
81
+ :PlusMinus => plus_minus,
82
+ :PaceAdjust => pace_adjust,
83
+ :Rank => rank,
84
+ :Outcome => outcome,
85
+ :Location => location,
86
+ :Month => month,
87
+ :SeasonSegment => season_segment,
88
+ :DateFrom => date_from,
89
+ :DateTo => date_to,
90
+ :OpponentTeamID => opponent_team_id,
91
+ :VsConference => vs_conference,
92
+ :VsDivision => vs_division,
93
+ :GameSegment => game_segment,
94
+ :Period => period,
95
+ :LastNGames => last_n_games,
96
+ :GroupQuantity => group_quantity,
97
+ :GameScope => game_scope,
98
+ :PlayerExperience => player_experience,
99
+ :PlayerPosition => player_position,
100
+ :StarterBench => starter_bench
101
+ })
102
+ )
103
+ end
104
+
105
+ end # LeagueDashLineups
106
+
107
+ end
@@ -0,0 +1,104 @@
1
+ require 'nba_stats/resources/league_dash_player_stats'
2
+
3
+ module NbaStats
4
+
5
+ module LeagueDashPlayerStats
6
+
7
+ # The path of the leaguedashplayerstats API
8
+ LEAGUE_DASH_PLAYER_STATS_PATH = '/stats/leaguedashplayerstats'
9
+
10
+ # Calls the leaguedashplayerstats API and returns a LeagueDashPlayerStats resource.
11
+ #
12
+ # @param season [String]
13
+ # @param measure_type [String]
14
+ # @param per_mode [String]
15
+ # @param plus_minus [String]
16
+ # @param pace_adjust [String]
17
+ # @param rank [String]
18
+ # @param outcome [String]
19
+ # @param location [String]
20
+ # @param month [Integer]
21
+ # @param season_segment [xxxxxxxxxx]
22
+ # @param date_from [Date]
23
+ # @param date_to [Date]
24
+ # @param opponent_team_id [Integer]
25
+ # @param vs_conference [String]
26
+ # @param vs_division [String]
27
+ # @param game_segment [String]
28
+ # @param period [Integer]
29
+ # @param last_n_games [String]
30
+ # @param game_scope [String]
31
+ # @param player_experience [String]
32
+ # @param player_position [String]
33
+ # @param starter_bench [String]
34
+ # @param conf [String]
35
+ # @param season_type [String]
36
+ # @param league_id [String]
37
+ # @return [NbaStats::Resources::LeagueDashPlayerStats]
38
+ def league_dash_player_stats(
39
+ season,
40
+ measure_type=NbaStats::Constants::MEASURE_TYPE_BASE,
41
+ per_mode=NbaStats::Constants::PER_MODE_GAME,
42
+ plus_minus=NbaStats::Constants::NO,
43
+ pace_adjust=NbaStats::Constants::NO,
44
+ rank=NbaStats::Constants::NO,
45
+ outcome=nil,
46
+ location=nil,
47
+ month=0,
48
+ season_segment=nil,
49
+ date_from=nil,
50
+ date_to=nil,
51
+ opponent_team_id=0,
52
+ vs_conference=nil,
53
+ vs_division=nil,
54
+ game_segment=nil,
55
+ period=0,
56
+ last_n_games=0,
57
+ game_scope=nil,
58
+ player_experience=nil,
59
+ player_position=nil,
60
+ starter_bench=nil,
61
+ conf=NbaStats::Constants::CONF_BOTH,
62
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
63
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
64
+ )
65
+ unless date_from.nil?
66
+ date_from = date_from.strftime('%m-%d-%Y')
67
+ end
68
+ unless date_to.nil?
69
+ date_to = date_to.strftime('%m-%d-%Y')
70
+ end
71
+ NbaStats::Resources::LeagueDashPlayerStats.new(
72
+ get(LEAGUE_DASH_PLAYER_STATS_PATH, {
73
+ :Season => season,
74
+ :SeasonType => season_type,
75
+ :LeagueID => league_id,
76
+ :MeasureType => measure_type,
77
+ :PerMode => per_mode,
78
+ :PlusMinus => plus_minus,
79
+ :PaceAdjust => pace_adjust,
80
+ :Rank => rank,
81
+ :Outcome => outcome,
82
+ :Location => location,
83
+ :Month => month,
84
+ :SeasonSegment => season_segment,
85
+ :DateFrom => date_from,
86
+ :DateTo => date_to,
87
+ :OpponentTeamID => opponent_team_id,
88
+ :VsConference => vs_conference,
89
+ :VsDivision => vs_division,
90
+ :GameSegment => game_segment,
91
+ :Period => period,
92
+ :LastNGames => last_n_games,
93
+ :GameScope => game_scope,
94
+ :PlayerExperience => player_experience,
95
+ :PlayerPosition => player_position,
96
+ :StarterBench => starter_bench,
97
+ :Conf => conf
98
+ })
99
+ )
100
+ end
101
+
102
+ end # LeagueDashPlayerStats
103
+
104
+ end
@@ -0,0 +1,32 @@
1
+ require 'nba_stats/resources/play_by_play'
2
+
3
+ module NbaStats
4
+
5
+ module PlayByPlay
6
+
7
+ # The path of the playbyplay API
8
+ PLAY_BY_PLAY_PATH = '/stats/playbyplay'
9
+
10
+ # Calls the playbyplay API and returns a PlayByPlay resource.
11
+ #
12
+ # @param game_id [String]
13
+ # @param start_period [Integer]
14
+ # @param end_period [Integer]
15
+ # @return [NbaStats::Resources::PlayByPlay]
16
+ def play_by_play(
17
+ game_id,
18
+ start_period=0,
19
+ end_period=0
20
+ )
21
+ NbaStats::Resources::PlayByPlay.new(
22
+ get(PLAY_BY_PLAY_PATH, {
23
+ :GameID => game_id,
24
+ :StartPeriod => start_period,
25
+ :EndPeriod => end_period
26
+ })
27
+ )
28
+ end
29
+
30
+ end # PlayByPlay
31
+
32
+ end
@@ -0,0 +1,32 @@
1
+ require 'nba_stats/resources/player_career_stats'
2
+
3
+ module NbaStats
4
+
5
+ module PlayerCareerStats
6
+
7
+ # The path of the playercareerstats API
8
+ PLAYER_CAREER_STATS_PATH = '/stats/playercareerstats'
9
+
10
+ # Calls the playercareerstats API and returns a PlayerCareerStats resource.
11
+ #
12
+ # @param player_id [Integer]
13
+ # @param per_mode [String]
14
+ # @param league_id [String]
15
+ # @return [NbaStats::Resources::PlayerCareerStats]
16
+ def player_career_stats(
17
+ player_id,
18
+ per_mode=NbaStats::Constants::PER_MODE_TOTALS,
19
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
20
+ )
21
+ NbaStats::Resources::PlayerCareerStats.new(
22
+ get(PLAYER_CAREER_STATS_PATH, {
23
+ :PlayerID => player_id,
24
+ :LeagueID => league_id,
25
+ :PerMode => per_mode
26
+ })
27
+ )
28
+ end
29
+
30
+ end # PlayerCareerStats
31
+
32
+ end
@@ -0,0 +1,45 @@
1
+ require 'nba_stats/resources/player_profile'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module PlayerProfile
7
+
8
+ # The path of the playerprofile API
9
+ PLAYER_PROFILE_PATH = '/stats/playerprofile'
10
+
11
+ # Calls the playerprofile API and returns a PlayerProfile resource.
12
+ #
13
+ # @param player_id [Integer]
14
+ # @param season [String]
15
+ # @param graph_start_season [String]
16
+ # @param graph_end_season [String]
17
+ # @param graph_stat [String]
18
+ # @param season_type [String]
19
+ # @param league_id [String]
20
+ # @return [NbaStats::Resources::PlayerProfile]
21
+ def player_profile(
22
+ player_id,
23
+ season,
24
+ graph_start_season,
25
+ graph_end_season,
26
+ graph_stat=NbaStats::Constants::GRAPH_STAT_POINTS,
27
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
28
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
29
+ )
30
+ NbaStats::Resources::PlayerProfile.new(
31
+ get(PLAYER_PROFILE_PATH, {
32
+ :Season => season,
33
+ :SeasonType => season_type,
34
+ :LeagueID => league_id,
35
+ :PlayerID => player_id,
36
+ :GraphStartSeason => graph_start_season,
37
+ :GraphEndSeason => graph_end_season,
38
+ :GraphStat => graph_stat
39
+ })
40
+ )
41
+ end
42
+
43
+ end # PlayerProfile
44
+
45
+ end
@@ -0,0 +1,33 @@
1
+ require 'nba_stats/resources/scoreboard'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module Scoreboard
7
+
8
+ # The path of the scoreboard API
9
+ SCOREBOARD_PATH = '/stats/scoreboard'
10
+
11
+ # Calls the scoreboard API and returns a Scoreboard resource.
12
+ #
13
+ # @param game_date [Date]
14
+ # @param day_offset [Integer]
15
+ # @param league_id [String]
16
+ # @return [NbaStats::Resources::Scoreboard]
17
+ def scoreboard(
18
+ game_date=Date.today,
19
+ day_offset=0,
20
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
21
+ )
22
+ NbaStats::Resources::Scoreboard.new(
23
+ get(SCOREBOARD_PATH, {
24
+ :LeagueID => league_id,
25
+ :GameDate => game_date.strftime('%m-%d-%Y'),
26
+ :DayOffset => day_offset
27
+ })
28
+ )
29
+ end
30
+
31
+ end # Scoreboard
32
+
33
+ end
@@ -0,0 +1,95 @@
1
+ require 'nba_stats/resources/shot_chart_detail'
2
+
3
+ module NbaStats
4
+
5
+ module ShotChartDetail
6
+
7
+ # The path of the shotchartdetail API
8
+ SHOT_CHART_DETAIL_PATH = '/stats/shotchartdetail'
9
+
10
+ # Calls the shotchartdetail API and returns a ShotChartDetail resource.
11
+ #
12
+ # @param season [String]
13
+ # @param team_id [Integer]
14
+ # @param player_id [Integer]
15
+ # @param game_id [String]
16
+ # @param outcome [String]
17
+ # @param location [String]
18
+ # @param month [Integer]
19
+ # @param season_segment [String]
20
+ # @param date_from [Date]
21
+ # @param date_to [Date]
22
+ # @param opponent_team_id [Integer]
23
+ # @param vs_conference [String]
24
+ # @param vs_division [String]
25
+ # @param position [String]
26
+ # @param rookie_year [String]
27
+ # @param game_segment [String]
28
+ # @param period [Integer]
29
+ # @param last_n_games [Integer]
30
+ # @param context_filter [String]
31
+ # @param context_measure [String]
32
+ # @param season_type [String]
33
+ # @param league_id [String]
34
+ # @return [NbaStats::Resources::ShotChartDetail]
35
+ def shot_chart_detail(
36
+ season,
37
+ team_id,
38
+ player_id,
39
+ game_id=nil,
40
+ outcome=nil,
41
+ location=nil,
42
+ month=0,
43
+ season_segment=nil,
44
+ date_from=nil,
45
+ date_to=nil,
46
+ opponent_team_id=0,
47
+ vs_conference=nil,
48
+ vs_division=nil,
49
+ position=nil,
50
+ rookie_year=nil,
51
+ game_segment=nil,
52
+ period=0,
53
+ last_n_games=0,
54
+ context_filter=nil,
55
+ context_measure=NbaStats::Constants::CONTEXT_MEASURE_FG_PCT,
56
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
57
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
58
+ )
59
+ unless date_from.nil?
60
+ date_from = date_from.strftime('%m-%d-%Y')
61
+ end
62
+ unless date_to.nil?
63
+ date_to = date_to.strftime('%m-%d-%Y')
64
+ end
65
+ NbaStats::Resources::ShotChartDetail.new(
66
+ get(SHOT_CHART_DETAIL_PATH, {
67
+ :Season => season,
68
+ :SeasonType => season_type,
69
+ :LeagueID => league_id,
70
+ :TeamID => team_id,
71
+ :PlayerID => player_id,
72
+ :GameID => game_id,
73
+ :Outcome => outcome,
74
+ :Location => location,
75
+ :Month => month,
76
+ :SeasonSegment => season_segment,
77
+ :DateFrom => date_from,
78
+ :DateTo => date_to,
79
+ :OpponentTeamID => opponent_team_id,
80
+ :VsConference => vs_conference,
81
+ :VsDivision => vs_division,
82
+ :Position => position,
83
+ :RookieYear => rookie_year,
84
+ :GameSegment => game_segment,
85
+ :Period => period,
86
+ :LastNGames => last_n_games,
87
+ :ContextFilter => context_filter,
88
+ :ContextMeasure => context_measure
89
+ })
90
+ )
91
+ end
92
+
93
+ end # ShotChartDetail
94
+
95
+ end
@@ -0,0 +1,36 @@
1
+ require 'nba_stats/resources/team_game_log'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module TeamGameLog
7
+
8
+ # The path of the teamgamelog API
9
+ TEAM_GAME_LOG_PATH = '/stats/teamgamelog'
10
+
11
+ # Calls the teamgamelog API and returns a TeamGameLog resource.
12
+ #
13
+ # @param team_id [Integer]
14
+ # @param season [String]
15
+ # @param season_type [String]
16
+ # @param league_id [String]
17
+ # @return [NbaStats::Resources::TeamGameLog]
18
+ def team_game_log(
19
+ team_id,
20
+ season,
21
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
22
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
23
+ )
24
+ NbaStats::Resources::TeamGameLog.new(
25
+ get(TEAM_GAME_LOG_PATH, {
26
+ :Season => season,
27
+ :SeasonType => season_type,
28
+ :LeagueID => league_id,
29
+ :TeamID => team_id
30
+ })
31
+ )
32
+ end
33
+
34
+ end # TeamGameLog
35
+
36
+ end
@@ -0,0 +1,36 @@
1
+ require 'nba_stats/resources/team_info_common'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module TeamInfoCommon
7
+
8
+ # The path of the teaminfocommon API
9
+ TEAM_INFO_COMMON_PATH = '/stats/teaminfocommon'
10
+
11
+ # Calls the teaminfocommon API and returns a TeamInfoCommon resource.
12
+ #
13
+ # @param team_id [Integer]
14
+ # @param season [String]
15
+ # @param season_type [String]
16
+ # @param league_id [String]
17
+ # @return [NbaStats::Resources::TeamInfoCommon]
18
+ def team_info_common(
19
+ team_id,
20
+ season,
21
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
22
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
23
+ )
24
+ NbaStats::Resources::TeamInfoCommon.new(
25
+ get(TEAM_INFO_COMMON_PATH, {
26
+ :Season => season,
27
+ :SeasonType => season_type,
28
+ :LeagueID => league_id,
29
+ :TeamID => team_id
30
+ })
31
+ )
32
+ end
33
+
34
+ end # TeamInfoCommon
35
+
36
+ end
@@ -0,0 +1,38 @@
1
+ require 'nba_stats/resources/team_year_by_year_stats'
2
+
3
+ module NbaStats
4
+
5
+ module TeamYearByYearStats
6
+
7
+ # The path of the teamyearbyyearstats API
8
+ TEAM_YEAR_BY_YEAR_STATS_PATH = '/stats/teamyearbyyearstats'
9
+
10
+ # Calls the teamyearbyyearstats API and returns a TeamYearByYearStats resource.
11
+ #
12
+ # @param team_id [Integer]
13
+ # @param season [String]
14
+ # @param per_mode [String]
15
+ # @param season_type [String]
16
+ # @param league_id [String]
17
+ # @return [NbaStats::Resources::TeamYearByYearStats]
18
+ def team_year_by_year_stats(
19
+ team_id,
20
+ season,
21
+ per_mode=NbaStats::Constants::PER_MODE_TOTALS,
22
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
23
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
24
+ )
25
+ NbaStats::Resources::TeamYearByYearStats.new(
26
+ get(TEAM_YEAR_BY_YEAR_STATS_PATH, {
27
+ :LeagueID => league_id,
28
+ :PerMode => per_mode,
29
+ :SeasonType => season_type,
30
+ :TeamID => team_id,
31
+ :Season => season
32
+ })
33
+ )
34
+ end
35
+
36
+ end # TeamYearByYearStats
37
+
38
+ end