sportradar-api 0.9.12 → 0.11.21
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/.env.sample +6 -0
- data/.travis.yml +1 -0
- data/Gemfile.lock +32 -30
- data/README.md +12 -9
- data/lib/sportradar/api/baseball/README.md +28 -0
- data/lib/sportradar/api/baseball/error.rb +25 -0
- data/lib/sportradar/api/baseball/event.rb +44 -0
- data/lib/sportradar/api/baseball/events/at_bat.rb +96 -0
- data/lib/sportradar/api/baseball/events/lineup.rb +41 -0
- data/lib/sportradar/api/baseball/events/warming_up.rb +35 -0
- data/lib/sportradar/api/baseball/fielder.rb +26 -0
- data/lib/sportradar/api/baseball/game.rb +472 -0
- data/lib/sportradar/api/baseball/half_inning.rb +69 -0
- data/lib/sportradar/api/baseball/inning.rb +42 -0
- data/lib/sportradar/api/baseball/lineup.rb +116 -0
- data/lib/sportradar/api/baseball/mlb/division.rb +32 -0
- data/lib/sportradar/api/baseball/mlb/hierarchy.rb +273 -0
- data/lib/sportradar/api/baseball/mlb/league.rb +27 -0
- data/lib/sportradar/api/baseball/mlb.rb +84 -0
- data/lib/sportradar/api/baseball/outcome.rb +87 -0
- data/lib/sportradar/api/baseball/pitch.rb +245 -0
- data/lib/sportradar/api/baseball/player.rb +119 -0
- data/lib/sportradar/api/baseball/record.rb +42 -0
- data/lib/sportradar/api/baseball/runner.rb +78 -0
- data/lib/sportradar/api/baseball/scoring.rb +86 -0
- data/lib/sportradar/api/baseball/team.rb +147 -0
- data/lib/sportradar/api/baseball/venue.rb +51 -0
- data/lib/sportradar/api/baseball.rb +46 -0
- data/lib/sportradar/api/basketball/broadcast.rb +15 -0
- data/lib/sportradar/api/basketball/game.rb +339 -0
- data/lib/sportradar/api/basketball/injury.rb +41 -0
- data/lib/sportradar/api/basketball/nba/conference.rb +27 -0
- data/lib/sportradar/api/basketball/nba/division.rb +30 -0
- data/lib/sportradar/api/basketball/nba/game.rb +62 -0
- data/lib/sportradar/api/basketball/nba/hierarchy.rb +47 -0
- data/lib/sportradar/api/basketball/nba/player.rb +160 -0
- data/lib/sportradar/api/basketball/nba/quarter.rb +51 -0
- data/lib/sportradar/api/basketball/nba/schedule.rb +43 -0
- data/lib/sportradar/api/basketball/nba/scoring.rb +15 -0
- data/lib/sportradar/api/basketball/nba/season.rb +54 -0
- data/lib/sportradar/api/basketball/nba/series.rb +82 -0
- data/lib/sportradar/api/basketball/nba/team.rb +74 -0
- data/lib/sportradar/api/basketball/nba.rb +129 -0
- data/lib/sportradar/api/basketball/ncaamb/bracket.rb +44 -0
- data/lib/sportradar/api/basketball/ncaamb/conference.rb +41 -0
- data/lib/sportradar/api/basketball/ncaamb/division.rb +42 -0
- data/lib/sportradar/api/basketball/ncaamb/game.rb +75 -0
- data/lib/sportradar/api/basketball/ncaamb/half.rb +49 -0
- data/lib/sportradar/api/basketball/ncaamb/hierarchy.rb +65 -0
- data/lib/sportradar/api/basketball/ncaamb/player.rb +162 -0
- data/lib/sportradar/api/basketball/ncaamb/round.rb +55 -0
- data/lib/sportradar/api/basketball/ncaamb/schedule.rb +41 -0
- data/lib/sportradar/api/basketball/ncaamb/season.rb +55 -0
- data/lib/sportradar/api/basketball/ncaamb/team.rb +61 -0
- data/lib/sportradar/api/basketball/ncaamb/tournament.rb +154 -0
- data/lib/sportradar/api/basketball/ncaamb.rb +149 -0
- data/lib/sportradar/api/basketball/play.rb +75 -0
- data/lib/sportradar/api/basketball/plays/assist.rb +14 -0
- data/lib/sportradar/api/basketball/plays/base.rb +126 -0
- data/lib/sportradar/api/basketball/plays/block.rb +14 -0
- data/lib/sportradar/api/basketball/plays/clear_path_foul.rb +11 -0
- data/lib/sportradar/api/basketball/plays/deadball.rb +11 -0
- data/lib/sportradar/api/basketball/plays/defensive_three_seconds.rb +11 -0
- data/lib/sportradar/api/basketball/plays/delay.rb +11 -0
- data/lib/sportradar/api/basketball/plays/ejection.rb +14 -0
- data/lib/sportradar/api/basketball/plays/end_period.rb +28 -0
- data/lib/sportradar/api/basketball/plays/flagrant_one.rb +11 -0
- data/lib/sportradar/api/basketball/plays/flagrant_two.rb +11 -0
- data/lib/sportradar/api/basketball/plays/foul.rb +17 -0
- data/lib/sportradar/api/basketball/plays/free_throw_made.rb +23 -0
- data/lib/sportradar/api/basketball/plays/free_throw_miss.rb +25 -0
- data/lib/sportradar/api/basketball/plays/jumpball.rb +12 -0
- data/lib/sportradar/api/basketball/plays/kickball.rb +11 -0
- data/lib/sportradar/api/basketball/plays/lineup_change.rb +11 -0
- data/lib/sportradar/api/basketball/plays/offensive_foul.rb +11 -0
- data/lib/sportradar/api/basketball/plays/official_timeout.rb +11 -0
- data/lib/sportradar/api/basketball/plays/open_inbound.rb +9 -0
- data/lib/sportradar/api/basketball/plays/open_tip.rb +11 -0
- data/lib/sportradar/api/basketball/plays/personal_foul.rb +9 -0
- data/lib/sportradar/api/basketball/plays/rebound.rb +28 -0
- data/lib/sportradar/api/basketball/plays/review.rb +11 -0
- data/lib/sportradar/api/basketball/plays/shooting_foul.rb +9 -0
- data/lib/sportradar/api/basketball/plays/shot_made.rb +22 -0
- data/lib/sportradar/api/basketball/plays/shot_miss.rb +22 -0
- data/lib/sportradar/api/basketball/plays/steal.rb +11 -0
- data/lib/sportradar/api/basketball/plays/team_timeout.rb +14 -0
- data/lib/sportradar/api/basketball/plays/technical_foul.rb +14 -0
- data/lib/sportradar/api/basketball/plays/three_point_made.rb +14 -0
- data/lib/sportradar/api/basketball/plays/three_point_miss.rb +11 -0
- data/lib/sportradar/api/basketball/plays/timeout.rb +24 -0
- data/lib/sportradar/api/basketball/plays/turnover.rb +19 -0
- data/lib/sportradar/api/basketball/plays/tv_timeout.rb +11 -0
- data/lib/sportradar/api/basketball/plays/two_point_made.rb +14 -0
- data/lib/sportradar/api/basketball/plays/two_point_miss.rb +11 -0
- data/lib/sportradar/api/basketball/plays.rb +39 -0
- data/lib/sportradar/api/basketball/record.rb +28 -0
- data/lib/sportradar/api/basketball/scoring.rb +103 -0
- data/lib/sportradar/api/basketball/season.rb +20 -0
- data/lib/sportradar/api/basketball/team.rb +136 -0
- data/lib/sportradar/api/basketball/venue.rb +54 -0
- data/lib/sportradar/api/basketball.rb +35 -0
- data/lib/sportradar/api/{nfl/broadcast.rb → broadcast.rb} +1 -1
- 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 +17 -5
- data/lib/sportradar/api/data.rb +53 -0
- data/lib/sportradar/api/football/README.md +62 -0
- data/lib/sportradar/api/football/drive.rb +114 -0
- data/lib/sportradar/api/football/event.rb +36 -0
- data/lib/sportradar/api/football/game.rb +404 -0
- data/lib/sportradar/api/football/game_stats.rb +135 -0
- data/lib/sportradar/api/football/ncaafb/api.rb +81 -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 +36 -0
- data/lib/sportradar/api/football/ncaafb/game.rb +130 -0
- data/lib/sportradar/api/football/ncaafb/play.rb +97 -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 +49 -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/depth_chart.rb +53 -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/league_depth_chart.rb +41 -0
- data/lib/sportradar/api/football/nfl/play.rb +27 -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/team_depth_chart.rb +44 -0
- data/lib/sportradar/api/football/nfl/week.rb +24 -0
- data/lib/sportradar/api/football/nfl.rb +322 -0
- data/lib/sportradar/api/football/play.rb +116 -0
- data/lib/sportradar/api/football/play_statistics.rb +313 -0
- data/lib/sportradar/api/football/player.rb +121 -0
- data/lib/sportradar/api/football/quarter.rb +46 -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 +32 -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 +47 -0
- data/lib/sportradar/api/images/asset.rb +2 -1
- data/lib/sportradar/api/images/ref.rb +15 -0
- data/lib/sportradar/api/images.rb +51 -9
- data/lib/sportradar/api/mma/event.rb +111 -0
- data/lib/sportradar/api/mma/fight.rb +107 -0
- data/lib/sportradar/api/mma/fighter.rb +95 -0
- data/lib/sportradar/api/mma/judge.rb +70 -0
- data/lib/sportradar/api/mma/league.rb +63 -0
- data/lib/sportradar/api/mma/referee.rb +70 -0
- data/lib/sportradar/api/mma/result.rb +68 -0
- data/lib/sportradar/api/mma/roster.rb +72 -0
- data/lib/sportradar/api/mma/schedule.rb +53 -0
- data/lib/sportradar/api/mma/score.rb +83 -0
- data/lib/sportradar/api/mma/venue.rb +72 -0
- data/lib/sportradar/api/mma.rb +195 -0
- data/lib/sportradar/api/poll.rb +40 -0
- data/lib/sportradar/api/request.rb +40 -8
- data/lib/sportradar/api/soccer/schedule.rb +1 -0
- data/lib/sportradar/api/version.rb +1 -1
- data/lib/sportradar/api.rb +20 -34
- metadata +157 -34
- data/lib/sportradar/api/nfl/.play_statistics.rb.swo +0 -0
- 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 -16
- 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 -94
- 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 -247
- data/lib/sportradar/api/nfl/player.rb +0 -49
- 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 -205
|
@@ -4,28 +4,28 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :tackles, :assists, :combined, :sacks, :sack_yards, :interceptions, :passes_defended, :forced_fumbles, :fumble_recoveries, :qb_hits, :tloss, :tloss_yards, :safeties, :sp_tackles, :sp_assists, :sp_forced_fumbles, :sp_fumble_recoveries, :sp_blocks, :misc_tackles, :misc_assists, :misc_forced_fumbles, :misc_fumble_recoveries, :missed_tackles
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@tackles = response["tackles"]
|
|
8
|
-
@assists = response["assists"]
|
|
9
|
-
@combined = response["combined"]
|
|
10
|
-
@sacks = response["sacks"]
|
|
11
|
-
@sack_yards = response["sack_yards"]
|
|
12
|
-
@interceptions = response["interceptions"]
|
|
13
|
-
@passes_defended = response["passes_defended"]
|
|
14
|
-
@forced_fumbles = response["forced_fumbles"]
|
|
15
|
-
@fumble_recoveries = response["fumble_recoveries"]
|
|
16
|
-
@qb_hits = response["qb_hits"]
|
|
17
|
-
@tloss = response["tloss"]
|
|
7
|
+
@tackles = response["tackles"] || response["tackle"]
|
|
8
|
+
@assists = response["assists"] || response['ast']
|
|
9
|
+
@combined = response["combined"] || response['comb']
|
|
10
|
+
@sacks = response["sacks"] || response['sack']
|
|
11
|
+
@sack_yards = response["sack_yards"] || response['sack_yds']
|
|
12
|
+
@interceptions = response["interceptions"] || response['int']
|
|
13
|
+
@passes_defended = response["passes_defended"] || response['pd']
|
|
14
|
+
@forced_fumbles = response["forced_fumbles"] || response['force_fum']
|
|
15
|
+
@fumble_recoveries = response["fumble_recoveries"] || response['fum_rec']
|
|
16
|
+
@qb_hits = response["qb_hits"] || response['qh']
|
|
17
|
+
@tloss = response["tloss"] || response['tlost']
|
|
18
18
|
@tloss_yards = response["tloss_yards"]
|
|
19
|
-
@safeties = response["safeties"]
|
|
20
|
-
@sp_tackles = response["sp_tackles"]
|
|
21
|
-
@sp_assists = response["sp_assists"]
|
|
22
|
-
@sp_forced_fumbles = response["sp_forced_fumbles"]
|
|
23
|
-
@sp_fumble_recoveries = response["sp_fumble_recoveries"]
|
|
19
|
+
@safeties = response["safeties"] || response['sfty']
|
|
20
|
+
@sp_tackles = response["sp_tackles"] || response['sp_tackle']
|
|
21
|
+
@sp_assists = response["sp_assists"] || response['sp_ast']
|
|
22
|
+
@sp_forced_fumbles = response["sp_forced_fumbles"] || response['sp_force_fum']
|
|
23
|
+
@sp_fumble_recoveries = response["sp_fumble_recoveries"] || response['sp_fum_rec']
|
|
24
24
|
@sp_blocks = response["sp_blocks"]
|
|
25
|
-
@misc_tackles = response["misc_tackles"]
|
|
26
|
-
@misc_assists = response["misc_assists"]
|
|
27
|
-
@misc_forced_fumbles = response["misc_forced_fumbles"]
|
|
28
|
-
@misc_fumble_recoveries = response["misc_fumble_recoveries"]
|
|
25
|
+
@misc_tackles = response["misc_tackles"] || response['misc_tackle']
|
|
26
|
+
@misc_assists = response["misc_assists"] || response['misc_ast']
|
|
27
|
+
@misc_forced_fumbles = response["misc_forced_fumbles"] || response['misc_force_fum']
|
|
28
|
+
@misc_fumble_recoveries = response["misc_fumble_recoveries"] || response['misc_fum_rec']
|
|
29
29
|
@missed_tackles = response["missed_tackles"]
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
module Sportradar
|
|
2
2
|
module Api
|
|
3
3
|
class Football::StatPack::ExtraPoints < Football::StatPack
|
|
4
|
-
attr_accessor :attempts, :made, :blocked, :pass_attempts, :pass_successes, :rush_attempts, :rush_successes, :defense_attempts, :defense_successes, :turnover_successes
|
|
4
|
+
attr_accessor :attempts, :pct, :made, :blocked, :pass_attempts, :pass_successes, :rush_attempts, :rush_successes, :defense_attempts, :defense_successes, :turnover_successes
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
kick_data = response['kicks'] || response
|
|
8
|
-
@attempts = kick_data["attempts"]
|
|
7
|
+
kick_data = response['kicks'] || response['totals'] || response
|
|
8
|
+
@attempts = kick_data["attempts"] || kick_data["att"]
|
|
9
9
|
@made = kick_data["made"]
|
|
10
|
-
@blocked = kick_data["blocked"]
|
|
10
|
+
@blocked = kick_data["blocked"] || kick_data["blk"]
|
|
11
|
+
@pct = kick_data["pct"] || (@made.to_f / @attempts.to_i)
|
|
11
12
|
if response['conversions']
|
|
12
13
|
@pass_attempts = response["pass_attempts"]
|
|
13
14
|
@pass_successes = response["pass_successes"]
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
module Sportradar
|
|
2
2
|
module Api
|
|
3
3
|
class Football::StatPack::FieldGoals < Football::StatPack
|
|
4
|
-
attr_accessor :attempts, :made, :blocked, :yards, :avg_yards, :longest
|
|
4
|
+
attr_accessor :attempts, :pct, :made, :blocked, :yards, :avg_yards, :longest
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@attempts = response["attempts"]
|
|
7
|
+
@attempts = response["attempts"] || response["att"]
|
|
8
8
|
@made = response["made"]
|
|
9
|
-
@blocked = response["blocked"]
|
|
10
|
-
@yards = response["yards"]
|
|
9
|
+
@blocked = response["blocked"] || response['blk']
|
|
10
|
+
@yards = response["yards"] || response['yds']
|
|
11
11
|
@avg_yards = response["avg_yards"]
|
|
12
|
-
@longest = response["longest"]
|
|
12
|
+
@longest = response["longest"] || response['lg']
|
|
13
|
+
@pct = response["pct"] || (@made.to_f / @attempts.to_i)
|
|
13
14
|
end
|
|
14
15
|
end
|
|
15
16
|
|
|
@@ -5,19 +5,21 @@ module Sportradar
|
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
7
|
@response = response[1] if response.is_a? Array
|
|
8
|
-
@fumbles = response["fumbles"]
|
|
9
|
-
@lost_fumbles = response["lost_fumbles"]
|
|
8
|
+
@fumbles = response["fumbles"] || response['fum']
|
|
9
|
+
@lost_fumbles = response["lost_fumbles"] || response['lost']
|
|
10
10
|
@own_rec = response["own_rec"]
|
|
11
|
-
@own_rec_yards = response["own_rec_yards"]
|
|
11
|
+
@own_rec_yards = response["own_rec_yards"] || response["own_rec_yds"]
|
|
12
12
|
@opp_rec = response["opp_rec"]
|
|
13
|
-
@opp_rec_yards = response["opp_rec_yards"]
|
|
14
|
-
@out_of_bounds = response["out_of_bounds"]
|
|
15
|
-
@forced_fumbles = response["forced_fumbles"]
|
|
16
|
-
@own_rec_tds = response["own_rec_tds"]
|
|
17
|
-
@opp_rec_tds = response["opp_rec_tds"]
|
|
18
|
-
@ez_rec_tds = response["ez_rec_tds"]
|
|
13
|
+
@opp_rec_yards = response["opp_rec_yards"] || response["opp_rec_yds"]
|
|
14
|
+
@out_of_bounds = response["out_of_bounds"] || response['oob']
|
|
15
|
+
@forced_fumbles = response["forced_fumbles"] || response['force_fum']
|
|
16
|
+
@own_rec_tds = response["own_rec_tds"] || response["own_rec_td"]
|
|
17
|
+
@opp_rec_tds = response["opp_rec_tds"] || response["opp_rec_td"]
|
|
18
|
+
@ez_rec_tds = response["ez_rec_tds"] # unknown ncaafb
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
|
+
|
|
25
|
+
# ncaafb = {"fum"=>0, "lost"=>0, "oob"=>0, "own_rec"=>0, "own_rec_yds"=>0, "own_rec_td"=>0, "force_fum"=>3, "opp_rec"=>2, "opp_rec_yds"=>0, "opp_rec_td"=>0}
|
|
@@ -4,15 +4,16 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :returns, :yards, :avg_yards, :touchdowns, :longest, :faircatches, :longest_touchdown
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@returns = response["returns"]
|
|
8
|
-
@yards = response["yards"]
|
|
9
|
-
@avg_yards = response["avg_yards"]
|
|
10
|
-
@touchdowns = response["touchdowns"]
|
|
11
|
-
@longest = response["longest"]
|
|
12
|
-
@faircatches = response["faircatches"]
|
|
13
|
-
@longest_touchdown = response["longest_touchdown"]
|
|
7
|
+
@returns = response["returns"] || response['number']
|
|
8
|
+
@yards = response["yards"] || response['yds']
|
|
9
|
+
@avg_yards = response["avg_yards"] || response['avg']
|
|
10
|
+
@touchdowns = response["touchdowns"] || response['td']
|
|
11
|
+
@longest = response["longest"] || response['lg']
|
|
12
|
+
@faircatches = response["faircatches"] || response['fc']
|
|
13
|
+
@longest_touchdown = response["longest_touchdown"] # unknown ncaafb
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
|
+
# ncaafb = {"returns"=>4, "yds"=>125, "fc"=>0, "lg"=>47, "td"=>0, "avg"=>31.25, "yds_10_pls"=>0, "yds_20_pls"=>1, "yds_30_pls"=>0, "yds_40_pls"=>2, "yds_50_pls"=>0}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
module Sportradar
|
|
2
2
|
module Api
|
|
3
3
|
class Football::StatPack::Kickoffs < Football::StatPack
|
|
4
|
-
attr_accessor :kickoffs, :endzone, :inside_20, :return_yards, :touchbacks, :yards, :out_of_bounds
|
|
4
|
+
attr_accessor :kickoffs, :endzone, :inside_20, :return_yards, :touchbacks, :yards, :out_of_bounds, :average
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@kickoffs = response["kickoffs"]
|
|
7
|
+
@kickoffs = response["kickoffs"] || response['kicks'] || response['number']
|
|
8
8
|
@endzone = response["endzone"]
|
|
9
|
-
@inside_20 = response["inside_20"]
|
|
10
|
-
@return_yards = response["return_yards"]
|
|
11
|
-
@touchbacks = response["touchbacks"]
|
|
12
|
-
@yards = response["yards"]
|
|
13
|
-
@
|
|
9
|
+
@inside_20 = response["inside_20"] || response['in20']
|
|
10
|
+
@return_yards = response["return_yards"] || response['ret_yds']
|
|
11
|
+
@touchbacks = response["touchbacks"] || response['tb']
|
|
12
|
+
@yards = response["yards"] || response['yds']
|
|
13
|
+
@average = response['avg'] || (@yards.to_f / @kickoffs.to_i)
|
|
14
|
+
@out_of_bounds = response["out_of_bounds"] # unknown ncaafb
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
end
|
|
18
19
|
end
|
|
20
|
+
# ncaafb = {"kicks"=>10, "yds"=>606, "net_yds"=>411, "lg"=>65, "endzone"=>3, "in20"=>3, "tb"=>2, "ret"=>7, "avg"=>60.6, "net_avg"=>41.1, "ret_yds"=>195, "avg_ret"=>27.857, "in20_pct"=>30.0, "tb_pct"=>20.0}
|
|
@@ -4,7 +4,7 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :returns, :yards, :touchdowns, :blk_fg_touchdowns, :blk_punt_touchdowns, :fg_return_touchdowns, :ez_rec_touchdowns
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@returns = response["returns"]
|
|
7
|
+
@returns = response["returns"] || response['number']
|
|
8
8
|
@yards = response["yards"]
|
|
9
9
|
@touchdowns = response["touchdowns"]
|
|
10
10
|
@blk_fg_touchdowns = response["blk_fg_touchdowns"]
|
|
@@ -4,21 +4,23 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :attempts, :completions, :cmp_pct, :yards, :avg_yards, :sacks, :sack_yards, :touchdowns, :longest, :interceptions, :rating, :longest_touchdown, :air_yards, :net_yards, :redzone_attempts
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@attempts = response["attempts"]
|
|
8
|
-
@completions = response["completions"]
|
|
7
|
+
@attempts = response["attempts"] || response['att']
|
|
8
|
+
@completions = response["completions"] || response['cmp']
|
|
9
9
|
@cmp_pct = response["cmp_pct"]
|
|
10
|
-
|
|
11
|
-
@
|
|
12
|
-
@
|
|
13
|
-
@
|
|
14
|
-
@
|
|
15
|
-
@
|
|
16
|
-
@
|
|
10
|
+
# 'yards' is air yards, which does not include sack yardage. air_yards is for college, net_yards for NFL
|
|
11
|
+
@yards = response["yards"] || response['yds']
|
|
12
|
+
@avg_yards = response["avg_yards"] || response['avg']
|
|
13
|
+
@sacks = response["sacks"] || response['sk']
|
|
14
|
+
@sack_yards = response["sack_yards"] || response['sk_yds']
|
|
15
|
+
@touchdowns = response["touchdowns"] || response['td']
|
|
16
|
+
@longest = response["longest"] || response['lg']
|
|
17
|
+
@interceptions = response["interceptions"] || response['int']
|
|
17
18
|
@rating = response["rating"]
|
|
18
19
|
@longest_touchdown = response["longest_touchdown"]
|
|
19
20
|
@air_yards = response["air_yards"]
|
|
20
|
-
|
|
21
|
-
@
|
|
21
|
+
# passing net_yards is the correct measure for team stats, as it includes sack yardage
|
|
22
|
+
@net_yards = response["net_yards"]
|
|
23
|
+
@redzone_attempts = response["redzone_attempts"] || response['rz_att']
|
|
22
24
|
end
|
|
23
25
|
end
|
|
24
26
|
|
|
@@ -7,8 +7,8 @@ module Sportradar
|
|
|
7
7
|
|
|
8
8
|
def set_stats
|
|
9
9
|
@response = (response.dig(1) || {}) if response.is_a? Array
|
|
10
|
-
@penalties = response.dig('penalties')
|
|
11
|
-
@yards = response.dig('yards')
|
|
10
|
+
@penalties = response.dig('penalties') || response['num']
|
|
11
|
+
@yards = response.dig('yards') || response['yds']
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def formatted
|
|
@@ -5,14 +5,15 @@ module Sportradar
|
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
7
|
@returns = response["returns"]
|
|
8
|
-
@yards = response["yards"]
|
|
9
|
-
@avg_yards = response["avg_yards"]
|
|
10
|
-
@touchdowns = response["touchdowns"]
|
|
11
|
-
@longest = response["longest"]
|
|
12
|
-
@faircatches = response["faircatches"]
|
|
13
|
-
@longest_touchdown = response["longest_touchdown"]
|
|
8
|
+
@yards = response["yards"] || response['yds']
|
|
9
|
+
@avg_yards = response["avg_yards"] || response['avg']
|
|
10
|
+
@touchdowns = response["touchdowns"] || response['td']
|
|
11
|
+
@longest = response["longest"] || response['lg']
|
|
12
|
+
@faircatches = response["faircatches"] || response['fc']
|
|
13
|
+
@longest_touchdown = response["longest_touchdown"] # unknown ncaafb
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
|
+
# ncaafb = {"returns"=>2, "yds"=>1, "fc"=>1, "lg"=>1, "td"=>0, "avg"=>0.5, "yds_10_pls"=>0, "yds_20_pls"=>0, "yds_30_pls"=>0, "yds_40_pls"=>0, "yds_50_pls"=>0}
|
|
@@ -4,18 +4,20 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :avg_yards, :yards, :attempts, :blocked, :longest, :touchbacks, :inside_20, :avg_net_yards, :return_yards, :net_yards
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@avg_yards = response["avg_yards"]
|
|
8
|
-
@yards = response["yards"]
|
|
9
|
-
@attempts = response["attempts"]
|
|
10
|
-
@blocked = response["blocked"]
|
|
11
|
-
@longest = response["longest"]
|
|
12
|
-
@touchbacks = response["touchbacks"]
|
|
13
|
-
@inside_20 = response["inside_20"]
|
|
14
|
-
@avg_net_yards = response["avg_net_yards"]
|
|
15
|
-
@return_yards = response["return_yards"]
|
|
16
|
-
@net_yards = response["net_yards"]
|
|
7
|
+
@avg_yards = response["avg_yards"] || response['avg']
|
|
8
|
+
@yards = response["yards"] || response['yds']
|
|
9
|
+
@attempts = response["attempts"] || response['punts']
|
|
10
|
+
@blocked = response["blocked"] || response['blk']
|
|
11
|
+
@longest = response["longest"] || response['lg']
|
|
12
|
+
@touchbacks = response["touchbacks"] || response['tb']
|
|
13
|
+
@inside_20 = response["inside_20"] || response['in20']
|
|
14
|
+
@avg_net_yards = response["avg_net_yards"] || response['net_avg']
|
|
15
|
+
@return_yards = response["return_yards"] || response['return_yards']
|
|
16
|
+
@net_yards = response["net_yards"] # unknown ncaafb
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
+
|
|
23
|
+
# ncaafb = {"punts"=>3, "yds"=>94, "net_yds"=>94, "lg"=>39, "blk"=>0, "in20"=>2, "tb"=>0, "ret"=>0, "sfty"=>0, "avg"=>31.333, "net_avg"=>31.333, "ret_yds"=>0, "avg_ret"=>0.0, "in20_pct"=>66.667, "tb_pct"=>0.0}
|
|
@@ -4,18 +4,19 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :avg_yards, :yards, :touchdowns, :longest, :longest_touchdown, :targets, :receptions, :yards_after_catch, :redzone_targets, :air_yards
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@
|
|
8
|
-
@
|
|
9
|
-
@
|
|
10
|
-
@longest = response["longest"]
|
|
7
|
+
@yards = response["yards"] || response['yds']
|
|
8
|
+
@touchdowns = response["touchdowns"] || response['td']
|
|
9
|
+
@longest = response["longest"] || response['lg']
|
|
11
10
|
@longest_touchdown = response["longest_touchdown"]
|
|
12
|
-
@targets = response["targets"]
|
|
13
|
-
@receptions = response["receptions"]
|
|
14
|
-
@yards_after_catch = response["yards_after_catch"]
|
|
15
|
-
@redzone_targets = response["redzone_targets"]
|
|
16
|
-
@air_yards = response["air_yards"]
|
|
11
|
+
@targets = response["targets"] || response['tar']
|
|
12
|
+
@receptions = response["receptions"] || response['rec']
|
|
13
|
+
@yards_after_catch = response["yards_after_catch"] || response['yac']
|
|
14
|
+
@redzone_targets = response["redzone_targets"] || response['rz_tar']
|
|
15
|
+
@air_yards = response["air_yards"] # unknown ncaafb
|
|
16
|
+
@avg_yards = response["avg_yards"] || (@yards.to_f / @receptions.to_i)
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
+
# ncaafb = {"tar"=>54, "rec"=>38, "yds"=>441, "yac"=>441, "fd"=>19, "avg"=>11.605, "td"=>4, "lg"=>34, "rz_tar"=>8, "fum"=>0, "yds_10_pls"=>9, "yds_20_pls"=>3, "yds_30_pls"=>3, "yds_40_pls"=>0, "yds_50_pls"=>0}
|
|
@@ -4,17 +4,19 @@ module Sportradar
|
|
|
4
4
|
attr_accessor :avg_yards, :yards, :touchdowns, :longest, :longest_touchdown, :attempts, :tlost, :tlost_yards, :redzone_attempts
|
|
5
5
|
|
|
6
6
|
def set_stats
|
|
7
|
-
@avg_yards = response["avg_yards"]
|
|
8
|
-
@yards = response["yards"]
|
|
9
|
-
@touchdowns = response["touchdowns"]
|
|
10
|
-
@longest = response["longest"]
|
|
11
|
-
@longest_touchdown = response["longest_touchdown"]
|
|
12
|
-
@attempts = response["attempts"]
|
|
13
|
-
@tlost = response["tlost"]
|
|
14
|
-
@tlost_yards = response["tlost_yards"]
|
|
15
|
-
@redzone_attempts = response["redzone_attempts"]
|
|
7
|
+
@avg_yards = response["avg_yards"] || response['avg']
|
|
8
|
+
@yards = response["yards"] || response['yds']
|
|
9
|
+
@touchdowns = response["touchdowns"] || response['td']
|
|
10
|
+
@longest = response["longest"] || response['lg']
|
|
11
|
+
@longest_touchdown = response["longest_touchdown"] # unknown ncaafb
|
|
12
|
+
@attempts = response["attempts"] || response['att']
|
|
13
|
+
@tlost = response["tlost"] # unknown ncaafb
|
|
14
|
+
@tlost_yards = response["tlost_yards"] # unknown ncaafb
|
|
15
|
+
@redzone_attempts = response["redzone_attempts"] || response['rz_att']
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
|
+
|
|
22
|
+
# ncaafb = {"att"=>35, "yds"=>189, "avg"=>5.4, "lg"=>40, "td"=>2, "fd"=>11, "fd_pct"=>31.429, "sfty"=>0, "rz_att"=>8, "fum"=>0, "yds_10_pls"=>1, "yds_20_pls"=>1, "yds_30_pls"=>1, "yds_40_pls"=>1, "yds_50_pls"=>0}
|
|
@@ -5,9 +5,13 @@ module Sportradar
|
|
|
5
5
|
attr_accessor :response, :player, :name, :id, :position, :yards, :players
|
|
6
6
|
|
|
7
7
|
def initialize(data)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
if data['name']
|
|
9
|
+
@response = data
|
|
10
|
+
@player = Sportradar::Api::Football::Nfl::Player.new(data) # need to handle ncaa/nfl, although it may not matter
|
|
11
|
+
else
|
|
12
|
+
@response = data['team'] || data['totals'] || data['kicks']
|
|
13
|
+
@players = parse_into_array(selector: data["players"], klass: self.class) if data["players"]
|
|
14
|
+
end
|
|
11
15
|
set_stats
|
|
12
16
|
end
|
|
13
17
|
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
module Football
|
|
4
|
+
class Team < Data
|
|
5
|
+
attr_accessor :response, :id, :market, :name, :alias, :full_name, :venue, :records, :player_stats, :team_stats, :seed, :season, :type, :stats
|
|
6
|
+
|
|
7
|
+
def initialize(data, **opts)
|
|
8
|
+
@response = data
|
|
9
|
+
@api = opts[:api]
|
|
10
|
+
|
|
11
|
+
@games_hash = {}
|
|
12
|
+
@players_hash = {}
|
|
13
|
+
@player_stats = {}
|
|
14
|
+
@records = {}
|
|
15
|
+
@stats = nil
|
|
16
|
+
@points = nil
|
|
17
|
+
|
|
18
|
+
case data
|
|
19
|
+
when String
|
|
20
|
+
@id = data
|
|
21
|
+
when Hash
|
|
22
|
+
@id = data['id']
|
|
23
|
+
update(data, **opts)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def update(data, **opts)
|
|
28
|
+
handle_names(data)
|
|
29
|
+
@id = data['id'] || @id
|
|
30
|
+
|
|
31
|
+
@venue = Venue.new(data['venue']) if data['venue']
|
|
32
|
+
|
|
33
|
+
@seed = data['seed'].to_i if data['seed']
|
|
34
|
+
@alias = data['alias'] if data['alias']
|
|
35
|
+
@points = data['points'].to_i if data['points']
|
|
36
|
+
|
|
37
|
+
parse_records(data) if data['records']
|
|
38
|
+
parse_players(data.dig('players'), opts[:game]) if data.dig('players')
|
|
39
|
+
# parse_stats(data['statistics']) if data['statistics']
|
|
40
|
+
if opts[:game]
|
|
41
|
+
add_game(opts[:game])
|
|
42
|
+
opts[:game].update_score(id => @points) if @points
|
|
43
|
+
if data['statistics']
|
|
44
|
+
@stats = Sportradar::Api::Football::GameStats.new(data['statistics'])
|
|
45
|
+
opts[:game].update_stats(self, @stats)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
def handle_names(data)
|
|
50
|
+
# need to do some more work here
|
|
51
|
+
@name = data['name'] if data['name']
|
|
52
|
+
if data['name'] && !data.key?('market')
|
|
53
|
+
@full_name = data['name']
|
|
54
|
+
elsif data['name'] && data['market']
|
|
55
|
+
@market = data['market']
|
|
56
|
+
@full_name = [@market, data['name']].join(' ')
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def record(type = 'overall')
|
|
61
|
+
@records[type]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def games
|
|
65
|
+
@games_hash.values
|
|
66
|
+
end
|
|
67
|
+
def add_game(game)
|
|
68
|
+
@games_hash[game.id] = game.id if game
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# def parse_stats(data)
|
|
72
|
+
# @stats = data
|
|
73
|
+
# end
|
|
74
|
+
|
|
75
|
+
def players
|
|
76
|
+
get_roster if @players_hash.empty?
|
|
77
|
+
@players_hash.values
|
|
78
|
+
end
|
|
79
|
+
alias :roster :players
|
|
80
|
+
def parse_players(data, game)
|
|
81
|
+
create_data(@players_hash, data, klass: player_class, api: api, team: self, game: game)
|
|
82
|
+
end
|
|
83
|
+
def update_player_stats(player, stats, game = nil)
|
|
84
|
+
game ? game.update_player_stats(player, stats) : @player_stats.merge!(player.id => stats.merge!(player: player))
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def get_roster
|
|
88
|
+
data = api.get_data(path_roster).to_h
|
|
89
|
+
ingest_roster(data)
|
|
90
|
+
end
|
|
91
|
+
def ingest_roster(data)
|
|
92
|
+
update(data)
|
|
93
|
+
data
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def get_season_stats(year = default_year)
|
|
97
|
+
data = api.get_data(path_season_stats(year)).to_h
|
|
98
|
+
ingest_season_stats(data)
|
|
99
|
+
end
|
|
100
|
+
def ingest_season_stats(data)
|
|
101
|
+
parse_season_stats(data)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# def ingest_season_stats(data)
|
|
105
|
+
# update(data, source: :teams)
|
|
106
|
+
# data
|
|
107
|
+
# end
|
|
108
|
+
|
|
109
|
+
def queue_season_stats(year = default_year)
|
|
110
|
+
url, headers, options, timeout = api.get_request_info(path_season_stats(year))
|
|
111
|
+
{url: url, headers: headers, params: options, timeout: timeout, callback: method(:ingest_season_stats)}
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def parse_records(data)
|
|
115
|
+
@records['overall'] = Record.new(data, type: 'overall')
|
|
116
|
+
data['records'].each { |record| @records[record['record_type']] = Record.new(record, type: record['record_type']) }
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def parse_season_stats(data)
|
|
120
|
+
@team_stats = data.dig('statistics')
|
|
121
|
+
update(data)
|
|
122
|
+
player_data = data.dig('players')
|
|
123
|
+
create_data(@players_hash, player_data, klass: player_class, api: api, team: self)
|
|
124
|
+
data
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def path_base
|
|
128
|
+
"teams/#{ id }"
|
|
129
|
+
end
|
|
130
|
+
def path_base_stats(year = season_year, season = default_season)
|
|
131
|
+
"seasontd/#{year}/#{season}/teams/#{id}"
|
|
132
|
+
end
|
|
133
|
+
def path_roster
|
|
134
|
+
"#{ path_base }/profile" # nfl is profile, ncaa is roster
|
|
135
|
+
end
|
|
136
|
+
def path_season_stats
|
|
137
|
+
"#{ path_base_stats }/statistics"
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def season_year
|
|
142
|
+
@season || default_year
|
|
143
|
+
end
|
|
144
|
+
alias :year :season_year
|
|
145
|
+
|
|
146
|
+
private
|
|
147
|
+
def default_year
|
|
148
|
+
(Date.today - 60).year
|
|
149
|
+
end
|
|
150
|
+
def default_date
|
|
151
|
+
Date.today
|
|
152
|
+
end
|
|
153
|
+
def default_season
|
|
154
|
+
'reg'
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
module Football
|
|
4
|
+
class Venue < Data
|
|
5
|
+
attr_accessor :response, :id, :name, :city, :state, :country, :zip, :address, :capacity, :surface, :roof_type, :timezone
|
|
6
|
+
|
|
7
|
+
def initialize(data)
|
|
8
|
+
@response = data
|
|
9
|
+
@id = data["id"]
|
|
10
|
+
@name = data["name"]
|
|
11
|
+
@city = data["city"]
|
|
12
|
+
@state = data["state"]
|
|
13
|
+
@country = data["country"]
|
|
14
|
+
@zip = data["zip"]
|
|
15
|
+
@address = data["address"]
|
|
16
|
+
@capacity = data["capacity"]
|
|
17
|
+
@timezone = data['timezone']
|
|
18
|
+
@surface = data["surface"]
|
|
19
|
+
@roof_type = data["roof_type"]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
module Football
|
|
4
|
+
class Week < Data
|
|
5
|
+
attr_accessor :response, :id, :number, :api, :hierarchy, :year, :type, :sequence
|
|
6
|
+
|
|
7
|
+
def all_attributes
|
|
8
|
+
[:number]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(data = {}, **opts)
|
|
12
|
+
# @response = data
|
|
13
|
+
@api = opts[:api]
|
|
14
|
+
@id = data['id']
|
|
15
|
+
@hierarchy = opts[:hierarchy]
|
|
16
|
+
|
|
17
|
+
@games_hash = {}
|
|
18
|
+
|
|
19
|
+
update(data, **opts)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def update(data, source: nil, **opts)
|
|
23
|
+
# update stuff
|
|
24
|
+
@year = opts[:hierarchy].season_year if opts[:hierarchy]
|
|
25
|
+
@type = opts[:hierarchy].season if opts[:hierarchy]
|
|
26
|
+
|
|
27
|
+
@number = data['number'] || data['title'] || @number
|
|
28
|
+
@sequence = data['sequence'] if data['sequence']
|
|
29
|
+
|
|
30
|
+
create_data(@games_hash, data['games'], klass: game_class, week: self, api: api)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def games
|
|
34
|
+
@games_hash.values
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
__END__
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
ncaafb = Sportradar::Api::Football::Ncaafb::Hierarchy.new
|
|
47
|
+
ncaafb = Sportradar::Api::Football::Ncaafb::Hierarchy.new
|
|
48
|
+
res1 = ncaafb.get_schedule;
|
|
49
|
+
res2 = ncaafb.get_weekly_schedule;
|
|
50
|
+
|
|
51
|
+
ncaafb = Sportradar::Api::Football::Ncaafb::Hierarchy.new
|
|
52
|
+
gg = ncaafb.games;
|
|
53
|
+
g = gg.first;
|
|
54
|
+
g.week
|
|
55
|
+
g.week_number
|
|
56
|
+
g.year
|
|
57
|
+
g.type
|