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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +13 -10
  4. data/Guardfile +7 -0
  5. data/lib/sportradar/api/config.rb +4 -5
  6. data/lib/sportradar/api/content.rb +12 -4
  7. data/lib/sportradar/api/content/article.rb +1 -12
  8. data/lib/sportradar/api/content/article_list.rb +1 -12
  9. data/lib/sportradar/api/data.rb +16 -0
  10. data/lib/sportradar/api/error.rb +5 -2
  11. data/lib/sportradar/api/football/stat_pack.rb +4 -17
  12. data/lib/sportradar/api/football/stat_pack/defense.rb +1 -1
  13. data/lib/sportradar/api/football/stat_pack/extra_points.rb +4 -4
  14. data/lib/sportradar/api/football/stat_pack/passing.rb +1 -1
  15. data/lib/sportradar/api/football/stat_pack/penalties.rb +4 -3
  16. data/lib/sportradar/api/football/stat_pack/rushing.rb +1 -1
  17. data/lib/sportradar/api/images.rb +19 -6
  18. data/lib/sportradar/api/images/asset.rb +2 -26
  19. data/lib/sportradar/api/images/asset_list.rb +1 -12
  20. data/lib/sportradar/api/live_images.rb +5 -1
  21. data/lib/sportradar/api/nfl.rb +73 -17
  22. data/lib/sportradar/api/nfl/changelog.rb +2 -24
  23. data/lib/sportradar/api/nfl/conference.rb +1 -13
  24. data/lib/sportradar/api/nfl/depth_chart.rb +1 -0
  25. data/lib/sportradar/api/nfl/division.rb +1 -13
  26. data/lib/sportradar/api/nfl/drive.rb +2 -20
  27. data/lib/sportradar/api/nfl/franchise.rb +0 -1
  28. data/lib/sportradar/api/nfl/game.rb +14 -14
  29. data/lib/sportradar/api/nfl/game_statistic.rb +73 -15
  30. data/lib/sportradar/api/nfl/hierarchy.rb +3 -30
  31. data/lib/sportradar/api/nfl/league_depth_chart.rb +1 -4
  32. data/lib/sportradar/api/nfl/play.rb +11 -5
  33. data/lib/sportradar/api/nfl/player.rb +6 -10
  34. data/lib/sportradar/api/nfl/position.rb +1 -13
  35. data/lib/sportradar/api/nfl/quarter.rb +1 -6
  36. data/lib/sportradar/api/nfl/scoring.rb +4 -4
  37. data/lib/sportradar/api/nfl/season.rb +4 -44
  38. data/lib/sportradar/api/nfl/team.rb +6 -35
  39. data/lib/sportradar/api/nfl/team_depth_chart.rb +8 -7
  40. data/lib/sportradar/api/nfl/week.rb +1 -14
  41. data/lib/sportradar/api/request.rb +15 -18
  42. data/lib/sportradar/api/soccer.rb +55 -11
  43. data/lib/sportradar/api/soccer/boxscore.rb +1 -12
  44. data/lib/sportradar/api/soccer/category.rb +1 -12
  45. data/lib/sportradar/api/soccer/hierarchy.rb +2 -14
  46. data/lib/sportradar/api/soccer/match.rb +3 -3
  47. data/lib/sportradar/api/soccer/player.rb +4 -31
  48. data/lib/sportradar/api/soccer/ranking.rb +1 -14
  49. data/lib/sportradar/api/soccer/schedule.rb +1 -12
  50. data/lib/sportradar/api/soccer/season.rb +1 -14
  51. data/lib/sportradar/api/soccer/standing.rb +1 -12
  52. data/lib/sportradar/api/soccer/summary.rb +1 -13
  53. data/lib/sportradar/api/soccer/team.rb +4 -3
  54. data/lib/sportradar/api/soccer/tournament.rb +1 -14
  55. data/lib/sportradar/api/soccer/tournament_group.rb +1 -11
  56. data/lib/sportradar/api/version.rb +1 -1
  57. data/sportradar-api.gemspec +2 -0
  58. metadata +17 -3
  59. 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
- set_matches
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
- set_tournament_group
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
- set_categories
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 unless future_game
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
- set_teams
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 back", "3" => "Central defender", "4" => "Left back", "5" => "Right winger", "6" => "Central midfielder", "7" => "Left winger", "8" => "Forward" }
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
- set_categories
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
- set_matches
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
- set_statistics
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
- set_categories
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
- set_matches
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"].map {|player| Sportradar::Api::Soccer::Player.new player } if data["players"]
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
- set_teams
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
- set_tournaments
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
@@ -1,5 +1,5 @@
1
1
  module Sportradar
2
2
  module Api
3
- VERSION = "0.1.38"
3
+ VERSION = "0.9.0"
4
4
  end
5
5
  end
@@ -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.1.38
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-09-26 00:00:00.000000000 Z
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
@@ -1,7 +0,0 @@
1
- module Sportradar
2
- module Api
3
- module Nfl::Stat
4
- #
5
- end
6
- end
7
- end