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