sportradar-api 0.1.38 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +13 -10
- data/Guardfile +7 -0
- data/lib/sportradar/api/config.rb +4 -5
- data/lib/sportradar/api/content.rb +12 -4
- data/lib/sportradar/api/content/article.rb +1 -12
- data/lib/sportradar/api/content/article_list.rb +1 -12
- data/lib/sportradar/api/data.rb +16 -0
- data/lib/sportradar/api/error.rb +5 -2
- data/lib/sportradar/api/football/stat_pack.rb +4 -17
- data/lib/sportradar/api/football/stat_pack/defense.rb +1 -1
- data/lib/sportradar/api/football/stat_pack/extra_points.rb +4 -4
- data/lib/sportradar/api/football/stat_pack/passing.rb +1 -1
- data/lib/sportradar/api/football/stat_pack/penalties.rb +4 -3
- data/lib/sportradar/api/football/stat_pack/rushing.rb +1 -1
- data/lib/sportradar/api/images.rb +19 -6
- data/lib/sportradar/api/images/asset.rb +2 -26
- data/lib/sportradar/api/images/asset_list.rb +1 -12
- data/lib/sportradar/api/live_images.rb +5 -1
- data/lib/sportradar/api/nfl.rb +73 -17
- data/lib/sportradar/api/nfl/changelog.rb +2 -24
- data/lib/sportradar/api/nfl/conference.rb +1 -13
- data/lib/sportradar/api/nfl/depth_chart.rb +1 -0
- data/lib/sportradar/api/nfl/division.rb +1 -13
- data/lib/sportradar/api/nfl/drive.rb +2 -20
- data/lib/sportradar/api/nfl/franchise.rb +0 -1
- data/lib/sportradar/api/nfl/game.rb +14 -14
- data/lib/sportradar/api/nfl/game_statistic.rb +73 -15
- data/lib/sportradar/api/nfl/hierarchy.rb +3 -30
- data/lib/sportradar/api/nfl/league_depth_chart.rb +1 -4
- data/lib/sportradar/api/nfl/play.rb +11 -5
- data/lib/sportradar/api/nfl/player.rb +6 -10
- data/lib/sportradar/api/nfl/position.rb +1 -13
- data/lib/sportradar/api/nfl/quarter.rb +1 -6
- data/lib/sportradar/api/nfl/scoring.rb +4 -4
- data/lib/sportradar/api/nfl/season.rb +4 -44
- data/lib/sportradar/api/nfl/team.rb +6 -35
- data/lib/sportradar/api/nfl/team_depth_chart.rb +8 -7
- data/lib/sportradar/api/nfl/week.rb +1 -14
- data/lib/sportradar/api/request.rb +15 -18
- data/lib/sportradar/api/soccer.rb +55 -11
- data/lib/sportradar/api/soccer/boxscore.rb +1 -12
- data/lib/sportradar/api/soccer/category.rb +1 -12
- data/lib/sportradar/api/soccer/hierarchy.rb +2 -14
- data/lib/sportradar/api/soccer/match.rb +3 -3
- data/lib/sportradar/api/soccer/player.rb +4 -31
- data/lib/sportradar/api/soccer/ranking.rb +1 -14
- data/lib/sportradar/api/soccer/schedule.rb +1 -12
- data/lib/sportradar/api/soccer/season.rb +1 -14
- data/lib/sportradar/api/soccer/standing.rb +1 -12
- data/lib/sportradar/api/soccer/summary.rb +1 -13
- data/lib/sportradar/api/soccer/team.rb +4 -3
- data/lib/sportradar/api/soccer/tournament.rb +1 -14
- data/lib/sportradar/api/soccer/tournament_group.rb +1 -11
- data/lib/sportradar/api/version.rb +1 -1
- data/sportradar-api.gemspec +2 -0
- metadata +17 -3
- data/lib/sportradar/api/nfl/stat.rb +0 -7
@@ -5,18 +5,7 @@ module Sportradar
|
|
5
5
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
def set_matches
|
13
|
-
if response['boxscore'] && response['boxscore']['matches'] && response["boxscore"]["matches"]["match"]
|
14
|
-
if response["boxscore"]["matches"]["match"].is_a?(Array)
|
15
|
-
@matches = response["boxscore"]["matches"]["match"].map {|x| Sportradar::Api::Soccer::Match.new x }
|
16
|
-
elsif response["boxscore"]["matches"]["match"].is_a?(Hash)
|
17
|
-
@matches = [ Sportradar::Api::Soccer::Match.new(response["boxscore"]["matches"]["match"]) ]
|
18
|
-
end
|
19
|
-
end
|
8
|
+
@matches = parse_into_array(selector: response["boxscore"]["matches"]["match"], klass: Sportradar::Api::Soccer::Match) if response['boxscore'] && response['boxscore']['matches'] && response["boxscore"]["matches"]["match"]
|
20
9
|
end
|
21
10
|
|
22
11
|
end
|
@@ -9,18 +9,7 @@ module Sportradar
|
|
9
9
|
@name = data["name"]
|
10
10
|
@country_code = data["country_code"]
|
11
11
|
@country = data["country"]
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
def set_tournament_group
|
17
|
-
if response["tournament_group"]
|
18
|
-
if response["tournament_group"].is_a?(Array)
|
19
|
-
@tournament_groups = response["tournament_group"].map {|x| Sportradar::Api::Soccer::TournamentGroup.new x }
|
20
|
-
elsif response["tournament_group"].is_a?(Hash)
|
21
|
-
@tournament_groups = [ Sportradar::Api::Soccer::TournamentGroup.new(response["tournament_group"]) ]
|
22
|
-
end
|
23
|
-
end
|
12
|
+
@tournament_groups = parse_into_array(selector: response["tournament_group"], klass: Sportradar::Api::Soccer::TournamentGroup) if response["tournament_group"]
|
24
13
|
end
|
25
14
|
|
26
15
|
end
|
@@ -5,22 +5,10 @@ module Sportradar
|
|
5
5
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
|
-
|
8
|
+
@categories = parse_into_array(selector: response["category"], klass: Sportradar::Api::Soccer::Category) if response["category"]
|
9
9
|
end
|
10
10
|
|
11
|
-
private
|
12
|
-
|
13
|
-
def set_categories
|
14
|
-
if response["category"]
|
15
|
-
if response["category"].is_a?(Array)
|
16
|
-
@categories = response["category"].map {|x| Sportradar::Api::Soccer::Category.new x }
|
17
|
-
elsif response["category"].is_a?(Hash)
|
18
|
-
@categories = [ Sportradar::Api::Soccer::Category.new(response["category"]) ]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
11
|
end
|
25
12
|
end
|
26
13
|
end
|
14
|
+
|
@@ -18,12 +18,12 @@ module Sportradar
|
|
18
18
|
@tournament = Sportradar::Api::Soccer::Tournament.new data["tournament"] if data["tournament"]
|
19
19
|
@tournament_group = Sportradar::Api::Soccer::TournamentGroup.new data["tournament_group"] if data["tournament_group"]
|
20
20
|
|
21
|
-
@away = Sportradar::Api::Soccer::Team.new data["away"]
|
22
|
-
@home = Sportradar::Api::Soccer::Team.new data["home"]
|
21
|
+
@away = Sportradar::Api::Soccer::Team.new data["away"] if data["away"]
|
22
|
+
@home = Sportradar::Api::Soccer::Team.new data["home"] if data["home"]
|
23
23
|
@venue = Sportradar::Api::Soccer::Venue.new data["venue"] if data["venue"]
|
24
24
|
|
25
25
|
@future_game = @scheduled > Time.now.utc
|
26
|
-
@winner = find_winner
|
26
|
+
@winner = find_winner if @home && @away && !future_game
|
27
27
|
|
28
28
|
# Actual stats from match summary
|
29
29
|
@period = data["period"]
|
@@ -6,7 +6,8 @@ module Sportradar
|
|
6
6
|
|
7
7
|
def initialize(data)
|
8
8
|
@response = data
|
9
|
-
|
9
|
+
@teams = parse_into_array(selector: response["team"], klass: Sportradar::Api::Soccer::Team) if response["team"]
|
10
|
+
@teams = parse_into_array(selector: response["teams"]["team"], klass: Sportradar::Api::Soccer::Team) if response["teams"] && response["teams"]["team"]
|
10
11
|
@id = data["id"]
|
11
12
|
@first_name = data["first_name"]
|
12
13
|
@last_name = data["last_name"]
|
@@ -31,8 +32,8 @@ module Sportradar
|
|
31
32
|
@weight_kg = data["weight_kg"]
|
32
33
|
@rank = data["rank"]
|
33
34
|
@total = OpenStruct.new data["total"] if data["total"]
|
35
|
+
@statistics = parse_into_array(selector:response["statistics"]["season"], klass: Sportradar::Api::Soccer::Season) if response["statistics"] && response["statistics"]["season"]
|
34
36
|
|
35
|
-
set_statistics
|
36
37
|
end
|
37
38
|
|
38
39
|
def name
|
@@ -63,7 +64,7 @@ module Sportradar
|
|
63
64
|
|
64
65
|
|
65
66
|
def tactical_position_name
|
66
|
-
tactical_positions = { "0" => "Unknown", "1" => "Goalkeeper", "2" => "Right
|
67
|
+
tactical_positions = { "0" => "Unknown", "1" => "Goalkeeper", "2" => "Right Back", "3" => "Central Defender", "4" => "Left Back", "5" => "Right winger", "6" => "Central Midfielder", "7" => "Left Winger", "8" => "Forward" }
|
67
68
|
tactical_positions[tactical_position] if tactical_position
|
68
69
|
end
|
69
70
|
|
@@ -82,34 +83,6 @@ module Sportradar
|
|
82
83
|
end
|
83
84
|
end
|
84
85
|
|
85
|
-
private
|
86
|
-
|
87
|
-
def set_teams
|
88
|
-
if response["team"]
|
89
|
-
if response["team"].is_a?(Array)
|
90
|
-
@teams = response["team"].map {|team| Sportradar::Api::Soccer::Team.new team }
|
91
|
-
elsif response["team"].is_a?(Hash)
|
92
|
-
@teams = [ Sportradar::Api::Soccer::Team.new(response["team"]) ]
|
93
|
-
end
|
94
|
-
elsif response["teams"] && response["teams"]["team"]
|
95
|
-
if response["teams"]["team"].is_a?(Array)
|
96
|
-
@teams = response["teams"]["team"].map {|team| Sportradar::Api::Soccer::Team.new team }
|
97
|
-
elsif response["teams"]["team"].is_a?(Hash)
|
98
|
-
@teams = [ Sportradar::Api::Soccer::Team.new(response["teams"]["team"]) ]
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def set_statistics
|
104
|
-
if response["statistics"] && response["statistics"]["season"]
|
105
|
-
if response["statistics"]["season"].is_a?(Array)
|
106
|
-
@statistics = response["statistics"]["season"].map {|statistic| Sportradar::Api::Soccer::Season.new statistic }
|
107
|
-
elsif response["statistics"]["season"].is_a?(Hash)
|
108
|
-
@statistics = [ Sportradar::Api::Soccer::Season.new(response["statistics"]["season"]) ]
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
86
|
end
|
114
87
|
end
|
115
88
|
end
|
@@ -5,22 +5,9 @@ module Sportradar
|
|
5
5
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
|
-
|
8
|
+
@categories = parse_into_array(selector: response["category"], klass: Sportradar::Api::Soccer::Category) if response["category"]
|
9
9
|
end
|
10
10
|
|
11
|
-
private
|
12
|
-
|
13
|
-
def set_categories
|
14
|
-
if response["category"]
|
15
|
-
if response["category"].is_a?(Array)
|
16
|
-
@categories = response["category"].map {|x| Sportradar::Api::Soccer::Category.new x }
|
17
|
-
elsif response["category"].is_a?(Hash)
|
18
|
-
@categories = [ Sportradar::Api::Soccer::Category.new(response["category"]) ]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
11
|
end
|
25
12
|
end
|
26
13
|
end
|
@@ -5,7 +5,7 @@ module Sportradar
|
|
5
5
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
|
-
|
8
|
+
@matches = parse_into_array(selector: response["schedule"]["matches"]["match"], klass: Sportradar::Api::Soccer::Match) if response['schedule'] && response['schedule']['matches'] && response["schedule"]["matches"]["match"]
|
9
9
|
end
|
10
10
|
|
11
11
|
def league(league_name)
|
@@ -16,17 +16,6 @@ module Sportradar
|
|
16
16
|
matches.map {|match| match.tournament_group.name}.uniq
|
17
17
|
end
|
18
18
|
|
19
|
-
private
|
20
|
-
def set_matches
|
21
|
-
if response["schedule"]["matches"]["match"]
|
22
|
-
if response["schedule"]["matches"]["match"].is_a?(Array)
|
23
|
-
@matches = response["schedule"]["matches"]["match"].map {|x| Sportradar::Api::Soccer::Match.new x }
|
24
|
-
elsif response["schedule"]["matches"]["match"].is_a?(Hash)
|
25
|
-
@matches = [ Sportradar::Api::Soccer::Match.new(response["schedule"]["matches"]["match"]) ]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
19
|
end
|
31
20
|
end
|
32
21
|
end
|
@@ -6,20 +6,7 @@ module Sportradar
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
8
|
@year = data["year"]
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def set_statistics
|
16
|
-
if response["statistic"]
|
17
|
-
if response["statistic"].is_a?(Array)
|
18
|
-
@statistics = response["statistic"].map {|statistic| Sportradar::Api::Soccer::Statistic.new statistic }
|
19
|
-
elsif response["statistic"].is_a?(Hash)
|
20
|
-
@statistics = [ Sportradar::Api::Soccer::Statistic.new(response["statistic"]) ]
|
21
|
-
end
|
22
|
-
end
|
9
|
+
@statistics = parse_into_array(selector: response["statistic"], klass: Sportradar::Api::Soccer::Statistic) if response["statistic"]
|
23
10
|
end
|
24
11
|
|
25
12
|
end
|
@@ -5,20 +5,9 @@ module Sportradar
|
|
5
5
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
|
-
|
8
|
+
@categories = parse_into_array(selector: response["categories"]["category"], klass: Sportradar::Api::Soccer::Category) if response["categories"] && response["categories"]["category"]
|
9
9
|
end
|
10
10
|
|
11
|
-
private
|
12
|
-
|
13
|
-
def set_categories
|
14
|
-
if response["categories"] && response["categories"]["category"]
|
15
|
-
if response["categories"]["category"].is_a?(Array)
|
16
|
-
@categories = response["categories"]["category"].map {|x| Sportradar::Api::Soccer::Category.new x }
|
17
|
-
elsif response["categories"]["category"].is_a?(Hash)
|
18
|
-
@categories = [ Sportradar::Api::Soccer::Category.new(response["categories"]["category"]) ]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
11
|
end
|
23
12
|
end
|
24
13
|
end
|
@@ -5,19 +5,7 @@ module Sportradar
|
|
5
5
|
|
6
6
|
def initialize(data)
|
7
7
|
@response = data
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def set_matches
|
14
|
-
if response["summary"]["matches"]["match"]
|
15
|
-
if response["summary"]["matches"]["match"].is_a?(Array)
|
16
|
-
@matches = response["summary"]["matches"]["match"].map {|x| Sportradar::Api::Soccer::Match.new x }
|
17
|
-
elsif response["summary"]["matches"]["match"].is_a?(Hash)
|
18
|
-
@matches = [ Sportradar::Api::Soccer::Match.new(response["summary"]["matches"]["match"]) ]
|
19
|
-
end
|
20
|
-
end
|
8
|
+
@matches = parse_into_array(selector: response["summary"]["matches"]["match"], klass: Sportradar::Api::Soccer::Match) if response['summary'] && response['summary']['matches'] && response["summary"]["matches"]["match"]
|
21
9
|
end
|
22
10
|
|
23
11
|
end
|
@@ -32,6 +32,8 @@ module Sportradar
|
|
32
32
|
@position = data["position"]
|
33
33
|
@is_player = data["is_player"]
|
34
34
|
@is_manager = data["is_manager"]
|
35
|
+
|
36
|
+
# Standings generate these
|
35
37
|
@home = OpenStruct.new data["home"] if data["home"]
|
36
38
|
@away = OpenStruct.new data["away"] if data["away"]
|
37
39
|
|
@@ -39,9 +41,8 @@ module Sportradar
|
|
39
41
|
parse_scoring if scoring
|
40
42
|
|
41
43
|
@statistics = OpenStruct.new data["statistics"] if data["statistics"]
|
42
|
-
@players = data["players"]["player"]
|
43
|
-
|
44
|
-
@players = data["roster"]["player"].map {|player| Sportradar::Api::Soccer::Player.new player } if data["roster"]
|
44
|
+
@players = parse_into_array(selector: data["players"]["player"], klass: Sportradar::Api::Soccer::Player) if response['players'] && response['players']['player']
|
45
|
+
@players = parse_into_array(selector: data["roster"]["player"], klass: Sportradar::Api::Soccer::Player) if response['roster'] && response['roster']['player']
|
45
46
|
@manager = Sportradar::Api::Soccer::Player.new data["manager"] if data["manager"]
|
46
47
|
end
|
47
48
|
|
@@ -12,20 +12,7 @@ module Sportradar
|
|
12
12
|
@season = data["season"]
|
13
13
|
@reference_id = data["reference_id"]
|
14
14
|
@coverage = OpenStruct.new data["coverage"] if data["coverage"]
|
15
|
-
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def set_teams
|
22
|
-
if response["team"]
|
23
|
-
if response["team"].is_a?(Array)
|
24
|
-
@teams = response["team"].map {|team| Sportradar::Api::Soccer::Team.new team }
|
25
|
-
elsif response["team"].is_a?(Hash)
|
26
|
-
@teams = [ Sportradar::Api::Soccer::Team.new(response["team"]) ]
|
27
|
-
end
|
28
|
-
end
|
15
|
+
@teams = parse_into_array(selector: response["teams"], klass: Sportradar::Api::Soccer::Team) if response["teams"]
|
29
16
|
end
|
30
17
|
|
31
18
|
end
|
@@ -16,8 +16,7 @@ module Sportradar
|
|
16
16
|
@top_assists = parse_players(data["top_assists"]["player"]) if data["top_assists"] && data["top_assists"]["player"]
|
17
17
|
@top_cards = parse_players(data["top_cards"]["player"]) if data["top_cards"] && data["top_cards"]["player"]
|
18
18
|
@top_points = parse_players(data["top_points"]["player"]) if data["top_points"] && data["top_points"]["player"]
|
19
|
-
|
20
|
-
|
19
|
+
@tournaments = parse_into_array(selector: response["tournaments"], klass: Sportradar::Api::Soccer::Tournament) if response["tournaments"]
|
21
20
|
end
|
22
21
|
|
23
22
|
private
|
@@ -30,15 +29,6 @@ module Sportradar
|
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
33
|
-
def set_tournaments
|
34
|
-
if response["tournament"]
|
35
|
-
if response["tournament"].is_a?(Array)
|
36
|
-
@tournaments = response["tournament"].map {|x| Sportradar::Api::Soccer::Tournament.new x }
|
37
|
-
elsif response["tournament"].is_a?(Hash)
|
38
|
-
@tournaments = [ Sportradar::Api::Soccer::Tournament.new(response["tournament"]) ]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
32
|
|
43
33
|
end
|
44
34
|
end
|
data/sportradar-api.gemspec
CHANGED
@@ -36,8 +36,10 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency "guard-minitest"
|
37
37
|
spec.add_development_dependency "coveralls"
|
38
38
|
spec.add_development_dependency "simplecov"
|
39
|
+
spec.add_development_dependency "codeclimate-test-reporter"
|
39
40
|
spec.add_development_dependency "minitest-focus"
|
40
41
|
spec.add_development_dependency "dotenv"
|
42
|
+
|
41
43
|
spec.add_dependency "httparty", ">= 0.14.0"
|
42
44
|
spec.add_dependency "activesupport"
|
43
45
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportradar-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Eggett
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: codeclimate-test-reporter
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: minitest-focus
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,6 +234,7 @@ files:
|
|
220
234
|
- ".travis.yml"
|
221
235
|
- Gemfile
|
222
236
|
- Gemfile.lock
|
237
|
+
- Guardfile
|
223
238
|
- README.md
|
224
239
|
- Rakefile
|
225
240
|
- bin/console
|
@@ -277,7 +292,6 @@ files:
|
|
277
292
|
- lib/sportradar/api/nfl/scoring.rb
|
278
293
|
- lib/sportradar/api/nfl/season.rb
|
279
294
|
- lib/sportradar/api/nfl/situation.rb
|
280
|
-
- lib/sportradar/api/nfl/stat.rb
|
281
295
|
- lib/sportradar/api/nfl/statistic.rb
|
282
296
|
- lib/sportradar/api/nfl/summary.rb
|
283
297
|
- lib/sportradar/api/nfl/team.rb
|