sportradar-api 0.13.10 → 0.14.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5c504d4ea3607fc8ce44da28034d96c43f7fdf8f
4
- data.tar.gz: 733a6947bcc47373b1e709cd0bb8a07faee871cf
2
+ SHA256:
3
+ metadata.gz: 33784418fb807e49dedec710bc4d07e22165615929f5b379e5b75da16f7a474c
4
+ data.tar.gz: '09071e245846662f1f9f60297fdfac12690746040d8e93705be21bba543f583c'
5
5
  SHA512:
6
- metadata.gz: bac07583b54cd5be2791e1dc291e09e61e45c4bc2e1d9157eb2080ec63bfe9dabe446cf26f602c6fda23b667d813d3895cd78c000dda806d6d491bf21666eb82
7
- data.tar.gz: 446bba4593a67af26aba6639f9947d345371d1bad204ac939fa285c276db7adccc9d71dc719d4ea6bc9f908c211b83e661772040fd25d95a02ccb86450dc5f05
6
+ metadata.gz: b6aa4fc6699921922fc84be63de15569e658baac30506093fe7e250844f51908657e859e70404b55cfe0c8362d945ec19cc5b2c1df3a74711ded681efefea994
7
+ data.tar.gz: d882cba949755f62c7e3885ca8683866e19f59c3fc9c6fd4bf34e95cdd205f1323130f4b6c0d203c96e43ac3e74bf3b44bd2b439ba6753a431712ef151e9a1dd
data/Gemfile.lock CHANGED
@@ -1,16 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sportradar-api (0.13.9)
4
+ sportradar-api (0.14.0)
5
5
  activesupport
6
6
  httparty (>= 0.14.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (5.1.4)
11
+ activesupport (5.2.1)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
- i18n (~> 0.7)
13
+ i18n (>= 0.7, < 2)
14
14
  minitest (~> 5.1)
15
15
  tzinfo (~> 1.1)
16
16
  addressable (2.5.1)
@@ -45,9 +45,10 @@ GEM
45
45
  guard-compat (~> 1.2)
46
46
  minitest (>= 3.0)
47
47
  hashdiff (0.3.4)
48
- httparty (0.15.6)
48
+ httparty (0.16.2)
49
49
  multi_xml (>= 0.5.2)
50
- i18n (0.8.6)
50
+ i18n (1.1.0)
51
+ concurrent-ruby (~> 1.0)
51
52
  json (2.1.0)
52
53
  listen (3.1.5)
53
54
  rb-fsevent (~> 0.9, >= 0.9.4)
@@ -86,7 +87,7 @@ GEM
86
87
  thor (0.19.4)
87
88
  thread_safe (0.3.6)
88
89
  tins (1.14.0)
89
- tzinfo (1.2.3)
90
+ tzinfo (1.2.5)
90
91
  thread_safe (~> 0.1)
91
92
  vcr (3.0.3)
92
93
  webmock (3.0.1)
@@ -114,4 +115,4 @@ DEPENDENCIES
114
115
  webmock
115
116
 
116
117
  BUNDLED WITH
117
- 1.15.3
118
+ 1.16.3
@@ -26,7 +26,7 @@ module Sportradar
26
26
  'reg'
27
27
  end
28
28
  def default_access_level
29
- if (ENV['SPORTRADAR_ENV'] || ENV['SPORTRADAR_ENV_MLB'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
29
+ if (ENV['SPORTRADAR_ENV_MLB'] || ENV['SPORTRADAR_ENV'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
30
30
  'p'
31
31
  else
32
32
  't'
@@ -91,7 +91,7 @@ module Sportradar
91
91
 
92
92
  # summary
93
93
  def get_summary
94
- data = api.get_data(path_summary)
94
+ data = api.get_data(path_summary).to_h
95
95
  ingest_summary(data)
96
96
  end
97
97
  def queue_summary
@@ -105,7 +105,7 @@ module Sportradar
105
105
 
106
106
  # schedule
107
107
  def get_schedule
108
- data = api.get_data(path_schedule)
108
+ data = api.get_data(path_schedule).to_h
109
109
  ingest_schedule(data)
110
110
  end
111
111
  def queue_schedule
@@ -75,8 +75,8 @@ module Sportradar
75
75
  end
76
76
 
77
77
  def tournaments
78
- get_tournaments if tournaments.empty?
79
- self
78
+ get_tournaments if @tournaments_hash.empty?
79
+ @tournaments_hash.values
80
80
  end
81
81
 
82
82
  def games
@@ -115,7 +115,7 @@ module Sportradar
115
115
  {url: url, headers: headers, params: options, timeout: timeout, callback: method(:ingest_roster)}
116
116
  end
117
117
 
118
- def get_season_stats(year = Date.today.year)
118
+ def get_season_stats(year = api.default_year)
119
119
  data = api.get_data(path_season_stats(year)).to_h
120
120
  ingest_season_stats(data)
121
121
  end
@@ -23,7 +23,8 @@ module Sportradar
23
23
  else
24
24
  response = get request_url("#{league}/#{image_type}/players/manifest")
25
25
  end
26
- elsif nfl_premium || usat_premium || sport == 'ncaafb'
26
+ elsif nfl_premium || usat_premium || sport == 'ncaafb' || sport == 'nba'
27
+ year = Date.today.month < 8 ? Date.today.year - 1 : Date.today
27
28
  response = get request_url("#{image_type}/players/#{year}/manifest")
28
29
  else
29
30
  response = get request_url("players/#{image_type}/manifests/all_assets")
@@ -39,7 +40,6 @@ module Sportradar
39
40
  # Coach Manifests
40
41
 
41
42
  def coach_manifests
42
- raise Sportradar::Api::Error::InvalidLeague unless league.nil?
43
43
  response = get request_url("coaches/#{image_type}/manifests/all_assets")
44
44
  if response.success? && response["assetlist"]
45
45
  Sportradar::Api::Images::AssetList.new response["assetlist"]
@@ -50,7 +50,6 @@ module Sportradar
50
50
  alias_method :all_coaches, :coach_manifests
51
51
 
52
52
  def venue_manifests
53
- raise Sportradar::Api::Error::InvalidLeague unless league.nil?
54
53
  if version == 3
55
54
  response = get request_url("venues/manifest")
56
55
  else
@@ -97,7 +96,7 @@ module Sportradar
97
96
  private
98
97
 
99
98
  def request_url(path)
100
- "/#{sport}-images-#{access_level}#{version}/#{provider}/#{path}"
99
+ "/#{sport}-images-#{access_level}#{version}/#{provider}/#{( league + '/') if league}#{path}"
101
100
  end
102
101
 
103
102
  def api_key
@@ -138,6 +137,8 @@ module Sportradar
138
137
  'ap_premium'
139
138
  elsif usat_premium
140
139
  'usat_premium'
140
+ elsif sport == 'nba'
141
+ 'getty_premium'
141
142
  else
142
143
  'usat'
143
144
  # REUTERS IS JUST FOR SOCCER sport == 'mlb' ? 'usat' : 'reuters'
@@ -145,11 +146,12 @@ module Sportradar
145
146
  end
146
147
 
147
148
  def version
148
- if uses_v3_api? || nfl_premium || usat_premium
149
- 3
150
- elsif uses_v2_api?
151
- Sportradar::Api.version('images')
152
- end
149
+ # if uses_v3_api? || nfl_premium || usat_premium || sport == 'nba'
150
+ # 3
151
+ # elsif uses_v2_api?
152
+ # Sportradar::Api.version('images')
153
+ # end
154
+ 3
153
155
  end
154
156
 
155
157
  def image_type
@@ -177,7 +179,7 @@ module Sportradar
177
179
  end
178
180
 
179
181
  def v3_api_sports
180
- ['mlb', 'soccer', 'cricket', 'f1', 'rugby', 'tennis', 'ncaafb', ]
182
+ ['mlb', 'soccer', 'cricket', 'f1', 'rugby', 'tennis', 'ncaafb', 'nba' ]
181
183
  end
182
184
 
183
185
  def soccer_leagues
@@ -19,7 +19,7 @@ module Sportradar
19
19
  'reg'
20
20
  end
21
21
  def default_access_level
22
- if (ENV['SPORTRADAR_ENV'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
22
+ if (ENV['SPORTRADAR_SOCCER_ENV'] || ENV['SPORTRADAR_ENV'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
23
23
  'x'
24
24
  else
25
25
  'xt'
@@ -23,9 +23,12 @@ module Sportradar
23
23
  @lineups_hash = {}
24
24
  get_tournament_id(data, **opts)
25
25
  @scoring_raw = Scoring.new(data, game: self)
26
- @home = Team.new({}, api: api, match: self)
27
- @away = Team.new({}, api: api, match: self)
26
+ @home = Team.new(data['home'].to_h, api: api, match: self)
27
+ @away = Team.new(data['away'].to_h, api: api, match: self)
28
28
  @teams_hash = { away: @away, home: @home }
29
+ @team_ids = { away: @away.id, home: @home.id }
30
+ @team_stats = {}
31
+ @player_stats = {}
29
32
 
30
33
  update(data, **opts)
31
34
  end
@@ -67,7 +70,7 @@ module Sportradar
67
70
  @away_score = data['away_score'] if data['away_score']
68
71
  @period = data['period'] if data['period']
69
72
  @match_time = data.dig('clock', 'match_time') if data.dig('clock', 'match_time')
70
- @stoppage_time = data.dig('clock', 'stoppage_time') if data.dig('clock', 'stoppage_time')
73
+ @stoppage_time = data.dig('clock', 'stoppage_time')
71
74
  @ball_locations = data['ball_locations'] if data['ball_locations']
72
75
  @winner_id = data['winner_id'] if data['winner_id']
73
76
 
@@ -143,10 +146,10 @@ module Sportradar
143
146
  ['live'].include?(@status) || ['halftime', '1st_half', '2nd_half'].include?(@match_status)
144
147
  end
145
148
  def finished?
146
- ['complete', 'closed'].include?(@status) || ['ended'].include?(@match_status)
149
+ ['ended', 'complete', 'closed'].include?(@status) || ['ended'].include?(@match_status)
147
150
  end
148
151
  def completed?
149
- 'complete' == status
152
+ ['ended', 'complete'].include? status
150
153
  end
151
154
  def closed?
152
155
  'closed' == status
@@ -154,8 +157,8 @@ module Sportradar
154
157
 
155
158
  def clock_display
156
159
  return unless @match_time
157
- if @match_time == '45:00' || @match_time == '90:00' # stoppage time
158
- @match_time.split(':').first + ?'
160
+ if @stoppage_time && (@match_time == '45:00' || @match_time == '90:00') # stoppage time
161
+ @match_time.split(':').first + ?' + '+' + @stoppage_time.split(':').first
159
162
  else
160
163
  @match_time.split(':').first + ?'
161
164
  end
@@ -166,7 +169,7 @@ module Sportradar
166
169
  return nil unless @match_time
167
170
  mm, ss = @match_time.split(':').map(&:to_i)
168
171
  time = mm * 60 + ss
169
- if @match_time == '45:00' || @match_time == '90:00' # stoppage time
172
+ if @stoppage_time && (@match_time == '45:00' || @match_time == '90:00') # stoppage time
170
173
  mm, ss = @stoppage_time.split(':').map(&:to_i)
171
174
  stop_time = mm * 60 + ss
172
175
  time += stop_time
@@ -183,9 +186,20 @@ module Sportradar
183
186
  @away.update(away_hash, match: self)
184
187
  @teams_hash[@home.id] = @home
185
188
  @teams_hash[@away.id] = @away
189
+ @team_ids = { away: @away.id, home: @home.id }
186
190
  end
187
191
  end
188
192
 
193
+ def update_stats(team, stats)
194
+ @team_stats.merge!(team.id => stats.merge(team: team))
195
+ end
196
+ def update_player_stats(player, stats)
197
+ @player_stats.merge!(player.id => stats.merge!(player: player))
198
+ end
199
+ def stats(team_id)
200
+ team_id.is_a?(Symbol) ? @team_stats[@team_ids[team_id]] : @team_stats[team_id]
201
+ end
202
+
189
203
  def get_tournament_id(data, **opts)
190
204
  @tournament_id ||= if opts[:tournament]
191
205
  opts[:tournament].id
@@ -212,6 +226,19 @@ module Sportradar
212
226
  end
213
227
  end
214
228
 
229
+ def timeline_by_minute(minute_start, minute_end = nil)
230
+ if minute_end
231
+ @timeline_hash.each_value.select { |ev| (minute_start..minute_end).cover?(ev.match_time.to_i) }
232
+ else
233
+ @timeline_hash.each_value.select { |ev| minute_start === ev.match_time }
234
+ end
235
+ end
236
+
237
+ def plays_by_minute(type, minute_start, minute_end = nil)
238
+ timeline_by_minute(minute_start, minute_end).select { |ev| ev.type == type }
239
+ end
240
+
241
+
215
242
  def lineups(which = nil)
216
243
  if which
217
244
  @lineups_hash[which.to_s]
@@ -3,14 +3,14 @@ module Sportradar
3
3
  module Soccer
4
4
  class Player < Data
5
5
 
6
- attr_reader :id, :league_group, :name, :type, :nationality, :country_code, :height, :weight, :jersey_number, :preferred_foot, :stats, :date_of_birth, :matches_played
6
+ attr_reader :id, :league_group, :name, :type, :nationality, :country_code, :height, :weight, :jersey_number, :preferred_foot, :stats, :game_stats, :date_of_birth, :matches_played
7
7
  alias :position :type
8
8
 
9
9
  def initialize(data = {}, league_group: nil, **opts)
10
10
  @response = data
11
11
  @id = data['id'] if data['id']
12
12
  @api = opts[:api]
13
- @team = opts[:team]
13
+ @team = opts[:team]
14
14
 
15
15
  @league_group = league_group || data['league_group'] || @api&.league_group
16
16
 
@@ -38,15 +38,72 @@ module Sportradar
38
38
  @matches_played = data['matches_played'] if data['matches_played']
39
39
  @stats = data['statistics'] if data['statistics']
40
40
  @date_of_birth = Date.parse(data['date_of_birth']) if data['date_of_birth']
41
+ set_game_stats(data)
41
42
 
42
- @team.update_player_stats(self, data['statistics'], opts[:game]) if data['statistics'] && @team
43
+ @team.update_player_stats(self, data['statistics']) if data['statistics'] && @team
44
+ if opts[:match]
45
+ @team.update_player_stats(self, data, opts[:match])
46
+ end
47
+
48
+ end
49
+
50
+ def set_game_stats(data)
51
+ @game_stats ||= {}
43
52
 
53
+ @game_stats[:substituted_in] = data['substituted_in'] if data['substituted_in'].present?
54
+ @game_stats[:substituted_out] = data['substituted_out'] if data['substituted_out'].present?
55
+ @game_stats[:goals_scored] = data['goals_scored'] if data['goals_scored'].present?
56
+ @game_stats[:assists] = data['assists'] if data['assists'].present?
57
+ @game_stats[:own_goals] = data['own_goals'] if data['own_goals'].present?
58
+ @game_stats[:yellow_cards] = data['yellow_cards'] if data['yellow_cards'].present?
59
+ @game_stats[:yellow_red_cards] = data['yellow_red_cards'] if data['yellow_red_cards'].present?
60
+ @game_stats[:red_cards] = data['red_cards'] if data['red_cards'].present?
61
+ @game_stats[:goal_line_clearances] = data['goal_line_clearances'] if data['goal_line_clearances'].present?
62
+ @game_stats[:interceptions] = data['interceptions'] if data['interceptions'].present?
63
+ @game_stats[:chances_created] = data['chances_created'] if data['chances_created'].present?
64
+ @game_stats[:crosses_successful] = data['crosses_successful'] if data['crosses_successful'].present?
65
+ @game_stats[:crosses_total] = data['crosses_total'] if data['crosses_total'].present?
66
+ @game_stats[:passes_short_successful] = data['passes_short_successful'] if data['passes_short_successful'].present?
67
+ @game_stats[:passes_medium_successful] = data['passes_medium_successful'] if data['passes_medium_successful'].present?
68
+ @game_stats[:passes_long_successful] = data['passes_long_successful'] if data['passes_long_successful'].present?
69
+ @game_stats[:passes_short_total] = data['passes_short_total'] if data['passes_short_total'].present?
70
+ @game_stats[:passes_medium_total] = data['passes_medium_total'] if data['passes_medium_total'].present?
71
+ @game_stats[:passes_long_total] = data['passes_long_total'] if data['passes_long_total'].present?
72
+ @game_stats[:duels_header_successful] = data['duels_header_successful'] if data['duels_header_successful'].present?
73
+ @game_stats[:duels_sprint_successful] = data['duels_sprint_successful'] if data['duels_sprint_successful'].present?
74
+ @game_stats[:duels_tackle_successful] = data['duels_tackle_successful'] if data['duels_tackle_successful'].present?
75
+ @game_stats[:duels_header_total] = data['duels_header_total'] if data['duels_header_total'].present?
76
+ @game_stats[:duels_sprint_total] = data['duels_sprint_total'] if data['duels_sprint_total'].present?
77
+ @game_stats[:duels_tackle_total] = data['duels_tackle_total'] if data['duels_tackle_total'].present?
78
+ @game_stats[:goals_conceded] = data['goals_conceded'] if data['goals_conceded'].present?
79
+ @game_stats[:shots_faced_saved] = data['shots_faced_saved'] if data['shots_faced_saved'].present?
80
+ @game_stats[:shots_faced_total] = data['shots_faced_total'] if data['shots_faced_total'].present?
81
+ @game_stats[:penalties_faced] = data['penalties_faced'] if data['penalties_faced'].present?
82
+ @game_stats[:penalties_saved] = data['penalties_saved'] if data['penalties_saved'].present?
83
+ @game_stats[:fouls_committed] = data['fouls_committed'] if data['fouls_committed'].present?
84
+ @game_stats[:was_fouled] = data['was_fouled'] if data['was_fouled'].present?
85
+ @game_stats[:offsides] = data['offsides'] if data['offsides'].present?
86
+ @game_stats[:shots_on_goal] = data['shots_on_goal'] if data['shots_on_goal'].present?
87
+ @game_stats[:shots_off_goal] = data['shots_off_goal'] if data['shots_off_goal'].present?
88
+ @game_stats[:shots_blocked] = data['shots_blocked'] if data['shots_blocked'].present?
89
+ @game_stats[:minutes_played] = data['minutes_played'] if data['minutes_played'].present?
90
+ @game_stats[:performance_score] = data['performance_score'] if data['performance_score'].present?
91
+ @game_stats[:goals_by_head] = data['goals_by_head'] if data['goals_by_head'].present?
92
+ @game_stats[:goals_by_penalty] = data['goals_by_penalty'] if data['goals_by_penalty'].present?
44
93
  end
45
94
 
46
95
  def display_name
47
96
  @name || [@first_name, @last_name].join(' ')
48
97
  end
49
98
 
99
+ def birth_date
100
+ @date_of_birth
101
+ end
102
+
103
+ def jersey
104
+ @jersey_number
105
+ end
106
+
50
107
  def first_name
51
108
  @name.split()[1]
52
109
  end
@@ -2,6 +2,7 @@ module Sportradar
2
2
  module Api
3
3
  module Soccer
4
4
  class Team < Data
5
+ attr_reader :response
5
6
  attr_accessor :tournament_id, :venue, :player_stats
6
7
  attr_reader :id, :league_group, :name, :country, :country_code, :abbreviation, :qualifier
7
8
  alias :alias :abbreviation
@@ -39,12 +40,16 @@ module Sportradar
39
40
  @qualifier = data['qualifier'] if data['qualifier']
40
41
  @venue = Venue.new(data['venue']) if data['venue']
41
42
 
42
- create_data(@players_hash, data['players'], klass: Player, api: api, team: self) if data['players']
43
- create_data(@players_hash, data['player_statistics'], klass: Player, api: api, team: self) if data['player_statistics']
43
+ create_data(@players_hash, data['players'], klass: Player, api: api, team: self, **opts) if data['players']
44
+ create_data(@players_hash, data['player_statistics'], klass: Player, api: api, team: self, **opts) if data['player_statistics']
44
45
 
45
- # TODO team statistics
46
46
  @team_stats = data['team_statistics'] if data['team_statistics']
47
47
 
48
+ # parse_players(data.dig('players'), opts[:match]) if data.dig('players')
49
+ if opts[:match]
50
+ opts[:match].update_stats(self, data['statistics']) if data['statistics']
51
+ end
52
+
48
53
  create_data(@matches_hash, Soccer.parse_results(data['results']), klass: Match, api: api, team: self) if data['results']
49
54
  create_data(@matches_hash, data['schedule'], klass: Match, api: api, team: self) if data['schedule']
50
55
 
@@ -57,10 +62,10 @@ module Sportradar
57
62
  def get_tournament_id(data, **opts)
58
63
  @tournament_id ||= if opts[:tournament]
59
64
  opts[:tournament].id
60
- elsif opts[:season]
61
- opts[:season].tournament_id
62
- elsif opts[:match]
63
- opts[:match].tournament_id
65
+ elsif opts[:season]&.tournament_id
66
+ opts[:season]&.tournament_id
67
+ elsif opts[:match]&.tournament_id
68
+ opts[:match]&.tournament_id
64
69
  elsif data['tournament_id']
65
70
  data['tournament_id']
66
71
  elsif data['tournament']
@@ -70,6 +75,10 @@ module Sportradar
70
75
  end
71
76
  end
72
77
 
78
+ def update_player_stats(player, stats, game = nil)
79
+ game ? game.update_player_stats(player, stats) : @player_stats.merge(player.id => stats.to_h.merge(player: player))
80
+ end
81
+
73
82
  def players
74
83
  @players_hash.values
75
84
  end
@@ -101,9 +110,7 @@ module Sportradar
101
110
  url, headers, options, timeout = api.get_request_info(path_roster)
102
111
  {url: url, headers: headers, params: options, timeout: timeout, callback: method(:ingest_roster)}
103
112
  end
104
- def update_player_stats(player, stats, game = nil)
105
- game ? game.update_player_stats(player, stats) : @player_stats.merge(player.id => stats.merge(player: player))
106
- end
113
+
107
114
  def path_results
108
115
  "#{ path_base }/results"
109
116
  end
@@ -143,6 +150,9 @@ module Sportradar
143
150
  data = api.get_data(path_statistics(tourn_id)).to_h
144
151
  ingest_statistics(data)
145
152
  end
153
+ def get_season_stats(*args)
154
+ get_statistics
155
+ end
146
156
  def ingest_statistics(data)
147
157
  update(data)
148
158
  data
@@ -2,7 +2,7 @@ module Sportradar
2
2
  module Api
3
3
  module Soccer
4
4
  class Tournament < Data
5
- attr_reader :id, :league_group, :name, :category
5
+ attr_reader :id, :league_group, :name, :category, :coverage_info, :live_coverage, :season_coverage_info
6
6
  alias :display_name :name
7
7
  alias :alias :name
8
8
 
@@ -26,8 +26,10 @@ module Sportradar
26
26
  update(data['tournament'])
27
27
  end
28
28
 
29
- @name = data["name"] || @name
30
- @category = data['category'] || @category
29
+ @name = data["name"] || @name
30
+ @category = data['category'] || @category
31
+ @coverage_info = data['coverage_info'] || @coverage_info
32
+ @live_coverage = data.dig('coverage_info', 'live_coverage') || @live_coverage
31
33
 
32
34
  parse_info(data)
33
35
  parse_season(data)
@@ -86,6 +88,7 @@ module Sportradar
86
88
 
87
89
  def parse_season(data)
88
90
  if data['season_coverage_info']
91
+ @season_coverage_info = data['season_coverage_info'] if data['season_coverage_info']
89
92
  data['season_coverage_info']['id'] ||= data['season_coverage_info'].delete('season_id')
90
93
  create_data(@seasons_hash, data['season_coverage_info'], klass: Season, api: api, tournament: self)
91
94
  end
@@ -1,5 +1,5 @@
1
1
  module Sportradar
2
2
  module Api
3
- VERSION = "0.13.10"
3
+ VERSION = "0.14.0"
4
4
  end
5
5
  end
@@ -60,7 +60,7 @@ module Sportradar
60
60
  {api: :nascar, version: 3},
61
61
  {api: :odds, version: 1},
62
62
  {api: :content, version: 3},
63
- {api: :images, version: 2},
63
+ {api: :images, version: 3},
64
64
  {api: :live_images, version: 1},
65
65
  {api: :olympics, version: 2},
66
66
  {api: :soccer, version: 3},
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.13.10
4
+ version: 0.14.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: 2017-11-16 00:00:00.000000000 Z
11
+ date: 2018-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -471,7 +471,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
471
471
  version: '0'
472
472
  requirements: []
473
473
  rubyforge_project:
474
- rubygems_version: 2.6.10
474
+ rubygems_version: 2.7.6
475
475
  signing_key:
476
476
  specification_version: 4
477
477
  summary: Sportradar API client