sportradar-api 0.10.55 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +28 -26
- data/README.md +7 -6
- data/lib/sportradar/api/baseball/{REAME.md → README.md} +0 -0
- data/lib/sportradar/api/baseball/game.rb +29 -2
- data/lib/sportradar/api/baseball/mlb/hierarchy.rb +1 -0
- data/lib/sportradar/api/baseball/record.rb +0 -4
- data/lib/sportradar/api/baseball/venue.rb +2 -1
- data/lib/sportradar/api/basketball/game.rb +2 -2
- data/lib/sportradar/api/basketball/record.rb +0 -4
- data/lib/sportradar/api/basketball/venue.rb +2 -1
- data/lib/sportradar/api/data.rb +3 -3
- data/lib/sportradar/api/football/README.md +62 -0
- data/lib/sportradar/api/football/drive.rb +105 -0
- data/lib/sportradar/api/football/event.rb +33 -0
- data/lib/sportradar/api/football/game.rb +389 -0
- data/lib/sportradar/api/football/game_stats.rb +135 -0
- data/lib/sportradar/api/football/ncaafb/api.rb +76 -0
- data/lib/sportradar/api/football/ncaafb/conference.rb +53 -0
- data/lib/sportradar/api/football/ncaafb/division.rb +42 -0
- data/lib/sportradar/api/football/ncaafb/drive.rb +16 -0
- data/lib/sportradar/api/football/ncaafb/game.rb +110 -0
- data/lib/sportradar/api/football/ncaafb/play.rb +20 -0
- data/lib/sportradar/api/football/ncaafb/player.rb +31 -0
- data/lib/sportradar/api/football/ncaafb/quarter.rb +15 -0
- data/lib/sportradar/api/football/ncaafb/subdivision.rb +43 -0
- data/lib/sportradar/api/football/ncaafb/team.rb +45 -0
- data/lib/sportradar/api/football/ncaafb/week.rb +24 -0
- data/lib/sportradar/api/football/ncaafb.rb +273 -0
- data/lib/sportradar/api/football/nfl/api.rb +76 -0
- data/lib/sportradar/api/football/nfl/conference.rb +35 -0
- data/lib/sportradar/api/football/nfl/division.rb +37 -0
- data/lib/sportradar/api/football/nfl/drive.rb +19 -0
- data/lib/sportradar/api/football/nfl/event.rb +19 -0
- data/lib/sportradar/api/football/nfl/game.rb +77 -0
- data/lib/sportradar/api/football/nfl/play.rb +20 -0
- data/lib/sportradar/api/football/nfl/player.rb +31 -0
- data/lib/sportradar/api/football/nfl/quarter.rb +15 -0
- data/lib/sportradar/api/football/nfl/team.rb +42 -0
- data/lib/sportradar/api/football/nfl/week.rb +24 -0
- data/lib/sportradar/api/football/nfl.rb +293 -0
- data/lib/sportradar/api/football/play.rb +93 -0
- data/lib/sportradar/api/football/player.rb +111 -0
- data/lib/sportradar/api/football/quarter.rb +42 -0
- data/lib/sportradar/api/football/record.rb +48 -0
- data/lib/sportradar/api/football/scoring.rb +92 -0
- data/lib/sportradar/api/football/situation.rb +20 -0
- data/lib/sportradar/api/football/stat_pack/defense.rb +20 -20
- data/lib/sportradar/api/football/stat_pack/extra_points.rb +5 -4
- data/lib/sportradar/api/football/stat_pack/field_goals.rb +6 -5
- data/lib/sportradar/api/football/stat_pack/fumbles.rb +11 -9
- data/lib/sportradar/api/football/stat_pack/kick_returns.rb +8 -7
- data/lib/sportradar/api/football/stat_pack/kickoffs.rb +9 -7
- data/lib/sportradar/api/football/stat_pack/misc_returns.rb +1 -1
- data/lib/sportradar/api/football/stat_pack/passing.rb +13 -11
- data/lib/sportradar/api/football/stat_pack/penalties.rb +2 -2
- data/lib/sportradar/api/football/stat_pack/punt_returns.rb +7 -6
- data/lib/sportradar/api/football/stat_pack/punts.rb +12 -10
- data/lib/sportradar/api/football/stat_pack/receiving.rb +10 -9
- data/lib/sportradar/api/football/stat_pack/rushing.rb +11 -9
- data/lib/sportradar/api/football/stat_pack.rb +7 -3
- data/lib/sportradar/api/football/team.rb +160 -0
- data/lib/sportradar/api/football/venue.rb +25 -0
- data/lib/sportradar/api/football/week.rb +57 -0
- data/lib/sportradar/api/football.rb +43 -0
- data/lib/sportradar/api/mma/venue.rb +1 -1
- data/lib/sportradar/api/request.rb +19 -2
- data/lib/sportradar/api/version.rb +1 -1
- data/lib/sportradar/api.rb +0 -41
- metadata +41 -43
- data/lib/sportradar/api/ncaafb/drive.rb +0 -89
- data/lib/sportradar/api/ncaafb/game.rb +0 -161
- data/lib/sportradar/api/ncaafb/play.rb +0 -39
- data/lib/sportradar/api/ncaafb/player.rb +0 -61
- data/lib/sportradar/api/ncaafb/quarter.rb +0 -37
- data/lib/sportradar/api/ncaafb/season.rb +0 -71
- data/lib/sportradar/api/ncaafb/team.rb +0 -69
- data/lib/sportradar/api/ncaafb/week.rb +0 -33
- data/lib/sportradar/api/ncaafb.rb +0 -185
- data/lib/sportradar/api/nfl/.play_statistics.rb.swo +0 -0
- data/lib/sportradar/api/nfl/broadcast.rb +0 -13
- data/lib/sportradar/api/nfl/changelog.rb +0 -17
- data/lib/sportradar/api/nfl/coach.rb +0 -17
- data/lib/sportradar/api/nfl/conference.rb +0 -17
- data/lib/sportradar/api/nfl/depth_chart.rb +0 -47
- data/lib/sportradar/api/nfl/division.rb +0 -16
- data/lib/sportradar/api/nfl/draft.rb +0 -16
- data/lib/sportradar/api/nfl/drive.rb +0 -73
- data/lib/sportradar/api/nfl/event.rb +0 -19
- data/lib/sportradar/api/nfl/franchise.rb +0 -14
- data/lib/sportradar/api/nfl/game.rb +0 -123
- data/lib/sportradar/api/nfl/game_statistic.rb +0 -133
- data/lib/sportradar/api/nfl/hierarchy.rb +0 -19
- data/lib/sportradar/api/nfl/injury.rb +0 -16
- data/lib/sportradar/api/nfl/league_depth_chart.rb +0 -26
- data/lib/sportradar/api/nfl/play.rb +0 -39
- data/lib/sportradar/api/nfl/play_statistics.rb +0 -249
- data/lib/sportradar/api/nfl/player.rb +0 -56
- data/lib/sportradar/api/nfl/position.rb +0 -14
- data/lib/sportradar/api/nfl/quarter.rb +0 -29
- data/lib/sportradar/api/nfl/scoring.rb +0 -25
- data/lib/sportradar/api/nfl/season.rb +0 -23
- data/lib/sportradar/api/nfl/situation.rb +0 -18
- data/lib/sportradar/api/nfl/statistic.rb +0 -28
- data/lib/sportradar/api/nfl/summary.rb +0 -17
- data/lib/sportradar/api/nfl/team.rb +0 -56
- data/lib/sportradar/api/nfl/team_depth_chart.rb +0 -44
- data/lib/sportradar/api/nfl/venue.rb +0 -22
- data/lib/sportradar/api/nfl/week.rb +0 -16
- data/lib/sportradar/api/nfl.rb +0 -211
@@ -1,249 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::PlayStatistics < Data
|
4
|
-
attr_accessor :response, :kick, :return, :rush, :defense, :receive, :punt, :penalty, :pass, :first_down, :field_goal, :extra_point, :defense, :down_conversion
|
5
|
-
def initialize(data)
|
6
|
-
@response = data
|
7
|
-
@kick = parse_into_array(selector: data['kick'], klass: Nfl::PlayKickStatistics) if data['kick']
|
8
|
-
@return = parse_into_array(selector: data['return'], klass: Nfl::PlayReturnStatistics) if data['return']
|
9
|
-
@rush = parse_into_array(selector: data['rush'], klass: Nfl::PlayRushStatistics) if data['rush']
|
10
|
-
@defense = parse_into_array(selector: data['defense'], klass: Nfl::PlayDefenseStatistics) if data['defense']
|
11
|
-
@receive = parse_into_array(selector: data['receive'], klass: Nfl::PlayReceiveStatistics) if data['receive']
|
12
|
-
@punt = parse_into_array(selector: data['punt'], klass: Nfl::PlayPuntStatistics) if data['punt']
|
13
|
-
@penalty = parse_into_array(selector: data['penalty'], klass: Nfl::PlayPenaltyStatistics) if data['penalty']
|
14
|
-
@pass = parse_into_array(selector: data['pass'], klass: Nfl::PlayPassingStatistics) if data['pass']
|
15
|
-
@first_down = parse_into_array(selector: data['first_down'], klass: Nfl::PlayFirstDownStatistics) if data['first_down']
|
16
|
-
@field_goal = parse_into_array(selector: data['field_goal'], klass: Nfl::PlayFieldGoalStatistics) if data['field_goal']
|
17
|
-
@extra_point = parse_into_array(selector: data['extra_point'], klass: Nfl::PlayExtraPointStatistics) if data['extra_point']
|
18
|
-
@down_conversion = parse_into_array(selector: data['down_conversion'], klass: Nfl::PlayDownConversionStatistics) if data['down_conversion']
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
class Nfl::PlayDownConversionStatistics < Data
|
23
|
-
attr_accessor :attempt, :complete, :down, :nullified, :team
|
24
|
-
def initialize(data)
|
25
|
-
@attempt = data['attempt']
|
26
|
-
@complete = data['complete']
|
27
|
-
@down = data['down']
|
28
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
29
|
-
@nullified = data['nullified']
|
30
|
-
end
|
31
|
-
|
32
|
-
def nullified?
|
33
|
-
@nullified.to_s == 'true'
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class Nfl::PlayDefenseStatistics < Data
|
38
|
-
attr_accessor :ast_tackle, :interception, :int_yards, :nullified, :pass_defended, :primary, :qb_hit, :sack, :sack_yards, :tlost, :tlost_yards, :team, :player, :tackle, :int_touchdown
|
39
|
-
def initialize(data)
|
40
|
-
@ast_tackle = data['ast_tackle']
|
41
|
-
@interception = data['interception']
|
42
|
-
@int_yards = data['int_yards']
|
43
|
-
@int_touchdown = data['int_touchdown']
|
44
|
-
@nullified = data['nullified']
|
45
|
-
@pass_defended = data['pass_defended']
|
46
|
-
@primary = data['primary']
|
47
|
-
@qb_hit = data['qb_hit']
|
48
|
-
@sack = data['sack']
|
49
|
-
@sack_yards = data['sack_yards']
|
50
|
-
@tlost = data['tlost']
|
51
|
-
@tlost_yards = data['tlost_yards']
|
52
|
-
@tackle = data['tackle']
|
53
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
54
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
55
|
-
@nullified = data['nullified']
|
56
|
-
end
|
57
|
-
|
58
|
-
def nullified?
|
59
|
-
@nullified.to_s == 'true'
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
class Nfl::PlayExtraPointStatistics < Data
|
64
|
-
attr_accessor :attempt, :nullified
|
65
|
-
def initialize(data)
|
66
|
-
@attempt = data['attempt']
|
67
|
-
@nullified = data['nullified']
|
68
|
-
end
|
69
|
-
|
70
|
-
def nullified?
|
71
|
-
@nullified.to_s == 'true'
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
class Nfl::PlayFieldGoalStatistics < Data
|
76
|
-
attr_accessor :attempt, :att_yards, :missed, :yards, :nullified, :blocked, :team, :player
|
77
|
-
def initialize(data)
|
78
|
-
@attempt = data['attempt']
|
79
|
-
@att_yards = data['att_yards']
|
80
|
-
@missed = data['missed']
|
81
|
-
@blocked = data['blocked']
|
82
|
-
@yards = data['yards']
|
83
|
-
@nullified = data['nullified']
|
84
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
85
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
86
|
-
end
|
87
|
-
|
88
|
-
def nullified?
|
89
|
-
@nullified.to_s == 'true'
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
class Nfl::PlayFirstDownStatistics < Data
|
94
|
-
attr_accessor :category, :nullified, :team
|
95
|
-
def initialize(data)
|
96
|
-
@category = data['category']
|
97
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
98
|
-
@nullified = data['nullified']
|
99
|
-
end
|
100
|
-
|
101
|
-
def nullified?
|
102
|
-
@nullified.to_s == 'true'
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
class Nfl::PlayPassingStatistics < Data
|
107
|
-
attr_accessor :attempt, :att_yards, :complete, :firstdown, :goaltogo, :inside_20, :interception, :sack, :sack_yards, :touchdown, :yards, :nullified, :team, :player
|
108
|
-
def initialize(data)
|
109
|
-
@attempt = data['attempt']
|
110
|
-
@att_yards = data['att_yards']
|
111
|
-
@complete = data['complete']
|
112
|
-
@firstdown = data['firstdown']
|
113
|
-
@goaltogo = data['goaltogo']
|
114
|
-
@inside_20 = data['inside_20']
|
115
|
-
@interception = data['interception']
|
116
|
-
@sack = data['sack']
|
117
|
-
@sack_yards = data['sack_yards']
|
118
|
-
@touchdown = data['touchdown']
|
119
|
-
@yards = data['yards']
|
120
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
121
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
122
|
-
@nullified = data['nullified']
|
123
|
-
end
|
124
|
-
|
125
|
-
def nullified?
|
126
|
-
@nullified.to_s == 'true'
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
class Nfl::PlayPenaltyStatistics < Data
|
131
|
-
attr_accessor :penalty, :yards, :nullified, :team, :player
|
132
|
-
def initialize(data)
|
133
|
-
@penalty = data['penalty'] if data['penalty']
|
134
|
-
@yards = data['yards'] if data['yards']
|
135
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
136
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
137
|
-
@nullified = data['nullified']
|
138
|
-
end
|
139
|
-
|
140
|
-
def nullified?
|
141
|
-
@nullified.to_s == 'true'
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
class Nfl::PlayPuntStatistics < Data
|
146
|
-
attr_accessor :attempt, :downed, :faircatch, :inside_20, :out_of_bounds, :touchback, :yards, :nullified, :team, :player
|
147
|
-
def initialize(data)
|
148
|
-
data = data.first if data.is_a?(Array)
|
149
|
-
@attempt = data['attempt']
|
150
|
-
@downed = data['downed']
|
151
|
-
@inside_20 = data['inside_20']
|
152
|
-
@out_of_bounds = data['out_of_bounds']
|
153
|
-
@touchback = data['touchback']
|
154
|
-
@yards = data['yards']
|
155
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
156
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
157
|
-
@nullified = data['nullified']
|
158
|
-
end
|
159
|
-
|
160
|
-
def nullified?
|
161
|
-
@nullified.to_s == 'true'
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
class Nfl::PlayReceiveStatistics < Data
|
166
|
-
attr_accessor :firstdown, :goaltogo, :inside_20, :reception, :target, :touchdown, :yards, :yards_after_catch, :nullified, :team, :player
|
167
|
-
def initialize(data)
|
168
|
-
@firstdown = data['firstdown']
|
169
|
-
@goaltogo = data['goaltogo']
|
170
|
-
@inside_20 = data['inside_20']
|
171
|
-
@reception = data['reception']
|
172
|
-
@target = data['target']
|
173
|
-
@touchdown = data['touchdown']
|
174
|
-
@yards = data['yards']
|
175
|
-
@yards_after_catch = data['yards_after_catch']
|
176
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
177
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
178
|
-
@nullified = data['nullified']
|
179
|
-
end
|
180
|
-
|
181
|
-
def nullified?
|
182
|
-
@nullified.to_s == 'true'
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
|
-
class Nfl::PlayRushStatistics < Data
|
187
|
-
attr_accessor :attempt, :firstdown, :tlost, :tlost_yards, :yards, :inside_20, :goal_to_go, :team, :player, :nullified, :touchdown
|
188
|
-
def initialize(data)
|
189
|
-
@attempt = data['attempt']
|
190
|
-
@firstdown = data['firstdown']
|
191
|
-
@goal_to_go = data['goal_to_go']
|
192
|
-
@inside_20 = data['inside_20']
|
193
|
-
@tlost = data['tlost']
|
194
|
-
@tlost_yards = data['tlost_yards']
|
195
|
-
@touchdown = data['touchdown']
|
196
|
-
@yards = data['yards']
|
197
|
-
|
198
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
199
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
200
|
-
@nullified = data['nullified']
|
201
|
-
end
|
202
|
-
|
203
|
-
def nullified?
|
204
|
-
@nullified.to_s == 'true'
|
205
|
-
end
|
206
|
-
end
|
207
|
-
|
208
|
-
|
209
|
-
class Nfl::PlayKickStatistics < Data
|
210
|
-
attr_accessor :attempt, :yards, :gross_yards, :touchback, :team, :player, :endzone, :inside_20, :nullified
|
211
|
-
def initialize(data)
|
212
|
-
@endzone = data['endzone']
|
213
|
-
@inside_20 = data['inside_20']
|
214
|
-
@attempt = data['attempt']
|
215
|
-
@yards = data['yards']
|
216
|
-
@gross_yards = data['gross_yards']
|
217
|
-
@touchback = data['touchback']
|
218
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
219
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
220
|
-
@nullified = data['nullified']
|
221
|
-
end
|
222
|
-
|
223
|
-
def nullified?
|
224
|
-
@nullified.to_s == 'true'
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
|
-
class Nfl::PlayReturnStatistics < Data
|
229
|
-
attr_accessor :category, :downed, :faircatch, :out_of_bounds, :return, :touchback, :yards, :team, :nullified, :player, :touchdown
|
230
|
-
def initialize(data)
|
231
|
-
@category = data['category']
|
232
|
-
@downed = data['downed']
|
233
|
-
@faircatch = data['faircatch']
|
234
|
-
@out_of_bounds = data['out_of_bounds']
|
235
|
-
@return = data['return']
|
236
|
-
@touchback = data['touchback']
|
237
|
-
@touchdown = data['touchdown']
|
238
|
-
@yards = data['yards']
|
239
|
-
@team = Sportradar::Api::Nfl::Team.new(data['team']) if data['team']
|
240
|
-
@player = Nfl::Player.new(data['player']) if data['player']
|
241
|
-
@nullified = data['nullified']
|
242
|
-
end
|
243
|
-
|
244
|
-
def nullified?
|
245
|
-
@nullified.to_s == 'true'
|
246
|
-
end
|
247
|
-
end
|
248
|
-
end
|
249
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Player < Data
|
4
|
-
attr_accessor :response, :id, :sequence, :title, :game, :full_name, :jersey, :reference, :position, :depth, :injury, :age, :birth_date, :birth_place, :college, :college_conf, :draft, :first_name, :height, :high_school, :last_name, :preferred_name, :references, :rookie_year, :status, :weight, :abbr_name, :seasons, :team
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
data = [data].to_h if data.is_a? Array # for kickers in depth charts
|
8
|
-
@response = data
|
9
|
-
@depth = data["depth"]
|
10
|
-
@game = data["game"] # Games
|
11
|
-
@id = data["id"]
|
12
|
-
@jersey = data["jersey"]
|
13
|
-
@full_name = data["name"]
|
14
|
-
@position = data["position"]
|
15
|
-
@reference = data["reference"]
|
16
|
-
@sequence = data["sequence"]
|
17
|
-
@title = data["title"]
|
18
|
-
@age = data["age"]
|
19
|
-
@birth_date = data["birth_date"]
|
20
|
-
@birth_place = data["birth_place"]
|
21
|
-
@college = data["college"]
|
22
|
-
@college_conf = data["college_conf"]
|
23
|
-
@first_name = data["first_name"]
|
24
|
-
@height = data["height"]
|
25
|
-
@high_school = data["high_school"]
|
26
|
-
@last_name = data["last_name"]
|
27
|
-
@preferred_name = data["preferred_name"]
|
28
|
-
@references = data["references"]
|
29
|
-
@rookie_year = data["rookie_year"]
|
30
|
-
@status = data["status"]
|
31
|
-
@weight = data["weight"]
|
32
|
-
@abbr_name = data["abbr_name"]
|
33
|
-
@team = Sportradar::Api::Nfl::Team.new data["team"] if data["team"]
|
34
|
-
@injury = Sportradar::Api::Nfl::Injury.new data["injury"] if data["injury"]
|
35
|
-
@draft = Sportradar::Api::Nfl::Draft.new data["draft"] if data["draft"]
|
36
|
-
@seasons = parse_into_array(selector: response["season"], klass: Sportradar::Api::Nfl::Season) if response["season"]
|
37
|
-
end
|
38
|
-
def name
|
39
|
-
preferred_name ? [(preferred_name || first_name), last_name].join(' ') : full_name
|
40
|
-
end
|
41
|
-
|
42
|
-
def display_name
|
43
|
-
preferred_name ? [preferred_name, last_name].join(' ') : name
|
44
|
-
end
|
45
|
-
|
46
|
-
def age
|
47
|
-
if birth_date.present?
|
48
|
-
now = Time.now.utc.to_date
|
49
|
-
dob = birth_date.to_date
|
50
|
-
now.year - dob.year - ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Position < Data
|
4
|
-
attr_accessor :response, :name, :players
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@name = data["name"]
|
9
|
-
@players = parse_into_array(selector: response["player"], klass: Sportradar::Api::Nfl::Player) if response["player"]
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Quarter < Data
|
4
|
-
attr_accessor :response, :id, :number, :sequence, :home_points, :away_points, :drives, :scoring
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@id = data["id"]
|
9
|
-
@number = data["number"]
|
10
|
-
@sequence = data["sequence"]
|
11
|
-
@home_points = data["home_points"]
|
12
|
-
# @home_points = response['scoring']['home']['points'] # from play_by_play
|
13
|
-
@away_points = data["away_points"]
|
14
|
-
# @away_points = response['scoring']['away']['points'] # from play_by_play
|
15
|
-
@drives = parse_into_array(selector: response["play_by_play"]["drive"], klass: Sportradar::Api::Nfl::Drive) if response["play_by_play"] && response["play_by_play"]["drive"]
|
16
|
-
@scoring = Nfl::QuarterScoring.new(data['scoring']) if data['scoring']
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
class Nfl::QuarterScoring < Data
|
22
|
-
attr_accessor :home, :away
|
23
|
-
def initialize(data)
|
24
|
-
@home = OpenStruct.new(data['home'])
|
25
|
-
@away = OpenStruct.new(data['away'])
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Scoring < Data
|
4
|
-
attr_accessor :response, :quarters
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
response['quarter'] = response['quarter'].select {|x| x.is_a? Hash } if response['quarter'].is_a?(Array) && response['quarter'].map(&:class).uniq.count > 1
|
9
|
-
@quarters = parse_into_array(selector: response["quarter"], klass: Sportradar::Api::Nfl::Quarter) if response["quarter"]
|
10
|
-
end
|
11
|
-
|
12
|
-
def final
|
13
|
-
"#{home}-#{away}"
|
14
|
-
end
|
15
|
-
|
16
|
-
def home
|
17
|
-
quarters.map {|quarter| quarter.home_points.to_i }.reduce(:+)
|
18
|
-
end
|
19
|
-
|
20
|
-
def away
|
21
|
-
quarters.map {|quarter| quarter.away_points.to_i }.reduce(:+)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Season < Data
|
4
|
-
attr_accessor :response, :id, :year, :type, :name, :weeks, :injuries, :team, :conferences, :divisions, :teams
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@id = data["id"]
|
9
|
-
@year = data["year"]
|
10
|
-
@type = data["type"]
|
11
|
-
@name = data["name"]
|
12
|
-
@team = Sportradar::Api::Nfl::Team.new(data["team"]) if data["team"].is_a?(Hash)
|
13
|
-
@injuries = data["injuries"]["team"].map {|team| Sportradar::Api::Nfl::Team.new team } if data["injuries"] && data["injuries"]["team"]
|
14
|
-
@weeks = parse_into_array(selector: response["week"], klass: Sportradar::Api::Nfl::Week) if response["week"]
|
15
|
-
@conferences = parse_into_array(selector: response["conference"], klass: Sportradar::Api::Nfl::Conference) if response["conference"]
|
16
|
-
@divisions = conferences.flat_map(&:divisions) if conferences&.all? { |conference| conference.divisions }
|
17
|
-
@divisions ||= parse_into_array(selector: response["division"], klass: Sportradar::Api::Nfl::Division) if response["division"]
|
18
|
-
@teams = @divisions.flat_map(&:teams) if divisions&.all? {|division| division.teams }
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Situation < Data
|
4
|
-
attr_accessor :response, :clock, :down, :yfd, :possession, :location, :team_id
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@clock = data["clock"]
|
9
|
-
@down = data["down"]
|
10
|
-
@yfd = data["yfd"]
|
11
|
-
@possession = OpenStruct.new data["possession"] if data["possession"]
|
12
|
-
@location = OpenStruct.new data["location"] if data["location"]
|
13
|
-
@team_id = possession.id if possession
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Statistic < Data
|
4
|
-
attr_accessor :response, :id, :sequence, :reference, :clock, :home_points, :away_points, :type, :play_clock, :wall_clock, :start_situation, :end_situation, :description, :alt_description, :statistics, :score, :scoring_play
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@alt_description = data["alt_description"]
|
9
|
-
@away_points = data["away_points"]
|
10
|
-
@clock = data["clock"]
|
11
|
-
@description = data["description"]
|
12
|
-
@end_situation = Sportradar::Api::Nfl::Situation.new data["end_situation"] if data["end_situation"]
|
13
|
-
@home_points = data["home_points"]
|
14
|
-
@id = data["id"]
|
15
|
-
@play_clock = data["play_clock"]
|
16
|
-
@reference = data["reference"]
|
17
|
-
@score = data["score"]
|
18
|
-
@scoring_play = data["scoring_play"]
|
19
|
-
@sequence = data["sequence"]
|
20
|
-
@start_situation = Sportradar::Api::Nfl::Situation.new data["start_situation"] if data["start_situation"]
|
21
|
-
@statistics = data["statistics"]
|
22
|
-
@type = data["type"]
|
23
|
-
@wall_clock = data["wall_clock"]
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Summary < Data
|
4
|
-
attr_accessor :response, :season, :week, :venue, :home, :away
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@season = Sportradar::Api::Nfl::Season.new data["season"] if data["season"]
|
9
|
-
@week = Sportradar::Api::Nfl::Week.new data["week"] if data["week"]
|
10
|
-
@venue = Sportradar::Api::Nfl::Venue.new data["venue"] if data["venue"]
|
11
|
-
@home = Sportradar::Api::Nfl::Team.new data["home"] if data["home"]
|
12
|
-
@away = Sportradar::Api::Nfl::Team.new data["away"] if data["away"]
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Team < Data
|
4
|
-
attr_accessor :response, :id, :name, :alias, :game_number, :defense, :special_teams, :offense, :players, :statistics, :team_records, :player_records, :market, :franchise, :venue, :hierarchy, :coaches, :players, :used_timeouts, :remaining_timeouts, :points, :wins, :losses, :ties, :win_pct, :rank, :stats, :depth_chart
|
5
|
-
|
6
|
-
alias_method :score, :points
|
7
|
-
|
8
|
-
def initialize(data)
|
9
|
-
@response = data
|
10
|
-
@id = data["id"]
|
11
|
-
@name = data["name"]
|
12
|
-
@alias = data["alias"]
|
13
|
-
@game_number = data["game_number"]
|
14
|
-
@market = data["market"]
|
15
|
-
|
16
|
-
# These come from boxscore summary
|
17
|
-
@used_timeouts = data["used_timeouts"]
|
18
|
-
@remaining_timeouts = data["remaining_timeouts"]
|
19
|
-
@points = data["points"]
|
20
|
-
|
21
|
-
@franchise = Sportradar::Api::Nfl::Franchise.new data["franchise"] if data["franchise"]
|
22
|
-
@venue = Sportradar::Api::Nfl::Venue.new data["venue"] if data["venue"]
|
23
|
-
@hierarchy = Sportradar::Api::Nfl::Hierarchy.new data["hierarchy"] if data["hierarchy"]
|
24
|
-
|
25
|
-
@wins = data["wins"]
|
26
|
-
@losses = data["losses"]
|
27
|
-
@losses = data["losses"]
|
28
|
-
@ties = data["ties"]
|
29
|
-
@win_pct = data["win_pct"].to_f if data["win_pct"]
|
30
|
-
@rank = data["rank"]
|
31
|
-
|
32
|
-
@statistics = OpenStruct.new data["statistics"] if data["statistics"] # TODO Implement better?
|
33
|
-
@team_records = OpenStruct.new data["team_records"] if data["team_records"] # TODO Implement better?
|
34
|
-
@player_records = OpenStruct.new data["player_records"] if data["player_records"] # TODO Implement better?
|
35
|
-
|
36
|
-
@defense = parse_into_array(selector: data["defense"]["position"], klass: Sportradar::Api::Nfl::Position) if data["defense"] && data["defense"]["position"]
|
37
|
-
@offense = parse_into_array(selector: data["offense"]["position"], klass: Sportradar::Api::Nfl::Position) if data["offense"] && data["offense"]["position"]
|
38
|
-
@special_teams = parse_into_array(selector: data["special_teams"]["position"], klass: Sportradar::Api::Nfl::Position) if data["special_teams"] && data["special_teams"]["position"]
|
39
|
-
@coaches = parse_into_array(selector: response["coaches"]["coach"], klass: Sportradar::Api::Nfl::Coach) if response["coaches"] && response["coaches"]["coach"]
|
40
|
-
@players = parse_into_array(selector: response["player"], klass: Sportradar::Api::Nfl::Player) if response["player"]
|
41
|
-
@players ||= parse_into_array(selector: response["players"]["player"], klass: Sportradar::Api::Nfl::Player) if response["players"] && response["players"]["player"]
|
42
|
-
end
|
43
|
-
|
44
|
-
def full_name
|
45
|
-
[market, name].join(' ')
|
46
|
-
end
|
47
|
-
|
48
|
-
def record
|
49
|
-
if wins && losses && ties
|
50
|
-
"#{wins}-#{losses}" << (ties == '0' ? '' : "-#{ties}")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::TeamDepthChart < Data
|
4
|
-
include Enumerable
|
5
|
-
attr_accessor :response, :season, :team_id, :abbrev
|
6
|
-
|
7
|
-
# data.keys => ["offense", "defense", "special_teams", "name", "market", "alias", "id"]
|
8
|
-
def initialize(data, season)
|
9
|
-
@response = data
|
10
|
-
@season = season
|
11
|
-
@team_id = response['id']
|
12
|
-
@abbrev = response['alias']
|
13
|
-
end
|
14
|
-
|
15
|
-
def offense
|
16
|
-
@offense ||= Sportradar::Api::Nfl::DepthChart.new(response['offense']) if response['offense']
|
17
|
-
end
|
18
|
-
|
19
|
-
def defense
|
20
|
-
@defense ||= Sportradar::Api::Nfl::DepthChart.new(response['defense']) if response['defense']
|
21
|
-
end
|
22
|
-
|
23
|
-
def special_teams
|
24
|
-
@special_teams ||= Sportradar::Api::Nfl::DepthChart.new(response['special_teams']) if response['special_teams']
|
25
|
-
end
|
26
|
-
|
27
|
-
def team
|
28
|
-
@team ||= Sportradar::Api::Nfl::Team.new(response).tap { |team| team.depth_chart = self }
|
29
|
-
end
|
30
|
-
|
31
|
-
def each
|
32
|
-
[:offense, :defense, :special_teams].each { |type| yield type, send(type) }
|
33
|
-
end
|
34
|
-
|
35
|
-
# These aren't ever used, but handy if you need to invoke for testing
|
36
|
-
# private
|
37
|
-
|
38
|
-
# def set_charts
|
39
|
-
# [offense, defense, special_teams]
|
40
|
-
# end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Venue < Data
|
4
|
-
attr_accessor :response, :id, :name, :city, :state, :country, :zip, :address, :capacity, :surface, :roof_type
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@id = data["id"]
|
9
|
-
@name = data["name"]
|
10
|
-
@city = data["city"]
|
11
|
-
@state = data["state"]
|
12
|
-
@country = data["country"]
|
13
|
-
@zip = data["zip"]
|
14
|
-
@address = data["address"]
|
15
|
-
@capacity = data["capacity"]
|
16
|
-
@surface = data["surface"]
|
17
|
-
@roof_type = data["roof_type"]
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl::Week < Data
|
4
|
-
attr_accessor :response, :id, :sequence, :title, :games
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@response = data
|
8
|
-
@id = data["id"]
|
9
|
-
@sequence = data["sequence"]
|
10
|
-
@title = data["title"]
|
11
|
-
@games = parse_into_array(selector: response["game"], klass: Sportradar::Api::Nfl::Game) if response["game"]
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|