sportradar-api 0.1.38 → 0.9.0

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.
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