sportradar-api 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/sportradar/api/data.rb +17 -0
- data/lib/sportradar/api/nfl/broadcast.rb +13 -0
- data/lib/sportradar/api/nfl/changelog.rb +39 -0
- data/lib/sportradar/api/nfl/coach.rb +17 -0
- data/lib/sportradar/api/nfl/conference.rb +28 -0
- data/lib/sportradar/api/nfl/depth_chart.rb +15 -0
- data/lib/sportradar/api/nfl/division.rb +28 -0
- data/lib/sportradar/api/nfl/draft.rb +16 -0
- data/lib/sportradar/api/nfl/drive.rb +38 -0
- data/lib/sportradar/api/nfl/event.rb +19 -0
- data/lib/sportradar/api/nfl/franchise.rb +15 -0
- data/lib/sportradar/api/nfl/game.rb +50 -0
- data/lib/sportradar/api/nfl/hierarchy.rb +39 -0
- data/lib/sportradar/api/nfl/injury.rb +16 -0
- data/lib/sportradar/api/nfl/play.rb +28 -0
- data/lib/sportradar/api/nfl/player.rb +52 -0
- data/lib/sportradar/api/nfl/position.rb +26 -0
- data/lib/sportradar/api/nfl/quarter.rb +17 -0
- data/lib/sportradar/api/nfl/scoring.rb +24 -0
- data/lib/sportradar/api/nfl/season.rb +31 -0
- data/lib/sportradar/api/nfl/situation.rb +17 -0
- data/lib/sportradar/api/nfl/statistic.rb +28 -0
- data/lib/sportradar/api/nfl/summary.rb +18 -0
- data/lib/sportradar/api/nfl/team.rb +59 -0
- data/lib/sportradar/api/nfl/venue.rb +22 -0
- data/lib/sportradar/api/nfl/week.rb +17 -0
- data/lib/sportradar/api/nfl.rb +49 -32
- data/lib/sportradar/api/soccer/boxscore.rb +2 -3
- data/lib/sportradar/api/soccer/category.rb +28 -0
- data/lib/sportradar/api/soccer/fact.rb +2 -2
- data/lib/sportradar/api/soccer/hierarchy.rb +26 -0
- data/lib/sportradar/api/soccer/match.rb +5 -5
- data/lib/sportradar/api/soccer/player.rb +47 -6
- data/lib/sportradar/api/soccer/ranking.rb +26 -0
- data/lib/sportradar/api/soccer/schedule.rb +3 -4
- data/lib/sportradar/api/soccer/season.rb +27 -0
- data/lib/sportradar/api/soccer/standing.rb +24 -0
- data/lib/sportradar/api/soccer/statistic.rb +14 -0
- data/lib/sportradar/api/soccer/summary.rb +3 -4
- data/lib/sportradar/api/soccer/team.rb +20 -13
- data/lib/sportradar/api/soccer/tournament.rb +33 -0
- data/lib/sportradar/api/soccer/tournament_group.rb +45 -0
- data/lib/sportradar/api/soccer/venue.rb +2 -2
- data/lib/sportradar/api/soccer.rb +8 -5
- data/lib/sportradar/api/version.rb +1 -1
- data/lib/sportradar/api.rb +35 -0
- metadata +36 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61d28c013ff7cfd245145199a7e089cba0b0b101
|
4
|
+
data.tar.gz: c6856d11821f19686b04ff486540a82c2e7a48d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66f4d1ec24f715eaee2d64ebffe3957862b7d70ab2123de2198f523262dcabd71852116eab81474b51ed4c08a30520b3378416eb5c722efd5341bcf0d5a10dc3
|
7
|
+
data.tar.gz: 117a53815486c513c907232c39d612d4265fc3daecfbf703e82fbe0c510060191b8ed3f971e1964229d667b3a6841db1617928d9f7d088cd50b0e21bf181ff4e
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Data
|
4
|
+
|
5
|
+
# Attributes that have a value
|
6
|
+
def attributes
|
7
|
+
all_attributes.select {|x| !self.send(x).nil? }
|
8
|
+
end
|
9
|
+
|
10
|
+
def all_attributes
|
11
|
+
self.instance_variables.map{|attribute| attribute.to_s.gsub('@', '').to_sym }
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Changelog < Data
|
4
|
+
attr_accessor :response, :start_time, :end_time, :players, :games
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@start_time = data["start_time"]
|
9
|
+
@end_time = data["end_time"]
|
10
|
+
set_players
|
11
|
+
set_games
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def set_games
|
17
|
+
if response["game"]
|
18
|
+
if response["game"].is_a?(Array)
|
19
|
+
@games = response["game"].map {|game| Sportradar::Api::Nfl::Game.new game }
|
20
|
+
elsif response["game"].is_a?(Hash)
|
21
|
+
@games = [ Sportradar::Api::Nfl::Game.new(response["game"]) ]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def set_players
|
28
|
+
if response["profiles"] && response["profiles"]["players"] && response["profiles"]["players"]["player"]
|
29
|
+
if response["profiles"]["players"]["player"].is_a?(Array)
|
30
|
+
@players = response["profiles"]["players"]["player"].map {|player| Sportradar::Api::Nfl::Player.new player }
|
31
|
+
elsif response["profiles"]["players"]["player"].is_a?(Hash)
|
32
|
+
@players = [ Sportradar::Api::Nfl::Player.new(response["profiles"]["players"]["player"]) ]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Coach < Data
|
4
|
+
attr_accessor :response, :id, :full_name, :first_name, :last_name, :position
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@full_name = data["full_name"]
|
10
|
+
@first_name = data["first_name"]
|
11
|
+
@last_name = data["last_name"]
|
12
|
+
@position = data["position"]
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Conference < Data
|
4
|
+
attr_accessor :response, :id, :name, :alias, :divisions
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@name = data["name"]
|
10
|
+
@alias = data["alias"]
|
11
|
+
set_divisions
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def set_divisions
|
17
|
+
if response["division"]
|
18
|
+
if response["division"].is_a?(Array)
|
19
|
+
@divisions = response["division"].map {|division| Sportradar::Api::Nfl::Division.new division }
|
20
|
+
elsif response["division"].is_a?(Hash)
|
21
|
+
@divisions = [ Sportradar::Api::Nfl::Division.new(response["division"]) ]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::DepthChart < Data
|
4
|
+
attr_accessor :response, :season, :teams
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@season = Sportradar::Api::Nfl::Season.new data["season"] if data["season"]
|
9
|
+
@teams = data["season"]["depth_charts"]["team"].map {|team| Sportradar::Api::Nfl::Team.new team } if data["season"]["depth_charts"]["team"]
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Division < Data
|
4
|
+
attr_accessor :response, :id, :name, :alias, :teams
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@name = data["name"]
|
10
|
+
@alias = data["alias"]
|
11
|
+
set_teams
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def set_teams
|
17
|
+
if response["team"]
|
18
|
+
if response["team"].is_a?(Array)
|
19
|
+
@teams = response["team"].map {|team| Sportradar::Api::Nfl::Team.new team }
|
20
|
+
elsif response["team"].is_a?(Hash)
|
21
|
+
@teams = [ Sportradar::Api::Nfl::Team.new(response["team"]) ]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Draft < Data
|
4
|
+
attr_accessor :response, :year, :round, :number, :team
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@year = data["year"]
|
9
|
+
@round = data["round"]
|
10
|
+
@number = data["number"]
|
11
|
+
@team = Sportradar::Api::Nfl::Team.new data["team"] if data["team"]
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Drive < Data
|
4
|
+
attr_accessor :response, :id, :sequence, :start_reason, :end_reason, :play_count, :duration, :first_downs, :gain, :penalty_yards, :scoring_drive, :quarter, :team, :plays
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@sequence = data["sequence"]
|
10
|
+
@start_reason = data["start_reason"]
|
11
|
+
@end_reason = data["end_reason"]
|
12
|
+
@play_count = data["play_count"]
|
13
|
+
@duration = data["duration"]
|
14
|
+
@first_downs = data["first_downs"]
|
15
|
+
@gain = data["gain"]
|
16
|
+
@penalty_yards = data["penalty_yards"]
|
17
|
+
@scoring_drive = data["scoring_drive"]
|
18
|
+
@quarter = Sportradar::Api::Nfl::Quarter.new data["quarter"] if data["quarter"]
|
19
|
+
@team = Sportradar::Api::Nfl::Team.new data["team"] if data["team"]
|
20
|
+
set_plays
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def set_plays
|
27
|
+
if response["plays"] && response["plays"]["play"]
|
28
|
+
if response["plays"]["play"].is_a?(Array)
|
29
|
+
@plays = response["plays"]["play"].map {|play| Sportradar::Api::Nfl::Play.new play }
|
30
|
+
elsif response["plays"]["play"].is_a?(Hash)
|
31
|
+
@plays = [ Sportradar::Api::Nfl::Play.new(response["plays"]["play"]) ]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Event < Data
|
4
|
+
attr_accessor :response, :id, :sequence, :reference, :clock, :type, :description, :alt_description
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@sequence = data["sequence"]
|
10
|
+
@reference = data["reference"]
|
11
|
+
@clock = data["clock"]
|
12
|
+
@type = data["type"]
|
13
|
+
@description = data["description"]
|
14
|
+
@alt_description = data["alt_description"]
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Game < Data
|
4
|
+
attr_accessor :response, :id, :status, :reference, :number, :scheduled, :entry_mode, :venue, :home, :away, :broadcast, :number, :attendance, :utc_offset, :weather, :clock, :quarter, :summary, :situation, :last_event, :scoring, :scoring_drives
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@status = data["status"]
|
10
|
+
@reference = data["reference"]
|
11
|
+
@number = data["number"]
|
12
|
+
@scheduled = data["scheduled"]
|
13
|
+
@entry_mode = data["entry_mode"]
|
14
|
+
|
15
|
+
# game boxscore
|
16
|
+
@number = data["number"]
|
17
|
+
@attendance = data["attendance"]
|
18
|
+
@utc_offset = data["utc_offset"]
|
19
|
+
@weather = data["weather"]
|
20
|
+
@clock = data["clock"]
|
21
|
+
@quarter = data["quarter"]
|
22
|
+
@summary = Sportradar::Api::Nfl::Summary.new data["summary"] if data["summary"]
|
23
|
+
@situation = Sportradar::Api::Nfl::Situation.new data["situation"] if data["situation"]
|
24
|
+
@last_event = Sportradar::Api::Nfl::Event.new data["last_event"]["event"] if data["last_event"] && data["last_event"]["event"]
|
25
|
+
@scoring = Sportradar::Api::Nfl::Scoring.new data["scoring"] if data["scoring"]
|
26
|
+
set_scoring_drives
|
27
|
+
|
28
|
+
@venue = Sportradar::Api::Nfl::Venue.new data["venue"] if data["venue"]
|
29
|
+
@home = Sportradar::Api::Nfl::Team.new data["home"] if data["home"]
|
30
|
+
@away = Sportradar::Api::Nfl::Team.new data["away"] if data["away"]
|
31
|
+
@broadcast = Sportradar::Api::Nfl::Broadcast.new data["broadcast"] if data["broadcast"]
|
32
|
+
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def set_scoring_drives
|
39
|
+
if response["scoring_drives"] && response["scoring_drives"]["drive"]
|
40
|
+
if response["scoring_drives"]["drive"].is_a?(Array)
|
41
|
+
@scoring_drives = response["scoring_drives"]["drive"].map {|scoring_drive| Sportradar::Api::Nfl::Drive.new scoring_drive }
|
42
|
+
elsif response["scoring_drives"]["drive"].is_a?(Hash)
|
43
|
+
@scoring_drives = [ Sportradar::Api::Nfl::Drive.new(response["scoring_drives"]["drive"]) ]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Hierarchy < Data
|
4
|
+
attr_accessor :response, :id, :name, :alias, :divisions, :conferences
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@id = data["id"]
|
9
|
+
@name = data["name"]
|
10
|
+
@alias = data["alias"]
|
11
|
+
set_divisions
|
12
|
+
set_conferences
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def set_divisions
|
18
|
+
if response["division"]
|
19
|
+
if response["division"].is_a?(Array)
|
20
|
+
@divisions = response["division"].map {|division| Sportradar::Api::Nfl::Division.new division }
|
21
|
+
elsif response["division"].is_a?(Hash)
|
22
|
+
@divisions = [ Sportradar::Api::Nfl::Division.new(response["division"]) ]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_conferences
|
28
|
+
if response["conference"]
|
29
|
+
if response["conference"].is_a?(Array)
|
30
|
+
@conferences = response["conference"].map {|conference| Sportradar::Api::Nfl::Conference.new conference }
|
31
|
+
elsif response["conference"].is_a?(Hash)
|
32
|
+
@conferences = [ Sportradar::Api::Nfl::Conference.new(response["conference"]) ]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Injury < Data
|
4
|
+
attr_accessor :response, :status, :status_date, :practice, :primary
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@response = data
|
8
|
+
@status = data["status"]
|
9
|
+
@status_date = data["status_date"]
|
10
|
+
@practice = OpenStruct.new data["practice"] if data['practice']
|
11
|
+
@primary = data["primary"]
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Play < 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 = OpenStruct.new data["statistics"] if data["statistics"] # TODO Implement statistics?
|
22
|
+
@type = data["type"]
|
23
|
+
@wall_clock = data["wall_clock"]
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Player < Data
|
4
|
+
attr_accessor :response, :id, :sequence, :title, :game, :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
|
+
@response = data
|
8
|
+
@depth = data["depth"]
|
9
|
+
@game = data["game"] # Games
|
10
|
+
@id = data["id"]
|
11
|
+
@jersey = data["jersey"]
|
12
|
+
@name = data["name"]
|
13
|
+
@position = data["position"]
|
14
|
+
@reference = data["reference"]
|
15
|
+
@sequence = data["sequence"]
|
16
|
+
@title = data["title"]
|
17
|
+
@age = data["age"]
|
18
|
+
@birth_date = data["birth_date"]
|
19
|
+
@birth_place = data["birth_place"]
|
20
|
+
@college = data["college"]
|
21
|
+
@college_conf = data["college_conf"]
|
22
|
+
@first_name = data["first_name"]
|
23
|
+
@height = data["height"]
|
24
|
+
@high_school = data["high_school"]
|
25
|
+
@last_name = data["last_name"]
|
26
|
+
@preferred_name = data["preferred_name"]
|
27
|
+
@references = data["references"]
|
28
|
+
@rookie_year = data["rookie_year"]
|
29
|
+
@status = data["status"]
|
30
|
+
@weight = data["weight"]
|
31
|
+
@abbr_name = data["abbr_name"]
|
32
|
+
@team = Sportradar::Api::Nfl::Team.new data["team"] if data["team"]
|
33
|
+
@injury = Sportradar::Api::Nfl::Injury.new data["injury"] if data["injury"]
|
34
|
+
@draft = Sportradar::Api::Nfl::Draft.new data["draft"] if data["draft"]
|
35
|
+
set_seasons
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def set_seasons
|
41
|
+
if response["season"]
|
42
|
+
if response["season"].is_a?(Array)
|
43
|
+
@seasons = response["season"].map {|season| Sportradar::Api::Nfl::Season.new season }
|
44
|
+
elsif response["season"].is_a?(Hash)
|
45
|
+
@seasons = [ Sportradar::Api::Nfl::Season.new(response["season"]) ]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,26 @@
|
|
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
|
+
set_players
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def set_players
|
15
|
+
if response["player"]
|
16
|
+
if response["player"].is_a?(Array)
|
17
|
+
@players = response["player"].map {|player| Sportradar::Api::Nfl::Player.new player }
|
18
|
+
elsif response["player"].is_a?(Hash)
|
19
|
+
@players = [ Sportradar::Api::Nfl::Player.new(response["player"]) ]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Quarter < Data
|
4
|
+
attr_accessor :response, :id, :number, :sequence, :home_points, :away_points
|
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
|
+
@away_points = data["away_points"]
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,24 @@
|
|
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
|
+
@quarters = data['quarter'].map { |quarter| Sportradar::Api::Nfl::Quarter.new quarter} if data['quarter']
|
9
|
+
end
|
10
|
+
|
11
|
+
def final
|
12
|
+
"#{home}-#{away}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def home
|
16
|
+
quarters.map {|quarter| quarter['home_points'].to_i }.reduce(:+)
|
17
|
+
end
|
18
|
+
|
19
|
+
def away
|
20
|
+
quarters.map {|quarter| quarter['away_points'].to_i }.reduce(:+)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Season < Data
|
4
|
+
attr_accessor :response, :id, :year, :type, :name, :weeks, :injuries, :team
|
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"]
|
13
|
+
@injuries = data["injuries"]["team"].map {|team| Sportradar::Api::Nfl::Team.new team } if data["injuries"] && data["injuries"]["team"]
|
14
|
+
set_weeks
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def set_weeks
|
20
|
+
if response["week"]
|
21
|
+
if response["week"].is_a?(Array)
|
22
|
+
@weeks = response["week"].map {|week| Sportradar::Api::Nfl::Week.new week }
|
23
|
+
elsif response["week"].is_a?(Hash)
|
24
|
+
@weeks = [ Sportradar::Api::Nfl::Week.new(response["week"]) ]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Situation < Data
|
4
|
+
attr_accessor :response, :clock, :down, :yfd, :possession, :location
|
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
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
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
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Sportradar
|
2
|
+
module Api
|
3
|
+
class Nfl::Summary < Data
|
4
|
+
attr_accessor :response, :season, :week, :venue, :home, :away
|
5
|
+
|
6
|
+
|
7
|
+
def initialize(data)
|
8
|
+
@response = data
|
9
|
+
@season = Sportradar::Api::Nfl::Season.new data["season"] if data["season"]
|
10
|
+
@weak = Sportradar::Api::Nfl::weak.new data["weak"] if data["weak"]
|
11
|
+
@venue = Sportradar::Api::Nfl::Venue.new data["venue"] if data["venue"]
|
12
|
+
@home = Sportradar::Api::Nfl::Team.new data["home"] if data["home"]
|
13
|
+
@away = Sportradar::Api::Nfl::Team.new data["away"] if data["away"]
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|