sportradar-api 0.11.1 → 0.12.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -4
- data/README.md +1 -0
- data/lib/sportradar/api/baseball/events/lineup.rb +3 -3
- data/lib/sportradar/api/baseball/events/warming_up.rb +4 -0
- data/lib/sportradar/api/baseball/game.rb +45 -9
- data/lib/sportradar/api/baseball/lineup.rb +23 -15
- data/lib/sportradar/api/baseball/mlb/api.rb +75 -0
- data/lib/sportradar/api/baseball/mlb.rb +234 -43
- data/lib/sportradar/api/baseball/player.rb +1 -1
- data/lib/sportradar/api/baseball/team.rb +1 -1
- data/lib/sportradar/api/baseball.rb +1 -21
- data/lib/sportradar/api/basketball/game.rb +1 -1
- data/lib/sportradar/api/basketball/nba/api.rb +71 -0
- data/lib/sportradar/api/basketball/nba/conference.rb +10 -3
- data/lib/sportradar/api/basketball/nba/division.rb +11 -4
- data/lib/sportradar/api/basketball/nba/game.rb +1 -1
- data/lib/sportradar/api/basketball/nba/player.rb +1 -1
- data/lib/sportradar/api/basketball/nba/team.rb +1 -1
- data/lib/sportradar/api/basketball/nba.rb +145 -74
- data/lib/sportradar/api/basketball/ncaamb/api.rb +77 -0
- data/lib/sportradar/api/basketball/ncaamb/conference.rb +6 -1
- data/lib/sportradar/api/basketball/ncaamb/division.rb +3 -1
- data/lib/sportradar/api/basketball/ncaamb/game.rb +5 -5
- data/lib/sportradar/api/basketball/ncaamb/hierarchy.rb +1 -1
- data/lib/sportradar/api/basketball/ncaamb/player.rb +1 -1
- data/lib/sportradar/api/basketball/ncaamb/team.rb +1 -1
- data/lib/sportradar/api/basketball/ncaamb/tournament.rb +1 -1
- data/lib/sportradar/api/basketball/ncaamb.rb +165 -82
- data/lib/sportradar/api/basketball.rb +2 -2
- data/lib/sportradar/api/config.rb +2 -2
- data/lib/sportradar/api/content/article.rb +1 -1
- data/lib/sportradar/api/content/article_list.rb +1 -1
- data/lib/sportradar/api/content.rb +8 -4
- data/lib/sportradar/api/football/drive.rb +20 -5
- data/lib/sportradar/api/football/event.rb +3 -0
- data/lib/sportradar/api/football/game.rb +21 -4
- data/lib/sportradar/api/football/game_stats.rb +14 -10
- data/lib/sportradar/api/football/ncaafb/api.rb +4 -4
- data/lib/sportradar/api/football/ncaafb/drive.rb +58 -2
- data/lib/sportradar/api/football/ncaafb/game.rb +26 -0
- data/lib/sportradar/api/football/ncaafb/play.rb +124 -2
- data/lib/sportradar/api/football/ncaafb/team.rb +9 -0
- data/lib/sportradar/api/football/ncaafb.rb +3 -2
- data/lib/sportradar/api/football/nfl/api.rb +4 -4
- data/lib/sportradar/api/football/nfl/depth_chart.rb +53 -0
- data/lib/sportradar/api/football/nfl/drive.rb +7 -3
- data/lib/sportradar/api/football/nfl/game.rb +3 -0
- data/lib/sportradar/api/football/nfl/league_depth_chart.rb +41 -0
- data/lib/sportradar/api/football/nfl/play.rb +15 -0
- data/lib/sportradar/api/football/nfl/team_depth_chart.rb +44 -0
- data/lib/sportradar/api/football/nfl.rb +39 -9
- data/lib/sportradar/api/football/play.rb +111 -9
- data/lib/sportradar/api/football/play_statistics.rb +397 -0
- data/lib/sportradar/api/football/player.rb +2 -1
- data/lib/sportradar/api/football/quarter.rb +8 -1
- data/lib/sportradar/api/football/scoring.rb +5 -10
- data/lib/sportradar/api/football/situation.rb +18 -2
- data/lib/sportradar/api/football/team.rb +9 -3
- data/lib/sportradar/api/football/week.rb +4 -4
- data/lib/sportradar/api/football.rb +4 -0
- data/lib/sportradar/api/images.rb +6 -6
- data/lib/sportradar/api/version.rb +1 -1
- metadata +9 -4
- data/lib/sportradar/api/baseball/mlb/hierarchy.rb +0 -273
- data/lib/sportradar/api/basketball/nba/hierarchy.rb +0 -47
|
@@ -21,26 +21,6 @@ require_relative 'baseball/lineup'
|
|
|
21
21
|
require_relative 'baseball/scoring'
|
|
22
22
|
|
|
23
23
|
require_relative 'baseball/mlb'
|
|
24
|
-
require_relative 'baseball/mlb/
|
|
24
|
+
require_relative 'baseball/mlb/api'
|
|
25
25
|
require_relative 'baseball/mlb/league'
|
|
26
26
|
require_relative 'baseball/mlb/division'
|
|
27
|
-
# require_relative 'baseball/mlb/season'
|
|
28
|
-
# require_relative 'baseball/mlb/schedule'
|
|
29
|
-
# require_relative 'baseball/mlb/game'
|
|
30
|
-
# require_relative 'baseball/mlb/team'
|
|
31
|
-
# require_relative 'baseball/mlb/player'
|
|
32
|
-
# require_relative 'baseball/mlb/quarter'
|
|
33
|
-
|
|
34
|
-
# require_relative 'baseball/ncaamb'
|
|
35
|
-
# require_relative 'baseball/ncaamb/season'
|
|
36
|
-
# require_relative 'baseball/ncaamb/schedule'
|
|
37
|
-
# require_relative 'baseball/ncaamb/tournament'
|
|
38
|
-
# require_relative 'baseball/ncaamb/round'
|
|
39
|
-
# require_relative 'baseball/ncaamb/bracket'
|
|
40
|
-
# require_relative 'baseball/ncaamb/game'
|
|
41
|
-
# require_relative 'baseball/ncaamb/half'
|
|
42
|
-
# require_relative 'baseball/ncaamb/hierarchy'
|
|
43
|
-
# require_relative 'baseball/ncaamb/division'
|
|
44
|
-
# require_relative 'baseball/ncaamb/conference'
|
|
45
|
-
# require_relative 'baseball/ncaamb/team'
|
|
46
|
-
# require_relative 'baseball/ncaamb/player'
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
module Basketball
|
|
4
|
+
class Nba
|
|
5
|
+
class Api < Request
|
|
6
|
+
attr_accessor :league, :access_level, :error
|
|
7
|
+
|
|
8
|
+
def initialize(access_level = default_access_level)
|
|
9
|
+
@league = 'nba'
|
|
10
|
+
raise Sportradar::Api::Error::InvalidAccessLevel unless allowed_access_levels.include? access_level
|
|
11
|
+
@access_level = access_level
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def default_year
|
|
15
|
+
(Date.today - 210).year
|
|
16
|
+
end
|
|
17
|
+
def default_date
|
|
18
|
+
Date.today
|
|
19
|
+
end
|
|
20
|
+
def default_season
|
|
21
|
+
'reg'
|
|
22
|
+
end
|
|
23
|
+
def default_access_level
|
|
24
|
+
if (ENV['SPORTRADAR_ENV'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
|
|
25
|
+
'p'
|
|
26
|
+
else
|
|
27
|
+
't'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def content_format
|
|
32
|
+
'json'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def request_url(path)
|
|
38
|
+
"/nba-#{access_level}#{version}/#{path}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def api_key
|
|
42
|
+
if !['t', 'sim'].include?(access_level) || (access_level == 'sim' && default_access_level == 'p')
|
|
43
|
+
Sportradar::Api.api_key_params('nba', 'production')
|
|
44
|
+
else
|
|
45
|
+
Sportradar::Api.api_key_params('nba')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def version
|
|
50
|
+
Sportradar::Api.version('nba')
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def allowed_access_levels
|
|
54
|
+
%w[p t sim]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def allowed_seasons
|
|
58
|
+
["pre", "reg", "pst"]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
__END__
|
|
68
|
+
|
|
69
|
+
sr = Sportradar::Api::Basketball::Nba.new
|
|
70
|
+
lh = sr.league_hierarchy;
|
|
71
|
+
ls = sr.standings;
|
|
@@ -9,10 +9,17 @@ module Sportradar
|
|
|
9
9
|
@response = data
|
|
10
10
|
@api = opts[:api]
|
|
11
11
|
|
|
12
|
-
@
|
|
13
|
-
|
|
12
|
+
@divisions_hash = {}
|
|
13
|
+
|
|
14
|
+
update(data, **opts)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def update(data, **opts)
|
|
18
|
+
@id = data["id"]
|
|
19
|
+
@name = data["name"]
|
|
14
20
|
@alias = data["alias"]
|
|
15
|
-
|
|
21
|
+
|
|
22
|
+
create_data(@divisions_hash, data["divisions"], klass: Division, conference: self, api: @api) if response["divisions"]
|
|
16
23
|
end
|
|
17
24
|
|
|
18
25
|
def divisions
|
|
@@ -9,11 +9,18 @@ module Sportradar
|
|
|
9
9
|
@response = data
|
|
10
10
|
@api = opts[:api]
|
|
11
11
|
|
|
12
|
-
@id = data["id"]
|
|
13
|
-
@name = data["name"]
|
|
14
|
-
@alias = data["alias"]
|
|
15
12
|
@assigned_teams = nil
|
|
16
|
-
@teams_hash =
|
|
13
|
+
@teams_hash = {}
|
|
14
|
+
|
|
15
|
+
update(data, **opts)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def update(data, **opts)
|
|
19
|
+
@id = data["id"]
|
|
20
|
+
@name = data["name"]
|
|
21
|
+
@alias = data["alias"]
|
|
22
|
+
|
|
23
|
+
create_data(@teams_hash, data["teams"], klass: Team, division: self, api: @api) if response["teams"]
|
|
17
24
|
end
|
|
18
25
|
|
|
19
26
|
def teams
|
|
@@ -1,68 +1,110 @@
|
|
|
1
1
|
module Sportradar
|
|
2
2
|
module Api
|
|
3
3
|
module Basketball
|
|
4
|
-
class Nba <
|
|
5
|
-
attr_accessor :
|
|
4
|
+
class Nba < Data
|
|
5
|
+
attr_accessor :response, :id, :name, :alias
|
|
6
|
+
def all_attributes
|
|
7
|
+
[:name, :alias, :conferences, :divisions, :teams]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def initialize(data = {}, **opts)
|
|
11
|
+
@response = data
|
|
12
|
+
@api = opts[:api]
|
|
13
|
+
@id = data['id']
|
|
14
|
+
@season = opts[:year]
|
|
15
|
+
@type = opts[:type]
|
|
16
|
+
|
|
17
|
+
@conferences_hash = {}
|
|
18
|
+
@weeks_hash = {}
|
|
19
|
+
@games_hash = {}
|
|
20
|
+
@series_hash = {}
|
|
21
|
+
@teams_hash = {}
|
|
6
22
|
|
|
7
|
-
|
|
8
|
-
@league = 'nba'
|
|
9
|
-
raise Sportradar::Api::Error::InvalidAccessLevel unless allowed_access_levels.include? access_level
|
|
10
|
-
@access_level = access_level
|
|
23
|
+
update(data, **opts)
|
|
11
24
|
end
|
|
12
25
|
|
|
13
|
-
def
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@
|
|
26
|
+
def update(data, **opts)
|
|
27
|
+
@id = data['id'] if data['id']
|
|
28
|
+
|
|
29
|
+
if data['league']
|
|
30
|
+
@id = data.dig('league', 'id')
|
|
31
|
+
@name = data.dig('league', 'name')
|
|
32
|
+
@alias = data.dig('league', 'alias')
|
|
20
33
|
end
|
|
21
|
-
end
|
|
22
34
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Sportradar::Api::Basketball::Nba::Schedule.new(response.to_h, api: self)
|
|
35
|
+
if data['season'].is_a?(Hash)
|
|
36
|
+
@season = data.dig('season', 'year')
|
|
37
|
+
@type = data.dig('season', 'type')
|
|
27
38
|
else
|
|
28
|
-
@
|
|
39
|
+
@season = data['season'] if data['season']
|
|
40
|
+
@type = data['type'] if data['type']
|
|
29
41
|
end
|
|
42
|
+
|
|
43
|
+
create_data(@teams_hash, data['teams'], klass: Team, api: api) if data['teams']
|
|
44
|
+
create_data(@conferences_hash, data['conferences'], klass: Conference, api: api) if data['conferences']
|
|
45
|
+
create_data(@games_hash, data['games'], klass: Game, api: api) if data['games']
|
|
46
|
+
create_data(@series_hash, data['series'], klass: Series, api: api) if data['series']
|
|
30
47
|
end
|
|
31
48
|
|
|
32
|
-
def
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@error = response
|
|
38
|
-
end
|
|
49
|
+
def conferences
|
|
50
|
+
@conferences_hash.values
|
|
51
|
+
end
|
|
52
|
+
def divisions
|
|
53
|
+
conferences.flat_map(&:divisions)
|
|
39
54
|
end
|
|
40
55
|
|
|
41
|
-
def
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
def schedule
|
|
57
|
+
get_schedule if games.empty?
|
|
58
|
+
self
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def standings
|
|
62
|
+
get_standings if divisions.empty? || teams.first&.record.nil?
|
|
63
|
+
self
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def hierarchy
|
|
67
|
+
get_hierarchy if divisions.empty?
|
|
68
|
+
self
|
|
48
69
|
end
|
|
49
|
-
alias :hierarchy :league_hierarchy
|
|
50
70
|
|
|
51
|
-
def
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
71
|
+
def series_schedule
|
|
72
|
+
get_series_schedule if series.empty?
|
|
73
|
+
self
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def games
|
|
77
|
+
@games_hash.values
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def series
|
|
81
|
+
@series_hash.values
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def teams
|
|
85
|
+
teams = divisions.flat_map(&:teams)
|
|
86
|
+
if teams.empty?
|
|
87
|
+
if @teams_hash.empty?
|
|
88
|
+
get_hierarchy
|
|
89
|
+
divisions.flat_map(&:teams)
|
|
90
|
+
else
|
|
91
|
+
@teams_hash.values
|
|
92
|
+
end
|
|
55
93
|
else
|
|
56
|
-
|
|
94
|
+
teams
|
|
57
95
|
end
|
|
58
96
|
end
|
|
59
97
|
|
|
60
|
-
def
|
|
61
|
-
|
|
98
|
+
def team(team_id)
|
|
99
|
+
teams.detect { |team| team.id == team_id }
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def api
|
|
103
|
+
@api || Sportradar::Api::Basketball::Nba::Api.new
|
|
62
104
|
end
|
|
63
105
|
|
|
64
106
|
def default_year
|
|
65
|
-
|
|
107
|
+
(Date.today - 210).year
|
|
66
108
|
end
|
|
67
109
|
def default_date
|
|
68
110
|
Date.today
|
|
@@ -70,51 +112,78 @@ module Sportradar
|
|
|
70
112
|
def default_season
|
|
71
113
|
'reg'
|
|
72
114
|
end
|
|
73
|
-
def
|
|
74
|
-
|
|
75
|
-
'p'
|
|
76
|
-
else
|
|
77
|
-
't'
|
|
78
|
-
end
|
|
115
|
+
def season_year
|
|
116
|
+
@season || default_year
|
|
79
117
|
end
|
|
118
|
+
alias :year :season_year
|
|
119
|
+
def nba_season
|
|
120
|
+
@type || default_season
|
|
121
|
+
end
|
|
122
|
+
alias :season :nba_season
|
|
80
123
|
|
|
81
|
-
def
|
|
82
|
-
|
|
124
|
+
def path_schedule
|
|
125
|
+
"games/#{season_year}/#{nba_season}/schedule"
|
|
83
126
|
end
|
|
84
127
|
|
|
85
|
-
|
|
128
|
+
def path_daily_schedule(date = default_date)
|
|
129
|
+
"games/#{ date.year }/#{ date.month }/#{ date.day }/schedule"
|
|
130
|
+
end
|
|
86
131
|
|
|
87
|
-
def
|
|
88
|
-
|
|
132
|
+
def path_series_schedule
|
|
133
|
+
"series/#{season_year}/pst/schedule"
|
|
89
134
|
end
|
|
90
135
|
|
|
91
|
-
def
|
|
92
|
-
|
|
93
|
-
if simulation
|
|
94
|
-
# "/nfl-sim1/#{path}"
|
|
95
|
-
else
|
|
96
|
-
"/nba-#{access_level}#{version}/#{path}"
|
|
97
|
-
end
|
|
136
|
+
def path_hierarchy
|
|
137
|
+
"league/hierarchy"
|
|
98
138
|
end
|
|
99
139
|
|
|
100
|
-
def
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
140
|
+
def path_standings
|
|
141
|
+
"seasontd/#{season_year}/#{nba_season}/standings"
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def get_schedule
|
|
145
|
+
data = api.get_data(path_schedule).to_h
|
|
146
|
+
ingest_schedule(data)
|
|
147
|
+
end
|
|
148
|
+
def ingest_schedule(data)
|
|
149
|
+
update(data, source: :schedule)
|
|
150
|
+
data
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def get_daily_schedule(date = default_date)
|
|
154
|
+
data = api.get_data(path_daily_schedule(date)).to_h
|
|
155
|
+
ingest_daily_schedule(data)
|
|
156
|
+
end
|
|
157
|
+
def ingest_daily_schedule(data)
|
|
158
|
+
update(data, source: :daily_schedule)
|
|
159
|
+
data
|
|
106
160
|
end
|
|
107
161
|
|
|
108
|
-
def
|
|
109
|
-
|
|
162
|
+
def get_series_schedule
|
|
163
|
+
data = api.get_data(path_series_schedule).to_h
|
|
164
|
+
ingest_series_schedule(data)
|
|
165
|
+
end
|
|
166
|
+
def ingest_series_schedule(data)
|
|
167
|
+
update(data, source: :series_schedule)
|
|
168
|
+
data
|
|
110
169
|
end
|
|
111
170
|
|
|
112
|
-
def
|
|
113
|
-
|
|
171
|
+
def get_hierarchy
|
|
172
|
+
data = api.get_data(path_hierarchy).to_h
|
|
173
|
+
ingest_hierarchy(data)
|
|
174
|
+
end
|
|
175
|
+
def ingest_hierarchy(data)
|
|
176
|
+
update(data, source: :hierarchy)
|
|
177
|
+
data
|
|
114
178
|
end
|
|
115
179
|
|
|
116
|
-
def
|
|
117
|
-
|
|
180
|
+
def get_standings
|
|
181
|
+
data = api.get_data(path_standings).to_h
|
|
182
|
+
ingest_standings(data)
|
|
183
|
+
end
|
|
184
|
+
def ingest_standings(data)
|
|
185
|
+
update(data, source: :standings)
|
|
186
|
+
data
|
|
118
187
|
end
|
|
119
188
|
|
|
120
189
|
end
|
|
@@ -124,6 +193,8 @@ end
|
|
|
124
193
|
|
|
125
194
|
__END__
|
|
126
195
|
|
|
196
|
+
st = sr.standings;
|
|
127
197
|
sr = Sportradar::Api::Basketball::Nba.new
|
|
128
|
-
lh = sr.
|
|
129
|
-
|
|
198
|
+
lh = sr.hierarchy;
|
|
199
|
+
t = lh.teams.first;
|
|
200
|
+
t.venue.id
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
module Basketball
|
|
4
|
+
class Ncaamb
|
|
5
|
+
class Api < Request
|
|
6
|
+
attr_accessor :league, :access_level, :error
|
|
7
|
+
|
|
8
|
+
def initialize(access_level = default_access_level)
|
|
9
|
+
@league = 'ncaamb'
|
|
10
|
+
raise Sportradar::Api::Error::InvalidAccessLevel unless allowed_access_levels.include? access_level
|
|
11
|
+
@access_level = access_level
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def default_year
|
|
15
|
+
(Date.today - 210).year
|
|
16
|
+
end
|
|
17
|
+
def default_date
|
|
18
|
+
Date.today
|
|
19
|
+
end
|
|
20
|
+
def default_season
|
|
21
|
+
'reg'
|
|
22
|
+
end
|
|
23
|
+
def default_access_level
|
|
24
|
+
if (ENV['SPORTRADAR_ENV'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
|
|
25
|
+
'p'
|
|
26
|
+
else
|
|
27
|
+
't'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def content_format
|
|
32
|
+
'json'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def request_url(path)
|
|
38
|
+
"/ncaamb-#{access_level}#{version}/#{path}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def api_key
|
|
42
|
+
if !['t', 'sim'].include?(access_level) || (access_level == 'sim' && default_access_level == 'p')
|
|
43
|
+
Sportradar::Api.api_key_params('ncaamb', 'production')
|
|
44
|
+
else
|
|
45
|
+
Sportradar::Api.api_key_params('ncaamb')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def version
|
|
50
|
+
Sportradar::Api.version('ncaamb')
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def allowed_access_levels
|
|
54
|
+
%w[p t sim]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def allowed_seasons
|
|
58
|
+
["pre", "reg", 'ct', "pst"]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
__END__
|
|
68
|
+
|
|
69
|
+
sr = Sportradar::Api::Basketball::Ncaamb.new
|
|
70
|
+
ss = sr.schedule(2015, 'ct');
|
|
71
|
+
ss = sr.schedule(2015, 'pst');
|
|
72
|
+
rank = sr.rankings('US');
|
|
73
|
+
ds = sr.daily_schedule;
|
|
74
|
+
|
|
75
|
+
# not ready
|
|
76
|
+
lh = sr.league_hierarchy;
|
|
77
|
+
ls = sr.standings;
|
|
@@ -13,8 +13,13 @@ module Sportradar
|
|
|
13
13
|
@name = data["name"]
|
|
14
14
|
@alias = data["alias"]
|
|
15
15
|
@assigned_teams = nil
|
|
16
|
+
@teams_hash = {}
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
update(data, **opts)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def update(data, **opts)
|
|
22
|
+
create_data(@teams_hash, data["teams"], klass: Team, conference: self, api: @api) # if data["team"]
|
|
18
23
|
end
|
|
19
24
|
|
|
20
25
|
def teams
|
|
@@ -12,11 +12,13 @@ module Sportradar
|
|
|
12
12
|
@id = data["id"]
|
|
13
13
|
@name = data["name"]
|
|
14
14
|
@alias = data["alias"]
|
|
15
|
+
@conferences_hash = {}
|
|
16
|
+
|
|
15
17
|
update(data, **opts)
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
def update(data, **opts)
|
|
19
|
-
|
|
21
|
+
create_data(@conferences_hash, data["conferences"], klass: Conference, division: self, api: @api) if data["conferences"]
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
def conferences
|
|
@@ -7,12 +7,12 @@ module Sportradar
|
|
|
7
7
|
# NCAA MB specific
|
|
8
8
|
|
|
9
9
|
def period_display
|
|
10
|
-
if period >
|
|
11
|
-
"#{period -
|
|
12
|
-
elsif period ==
|
|
10
|
+
if period > 3
|
|
11
|
+
"#{period - 2}OT"
|
|
12
|
+
elsif period == 3
|
|
13
13
|
'OT'
|
|
14
14
|
else
|
|
15
|
-
"
|
|
15
|
+
"#{period}H"
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -30,7 +30,7 @@ module Sportradar
|
|
|
30
30
|
alias :halfs :periods
|
|
31
31
|
|
|
32
32
|
def api
|
|
33
|
-
@api || Sportradar::Api::Basketball::Ncaamb.new
|
|
33
|
+
@api || Sportradar::Api::Basketball::Ncaamb::Api.new
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def sim!
|