nba_stats 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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,86 @@
1
+ require 'nba_stats/helper'
2
+ require 'nba_stats/errors'
3
+
4
+ module NbaStats
5
+
6
+ module Resources
7
+
8
+ class ResourceBase
9
+
10
+ attr_reader :json, :name, :params, :result_sets
11
+
12
+ # Initialize a new ResourceBase object
13
+ #
14
+ # @param resource_json [String]
15
+ # @return [NbaStats::Resources::ResourceBase]
16
+ def initialize(resource_json)
17
+ @json = JSON.parse(resource_json)
18
+ parse_base
19
+ end
20
+
21
+ # Provide the object JSON as a pretty printed string
22
+ #
23
+ # @return [String]
24
+ def to_s
25
+ JSON.pretty_generate(@json)
26
+ end
27
+
28
+ # Must be implemented by sub classes
29
+ #
30
+ # @return [Array]
31
+ def valid_result_sets
32
+ Array.new
33
+ end
34
+
35
+ private
36
+
37
+ # Parse the returned API object.do
38
+ # Initialize instance variables and define accessors.
39
+ def parse_base
40
+ @name = json['resource']
41
+ @params = json['parameters']
42
+ @result_sets = json['resultSets']
43
+
44
+ result_sets.each do |result_set|
45
+ result_set_name = result_set['name'].underscore
46
+ # puts "#{result_set_name}"
47
+ # heads = " "
48
+ # result_set['headers'].each do |h|
49
+ # heads += ":#{h.underscore}, "
50
+ # end
51
+ # puts heads
52
+ if valid_result_sets.include? result_set_name.to_sym
53
+ instance_variable_set "@#{result_set_name}", row_set_to_array_of_hashes(result_set['headers'], result_set['rowSet'])
54
+ singleton_class.class_eval do; attr_accessor result_set_name; end
55
+ else
56
+ raise BadResponseError.new("Unexpected result set name #{result_set_name}.")
57
+ end
58
+ end
59
+ end
60
+
61
+ # Convert a returned API row set into an array of hashes
62
+ #
63
+ # @param headers [Array]
64
+ # @param row_set [Array]
65
+ # @return [Hash]
66
+ def row_set_to_array_of_hashes(headers, row_set)
67
+ result = Array.new
68
+ row_set.each do |row|
69
+ if row.count == headers.count
70
+ row_hash = Hash.new
71
+ headers.zip(row).each do |header, value|
72
+ row_hash[header.underscore.to_sym] = value
73
+ end
74
+ result.push row_hash
75
+ else
76
+ raise BadResponseError.new("Row set header count (#{headers.count}) doesn't match row item count (#{row.count}).")
77
+ end
78
+ end
79
+ result
80
+ end
81
+
82
+ end # ResourceBase
83
+
84
+ end
85
+
86
+ end
@@ -0,0 +1,29 @@
1
+ require 'nba_stats/resources/resource_base'
2
+
3
+ module NbaStats
4
+
5
+ module Resources
6
+
7
+ class Scoreboard < ResourceBase
8
+
9
+ # Array of valid result set names for this resource
10
+ VALID_RESULT_SETS = [
11
+ :game_header, # :game_date_est, :game_sequence, :game_id, :game_status_id, :game_status_text, :gamecode, :home_team_id, :visitor_team_id, :season, :live_period, :live_pc_time, :natl_tv_broadcaster_abbreviation, :live_period_time_bcast, :wh_status
12
+ :line_score, # :game_date_est, :game_sequence, :game_id, :team_id, :team_abbreviation, :team_city_name, :team_wins_losses, :pts_qtr1, :pts_qtr2, :pts_qtr3, :pts_qtr4, :pts_ot1, :pts_ot2, :pts_ot3, :pts_ot4, :pts_ot5, :pts_ot6, :pts_ot7, :pts_ot8, :pts_ot9, :pts_ot10, :pts, :fg_pct, :ft_pct, :fg3_pct, :ast, :reb, :tov
13
+ :series_standings, # :game_id, :home_team_id, :visitor_team_id, :game_date_est, :home_team_wins, :home_team_losses, :series_leader
14
+ :last_meeting, # :game_id, :last_game_id, :last_game_date_est, :last_game_home_team_id, :last_game_home_team_city, :last_game_home_team_name, :last_game_home_team_abbreviation, :last_game_home_team_points, :last_game_visitor_team_id, :last_game_visitor_team_city, :last_game_visitor_team_name, :last_game_visitor_team_city1, :last_game_visitor_team_points
15
+ :east_conf_standings_by_day, # :team_id, :league_id, :season_id, :standingsdate, :conference, :team, :g, :w, :l, :w_pct, :home_record, :road_record
16
+ :west_conf_standings_by_day, # :team_id, :league_id, :season_id, :standingsdate, :conference, :team, :g, :w, :l, :w_pct, :home_record, :road_record
17
+ :available # :game_id, :pt_available
18
+ ].freeze
19
+
20
+ # @return [Array]
21
+ def valid_result_sets
22
+ VALID_RESULT_SETS
23
+ end
24
+
25
+ end # Scoreboard
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,25 @@
1
+ require 'nba_stats/resources/resource_base'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module Resources
7
+
8
+ class ShotChartDetail < ResourceBase
9
+
10
+ # Array of valid result set names for this resource
11
+ VALID_RESULT_SETS = [
12
+ :shot_chart_detail, # :grid_type, :game_id, :game_event_id, :player_id, :player_name, :team_id, :team_name, :period, :minutes_remaining, :seconds_remaining, :event_type, :action_type, :shot_type, :shot_zone_basic, :shot_zone_area, :shot_zone_range, :shot_distance, :loc_x, :loc_y, :shot_attempted_flag, :shot_made_flag,
13
+ :league_averages # :grid_type, :shot_zone_basic, :shot_zone_area, :shot_zone_range, :fga, :fgm, :fg_pct,
14
+ ].freeze
15
+
16
+ # @return [Array]
17
+ def valid_result_sets
18
+ VALID_RESULT_SETS
19
+ end
20
+
21
+ end # ShotChartDetail
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,23 @@
1
+ require 'nba_stats/resources/resource_base'
2
+
3
+ module NbaStats
4
+
5
+ module Resources
6
+
7
+ class TeamGameLog < ResourceBase
8
+
9
+ # Array of valid result set names for this resource
10
+ VALID_RESULT_SETS = [
11
+ :team_game_log #:team_id, :game_id, :game_date, :matchup, :wl, :min, :fgm, :fga, :fg_pct, :fg3_m, :fg3_a, :fg3_pct, :ftm, :fta, :ft_pct, :oreb, :dreb, :reb, :ast, :stl, :blk, :tov, :pf, :pts, :video_available,
12
+ ].freeze
13
+
14
+ # @return [Array]
15
+ def valid_result_sets
16
+ VALID_RESULT_SETS
17
+ end
18
+
19
+ end # TeamGameLog
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,24 @@
1
+ require 'nba_stats/resources/resource_base'
2
+
3
+ module NbaStats
4
+
5
+ module Resources
6
+
7
+ class TeamInfoCommon < ResourceBase
8
+
9
+ # Array of valid result set names for this resource
10
+ VALID_RESULT_SETS = [
11
+ :team_info_common, #:team_id, :season_year, :team_city, :team_name, :team_abbreviation, :team_conference, :team_division, :team_code, :w, :l, :pct, :conf_rank, :div_rank,
12
+ :team_season_ranks #:league_id, :season_id, :team_id, :pts_rank, :pts_pg, :reb_rank, :reb_pg, :ast_rank, :ast_pg, :opp_pts_rank, :opp_pts_pg,
13
+ ].freeze
14
+
15
+ # @return [Array]
16
+ def valid_result_sets
17
+ VALID_RESULT_SETS
18
+ end
19
+
20
+ end # TeamInfoCommon
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'nba_stats/resources/resource_base'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module Resources
7
+
8
+ class TeamYearByYearStats < ResourceBase
9
+
10
+ # Array of valid result set names for this resource
11
+ VALID_RESULT_SETS = [
12
+ :team_stats #:team_id, :team_city, :team_name, :year, :gp, :wins, :losses, :win_pct, :conf_rank, :div_rank, :fgm, :fga, :fg_pct, :fg3_m, :fg3_a, :fg3_pct, :ftm, :fta, :ft_pct, :oreb, :dreb, :reb, :ast, :pf, :stl, :tov, :blk, :pts,
13
+ ].freeze
14
+
15
+ # @return [Array]
16
+ def valid_result_sets
17
+ VALID_RESULT_SETS
18
+ end
19
+
20
+ end # TeamYearByYearStats
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,42 @@
1
+ require 'nba_stats/resources/box_score'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module BoxScore
7
+
8
+ # The path of the boxscore API
9
+ BOX_SCORE_PATH = '/stats/boxscore'
10
+
11
+ # Calls the boxscore API and returns a BoxScore resource.
12
+ #
13
+ # @param game_id [String]
14
+ # @param range_type [Integer]
15
+ # @param start_period [Integer]
16
+ # @param end_period [Integer]
17
+ # @param start_range [Integer]
18
+ # @param end_range [Integer]
19
+ # @return [NbaStats::Resources::BoxScore]
20
+ def box_score(
21
+ game_id,
22
+ range_type=0,
23
+ start_period=0,
24
+ end_period=0,
25
+ start_range=0,
26
+ end_range=0
27
+ )
28
+ NbaStats::Resources::BoxScore.new(
29
+ get(BOX_SCORE_PATH, {
30
+ :GameID => game_id,
31
+ :RangeType => range_type,
32
+ :StartPeriod => start_period,
33
+ :EndPeriod => end_period,
34
+ :StartRange => start_range,
35
+ :EndRange => end_range
36
+ })
37
+ )
38
+ end
39
+
40
+ end # BoxScore
41
+
42
+ end
@@ -0,0 +1,41 @@
1
+ require 'nba_stats/resources/box_score_advanced'
2
+
3
+ module NbaStats
4
+
5
+ module BoxScoreAdvanced
6
+
7
+ # The path of the boxscoreadvanced API
8
+ BOX_SCORE_ADVANCED_PATH = '/stats/boxscoreadvanced'
9
+
10
+ # Calls the boxscoreadvanced API and returns a BoxScoreAdvanced resource.
11
+ #
12
+ # @param game_id [String]
13
+ # @param range_type [Integer]
14
+ # @param start_period [Integer]
15
+ # @param end_period [Integer]
16
+ # @param start_range [Integer]
17
+ # @param end_range [xxxxxxxxxx]
18
+ # @return [NbaStats::Resources::BoxScoreAdvanced]
19
+ def box_score_advanced(
20
+ game_id,
21
+ range_type=0,
22
+ start_period=0,
23
+ end_period=0,
24
+ start_range=0,
25
+ end_range=0
26
+ )
27
+ NbaStats::Resources::BoxScoreAdvanced.new(
28
+ get(BOX_SCORE_ADVANCED_PATH, {
29
+ :GameID => game_id,
30
+ :RangeType => range_type,
31
+ :StartPeriod => start_period,
32
+ :EndPeriod => end_period,
33
+ :StartRange => start_range,
34
+ :EndRange => end_range
35
+ })
36
+ )
37
+ end
38
+
39
+ end # BoxScoreAdvanced
40
+
41
+ end
@@ -0,0 +1,41 @@
1
+ require 'nba_stats/resources/box_score_four_factors'
2
+
3
+ module NbaStats
4
+
5
+ module BoxScoreFourFactors
6
+
7
+ # The path of the boxscorefourfactors API
8
+ BOX_SCORE_FOUR_FACTORS_PATH = '/stats/boxscorefourfactors'
9
+
10
+ # Calls the boxscorefourfactors API and returns a BoxScoreFourFactors resource.
11
+ #
12
+ # @param game_id [String]
13
+ # @param range_type [Integer]
14
+ # @param start_period [Integer]
15
+ # @param end_period [Integer]
16
+ # @param start_range [Integer]
17
+ # @param end_range [Integer]
18
+ # @return [NbaStats::Resources::BoxScoreFourFactors]
19
+ def box_score_four_factors(
20
+ game_id,
21
+ range_type=0,
22
+ start_period=0,
23
+ end_period=0,
24
+ start_range=0,
25
+ end_range=0
26
+ )
27
+ NbaStats::Resources::BoxScoreFourFactors.new(
28
+ get(BOX_SCORE_FOUR_FACTORS_PATH, {
29
+ :GameID => game_id,
30
+ :RangeType => range_type,
31
+ :StartPeriod => start_period,
32
+ :EndPeriod => end_period,
33
+ :StartRange => start_range,
34
+ :EndRange => end_range
35
+ })
36
+ )
37
+ end
38
+
39
+ end # BoxScoreFourFactors
40
+
41
+ end
@@ -0,0 +1,41 @@
1
+ require 'nba_stats/resources/box_score_misc'
2
+
3
+ module NbaStats
4
+
5
+ module BoxScoreMisc
6
+
7
+ # The path of the boxscoremisc API
8
+ BOX_SCORE_MISC_PATH = '/stats/boxscoremisc'
9
+
10
+ # Calls the boxscoremisc API and returns a BoxScoreMisc resource.
11
+ #
12
+ # @param game_id [String]
13
+ # @param range_type [Integer]
14
+ # @param start_period [Integer]
15
+ # @param end_period [Integer]
16
+ # @param start_range [Integer]
17
+ # @param end_range [Integer]
18
+ # @return [NbaStats::Resources::BoxScoreMisc]
19
+ def box_score_misc(
20
+ game_id,
21
+ range_type=0,
22
+ start_period=0,
23
+ end_period=0,
24
+ start_range=0,
25
+ end_range=0
26
+ )
27
+ NbaStats::Resources::BoxScoreMisc.new(
28
+ get(BOX_SCORE_MISC_PATH, {
29
+ :GameID => game_id,
30
+ :RangeType => range_type,
31
+ :StartPeriod => start_period,
32
+ :EndPeriod => end_period,
33
+ :StartRange => start_range,
34
+ :EndRange => end_range
35
+ })
36
+ )
37
+ end
38
+
39
+ end # BoxScoreMisc
40
+
41
+ end
@@ -0,0 +1,41 @@
1
+ require 'nba_stats/resources/box_score_scoring'
2
+
3
+ module NbaStats
4
+
5
+ module BoxScoreScoring
6
+
7
+ # The path of the boxscorescoring API
8
+ BOX_SCORE_SCORING_PATH = '/stats/boxscorescoring'
9
+
10
+ # Calls the boxscorescoring API and returns a BoxScoreScoring resource.
11
+ #
12
+ # @param game_id [String]
13
+ # @param range_type [Integer]
14
+ # @param start_period [Integer]
15
+ # @param end_period [Integer]
16
+ # @param start_range [Integer]
17
+ # @param end_range [Integer]
18
+ # @return [NbaStats::Resources::BoxScoreScoring]
19
+ def box_score_scoring(
20
+ game_id,
21
+ range_type=0,
22
+ start_period=0,
23
+ end_period=0,
24
+ start_range=0,
25
+ end_range=0
26
+ )
27
+ NbaStats::Resources::BoxScoreScoring.new(
28
+ get(BOX_SCORE_SCORING_PATH, {
29
+ :GameID => game_id,
30
+ :RangeType => range_type,
31
+ :StartPeriod => start_period,
32
+ :EndPeriod => end_period,
33
+ :StartRange => start_range,
34
+ :EndRange => end_range
35
+ })
36
+ )
37
+ end
38
+
39
+ end # BoxScoreScoring
40
+
41
+ end
@@ -0,0 +1,41 @@
1
+ require 'nba_stats/resources/box_score_usage'
2
+
3
+ module NbaStats
4
+
5
+ module BoxScoreUsage
6
+
7
+ # The path of the boxscoreusage API
8
+ BOX_SCORE_USAGE_PATH = '/stats/boxscoreusage'
9
+
10
+ # Calls the boxscoreusage API and returns a BoxScoreUsage resource.
11
+ #
12
+ # @param game_id [String]
13
+ # @param range_type [Integer]
14
+ # @param start_period [Integer]
15
+ # @param end_period [Integer]
16
+ # @param start_range [Integer]
17
+ # @param end_range [Integer]
18
+ # @return [NbaStats::Resources::BoxScoreUsage]
19
+ def box_score_usage(
20
+ game_id,
21
+ range_type=0,
22
+ start_period=0,
23
+ end_period=0,
24
+ start_range=0,
25
+ end_range=0
26
+ )
27
+ NbaStats::Resources::BoxScoreUsage.new(
28
+ get(BOX_SCORE_USAGE_PATH, {
29
+ :GameID => game_id,
30
+ :RangeType => range_type,
31
+ :StartPeriod => start_period,
32
+ :EndPeriod => end_period,
33
+ :StartRange => start_range,
34
+ :EndRange => end_range
35
+ })
36
+ )
37
+ end
38
+
39
+ end # BoxScoreUsage
40
+
41
+ end
@@ -0,0 +1,33 @@
1
+ require 'nba_stats/resources/common_all_players'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module CommonAllPlayers
7
+
8
+ # The path of the commonallplayers API
9
+ COMMON_ALL_PLAYERS_PATH = '/stats/commonallplayers'
10
+
11
+ # Calls the commonallplayers API and returns a CommonAllPlayers resource.
12
+ #
13
+ # @param season [String]
14
+ # @param is_only_current_season [Integer]
15
+ # @param league_id [String]
16
+ # @return [NbaStats::Resources::CommonAllPlayers]
17
+ def common_all_players(
18
+ season,
19
+ is_only_current_season=0,
20
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
21
+ )
22
+ NbaStats::Resources::CommonAllPlayers.new(
23
+ get(COMMON_ALL_PLAYERS_PATH, {
24
+ :LeagueID => league_id,
25
+ :Season => season,
26
+ :IsOnlyCurrentSeason => is_only_current_season
27
+ })
28
+ )
29
+ end
30
+
31
+ end # CommonAllPlayers
32
+
33
+ end
@@ -0,0 +1,33 @@
1
+ require 'nba_stats/resources/common_player_info'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module CommonPlayerInfo
7
+
8
+ # The path of the commonplayerinfo API
9
+ COMMON_PLAYER_INFO_PATH = '/stats/commonplayerinfo'
10
+
11
+ # Calls the commonplayerinfo API and returns a CommonPlayerInfo resource.
12
+ #
13
+ # @param player_id [Integer]
14
+ # @param season_type [String]
15
+ # @param league_id [String]
16
+ # @return [NbaStats::Resources::CommonPlayerInfo]
17
+ def common_player_info(
18
+ player_id,
19
+ season_type=NbaStats::Constants::SEASON_TYPE_REGULAR,
20
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
21
+ )
22
+ NbaStats::Resources::CommonPlayerInfo.new(
23
+ get(COMMON_PLAYER_INFO_PATH, {
24
+ :PlayerID => player_id,
25
+ :SeasonType => season_type,
26
+ :LeagueID => league_id
27
+ })
28
+ )
29
+ end
30
+
31
+ end # CommonPlayerInfo
32
+
33
+ end
@@ -0,0 +1,33 @@
1
+ require 'nba_stats/resources/common_team_roster'
2
+ require 'nba_stats/constants'
3
+
4
+ module NbaStats
5
+
6
+ module CommonTeamRoster
7
+
8
+ # The path of the commonteamroster API
9
+ COMMON_TEAM_ROSTER_PATH = '/stats/commonteamroster'
10
+
11
+ # Calls the commonteamroster API and returns a CommonTeamRoster resource.
12
+ #
13
+ # @param team_id [Integer]
14
+ # @param season [String]
15
+ # @param league_id [String]
16
+ # @return [NbaStats::Resources::CommonTeamRoster]
17
+ def common_team_roster(
18
+ team_id,
19
+ season,
20
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
21
+ )
22
+ NbaStats::Resources::CommonTeamRoster.new(
23
+ get(COMMON_TEAM_ROSTER_PATH, {
24
+ :Season => season,
25
+ :LeagueID => league_id,
26
+ :TeamID => team_id
27
+ })
28
+ )
29
+ end
30
+
31
+ end # CommonTeamRoster
32
+
33
+ end
@@ -0,0 +1,26 @@
1
+ require 'nba_stats/resources/common_team_years'
2
+
3
+ module NbaStats
4
+
5
+ module CommonTeamYears
6
+
7
+ # The path of the commonteamyears API
8
+ COMMON_TEAM_YEARS_PATH = '/stats/commonteamyears'
9
+
10
+ # Calls the commonteamyears API and returns a CommonTeamYears resource.
11
+ #
12
+ # @param league_id [String]
13
+ # @return [NbaStats::Resources::CommonTeamYears]
14
+ def common_team_years(
15
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
16
+ )
17
+ NbaStats::Resources::CommonTeamYears.new(
18
+ get(COMMON_TEAM_YEARS_PATH, {
19
+ :LeagueID => league_id
20
+ })
21
+ )
22
+ end
23
+
24
+ end # CommonTeamYears
25
+
26
+ end
@@ -0,0 +1,29 @@
1
+ require 'nba_stats/resources/draft_combine_drill_results'
2
+
3
+ module NbaStats
4
+
5
+ module DraftCombineDrillResults
6
+
7
+ # The path of the draftcombinedrillresults API
8
+ DRAFT_COMBINE_DRILL_RESULTS_PATH = '/stats/draftcombinedrillresults'
9
+
10
+ # Calls the draftcombinedrillresults API and returns a DraftCombineDrillResults resource.
11
+ #
12
+ # @param season_year [String]
13
+ # @param league_id [String]
14
+ # @return [NbaStats::Resources::DraftCombineDrillResults]
15
+ def draft_combine_drill_results(
16
+ season_year,
17
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
18
+ )
19
+ NbaStats::Resources::DraftCombineDrillResults.new(
20
+ get(DRAFT_COMBINE_DRILL_RESULTS_PATH, {
21
+ :LeagueID => league_id,
22
+ :SeasonYear => season_year
23
+ })
24
+ )
25
+ end
26
+
27
+ end # DraftCombineDrillResults
28
+
29
+ end
@@ -0,0 +1,29 @@
1
+ require 'nba_stats/resources/draft_combine_non_stationary_shooting'
2
+
3
+ module NbaStats
4
+
5
+ module DraftCombineNonStationaryShooting
6
+
7
+ # The path of the draftcombinenonstationaryshooting API
8
+ DRAFT_COMBINE_NON_STATIONARY_SHOOTING_PATH = '/stats/draftcombinenonstationaryshooting/'
9
+
10
+ # Calls the draftcombinenonstationaryshooting API and returns a DraftCombineNonStationaryShooting resource.
11
+ #
12
+ # @param season_year [String]
13
+ # @param league_id [String]
14
+ # @return [NbaStats::Resources::DraftCombineNonStationaryShooting]
15
+ def draft_combine_non_stationary_shooting(
16
+ season_year,
17
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
18
+ )
19
+ NbaStats::Resources::DraftCombineNonStationaryShooting.new(
20
+ get(DRAFT_COMBINE_NON_STATIONARY_SHOOTING_PATH, {
21
+ :LeagueID => league_id,
22
+ :SeasonYear => season_year
23
+ })
24
+ )
25
+ end
26
+
27
+ end # DraftCombineNonStationaryShooting
28
+
29
+ end
@@ -0,0 +1,29 @@
1
+ require 'nba_stats/resources/draft_combine_player_anthro'
2
+
3
+ module NbaStats
4
+
5
+ module DraftCombinePlayerAnthro
6
+
7
+ # The path of the draftcombineplayeranthro API
8
+ DRAFT_COMBINE_PLAYER_ANTHRO_PATH = '/stats/draftcombineplayeranthro'
9
+
10
+ # Calls the draftcombineplayeranthro API and returns a DraftCombinePlayerAnthro resource.
11
+ #
12
+ # @param season_year [String]
13
+ # @param league_id [String]
14
+ # @return [NbaStats::Resources::DraftCombinePlayerAnthro]
15
+ def draft_combine_player_anthro(
16
+ season_year,
17
+ league_id=NbaStats::Constants::LEAGUE_ID_NBA
18
+ )
19
+ NbaStats::Resources::DraftCombinePlayerAnthro.new(
20
+ get(DRAFT_COMBINE_PLAYER_ANTHRO_PATH, {
21
+ :LeagueID => league_id,
22
+ :SeasonYear => season_year
23
+ })
24
+ )
25
+ end
26
+
27
+ end # DraftCombinePlayerAnthro
28
+
29
+ end