sportradar-api 0.1.30 → 0.1.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d774003d80c1cf4577e19678a29de9ae1f204c84
4
- data.tar.gz: d2de8bbe5c86fcb4d596888762f47b157556bdff
3
+ metadata.gz: 7e34ad09b3d05807d2b9bf75d587a084ae25587a
4
+ data.tar.gz: d074596c83b54498bff4637929195e313c7cc9df
5
5
  SHA512:
6
- metadata.gz: 7313f61e5e581631975b5750fd5114217fb8b1b513ce8ac04e69694f6009488b448e0ed81042eb313c3d931cdcb7b26cb7b14f62db95788bf7b45d841d61a158
7
- data.tar.gz: 377ba8d1da480052b59cdcc06dd1ea8a9317d6a684173f1d6cc794beb8ccc3f2bedf27e7b123bb430600c2c8b64bd3572b1a279debabe8959ea71b0b2bed3502
6
+ metadata.gz: 65b65aa2b214da9debe20d0daaadb58320f85a06fd5470d52a278d301145dd18c6c7db880c8d3c11cd7fba6ceceba35eed4e35d379208a0ed9e2af95b3890a36
7
+ data.tar.gz: 11fdc889e4ccbccf3b76055b79262323af2272a5aed9c8926b133458d03a464dfc173bd52a68ac54d08220edb1603b816ec70a67796fdb7f332ec20c1a1e21de
data/Gemfile.lock CHANGED
@@ -3,7 +3,7 @@ PATH
3
3
  specs:
4
4
  sportradar-api (0.1.30)
5
5
  activesupport
6
- httparty (>= 0.13.3)
6
+ httparty (>= 0.14.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -42,8 +42,7 @@ GEM
42
42
  guard-compat (~> 1.2)
43
43
  minitest (>= 3.0)
44
44
  hashdiff (0.3.0)
45
- httparty (0.13.7)
46
- json (~> 1.8)
45
+ httparty (0.14.0)
47
46
  multi_xml (>= 0.5.2)
48
47
  i18n (0.7.0)
49
48
  json (1.8.3)
data/README.md CHANGED
@@ -76,7 +76,7 @@ Create `.env` for environment variables. Follow the `.env.sample` for guidance.
76
76
 
77
77
  http://developer.sportradar.us/page/Live_Game_Simulation
78
78
 
79
- Soccer
79
+ ### Soccer
80
80
 
81
81
  ```
82
82
  sim = Sportradar::Api::Soccer.new('na', 't', true)
@@ -84,6 +84,17 @@ summary = sim.match_summary(sim.simulation_match)
84
84
  boxscore = sim.match_boxscore(sim.simulation_match)
85
85
  ```
86
86
 
87
+ ### NFL
88
+
89
+ It's possible to find the current simulation game:
90
+
91
+ ```
92
+ Sportradar::Api::Nfl.new('o').active_simulation
93
+ =>
94
+ https://api.sportradar.us/nfl-sim1/games/f45b4a31-b009-4039-8394-42efbc6d5532/boxscore.xml
95
+ Live Game: Green Bay Packers vs Minnesota Vikings. Q2 00:08. game_id='f45b4a31-b009-4039-8394-42efbc6d5532'
96
+ ```
97
+
87
98
  ## Development
88
99
 
89
100
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -105,8 +105,9 @@ module Sportradar
105
105
  game = simulation_games.lazy.map {|game_id| game_boxscore game_id }.find{ |game| game.status == 'inprogress'}
106
106
  if game
107
107
  puts "Live Game: #{game.summary.home.full_name} vs #{game.summary.away.full_name}. Q#{game.quarter} #{game.clock}. game_id='#{game.id}'"
108
+ game
108
109
  else
109
- "No active simulation"
110
+ puts "No active simulation"
110
111
  end
111
112
  end
112
113
 
@@ -30,6 +30,12 @@ module Sportradar
30
30
  elsif response["plays"]["play"].is_a?(Hash)
31
31
  @plays = [ Sportradar::Api::Nfl::Play.new(response["plays"]["play"]) ]
32
32
  end
33
+ elsif response["play"]
34
+ if response["play"].is_a?(Array)
35
+ @plays = response["play"].map {|play| Sportradar::Api::Nfl::Play.new play }
36
+ elsif response["play"].is_a?(Hash)
37
+ @plays = [ Sportradar::Api::Nfl::Play.new(response["play"]) ]
38
+ end
33
39
  end
34
40
  end
35
41
 
@@ -1,7 +1,7 @@
1
1
  module Sportradar
2
2
  module Api
3
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
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, :quarters
5
5
 
6
6
  def initialize(data)
7
7
  @response = data
@@ -19,7 +19,11 @@ module Sportradar
19
19
  @utc_offset = data["utc_offset"]
20
20
  @weather = data["weather"]
21
21
  @clock = data["clock"]
22
- @quarter = data["quarter"]
22
+ if data["quarter"]
23
+ @quarter = data["quarter"][0]
24
+ quarter_data = data["quarter"][1].is_a?(Hash) ? [ data["quarter"][1] ] : data["quarter"][1]
25
+ @quarters = quarter_data&.map { |hash| Sportradar::Api::Nfl::Quarter.new(hash) }
26
+ end
23
27
  @summary = Sportradar::Api::Nfl::Summary.new data["summary"] if data["summary"]
24
28
  @situation = Sportradar::Api::Nfl::Situation.new data["situation"] if data["situation"]
25
29
  @last_event = Sportradar::Api::Nfl::Event.new data["last_event"]["event"] if data["last_event"] && data["last_event"]["event"]
@@ -36,6 +40,12 @@ module Sportradar
36
40
  def current_score
37
41
  "#{summary.home.points}-#{summary.away.points}" if summary
38
42
  end
43
+ def drives
44
+ quarters&.flat_map(&:drives)
45
+ end
46
+ def plays
47
+ drives&.flat_map(&:plays)
48
+ end
39
49
 
40
50
  private
41
51
 
@@ -1,7 +1,7 @@
1
1
  module Sportradar
2
2
  module Api
3
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
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, :team_id, :player_id
5
5
 
6
6
  def initialize(data)
7
7
  @response = data
@@ -10,6 +10,7 @@ module Sportradar
10
10
  @clock = data["clock"]
11
11
  @description = data["description"]
12
12
  @end_situation = Sportradar::Api::Nfl::Situation.new data["end_situation"] if data["end_situation"]
13
+ @team_id = end_situation.team_id if end_situation
13
14
  @home_points = data["home_points"]
14
15
  @id = data["id"]
15
16
  @play_clock = data["play_clock"]
@@ -19,6 +20,10 @@ module Sportradar
19
20
  @sequence = data["sequence"]
20
21
  @start_situation = Sportradar::Api::Nfl::Situation.new data["start_situation"] if data["start_situation"]
21
22
  @statistics = OpenStruct.new data["statistics"] if data["statistics"] # TODO Implement statistics?
23
+ if @statistics
24
+ play_stats = @statistics.penalty || @statistics.rush || @statistics.return || @statistics.receive
25
+ @player_id = play_stats.dig('player', 'id') if play_stats
26
+ end
22
27
  @type = data["type"]
23
28
  @wall_clock = data["wall_clock"]
24
29
  end
@@ -1,7 +1,7 @@
1
1
  module Sportradar
2
2
  module Api
3
3
  class Nfl::Quarter < Data
4
- attr_accessor :response, :id, :number, :sequence, :home_points, :away_points
4
+ attr_accessor :response, :id, :number, :sequence, :home_points, :away_points, :drives
5
5
 
6
6
  def initialize(data)
7
7
  @response = data
@@ -9,7 +9,10 @@ module Sportradar
9
9
  @number = data["number"]
10
10
  @sequence = data["sequence"]
11
11
  @home_points = data["home_points"]
12
+ # @home_points = response['scoring']['home']['points'] # from play_by_play
12
13
  @away_points = data["away_points"]
14
+ # @away_points = response['scoring']['away']['points'] # from play_by_play
15
+ @drives = data.dig("play_by_play", 'drive')&.map{ |drive| Sportradar::Api::Nfl::Drive.new drive }
13
16
  end
14
17
 
15
18
  end
@@ -5,7 +5,8 @@ module Sportradar
5
5
 
6
6
  def initialize(data)
7
7
  @response = data
8
- @quarters = data['quarter'].map { |quarter| Sportradar::Api::Nfl::Quarter.new quarter} if data['quarter']
8
+ # @quarters = data['quarter'].map { |quarter| Sportradar::Api::Nfl::Quarter.new quarter} if data['quarter']
9
+ # this is causing a problem in some scenarios, receiving ['1', 'id-hash']
9
10
  end
10
11
 
11
12
  def final
@@ -1,7 +1,7 @@
1
1
  module Sportradar
2
2
  module Api
3
3
  class Nfl::Situation < Data
4
- attr_accessor :response, :clock, :down, :yfd, :possession, :location
4
+ attr_accessor :response, :clock, :down, :yfd, :possession, :location, :team_id
5
5
 
6
6
  def initialize(data)
7
7
  @response = data
@@ -10,6 +10,7 @@ module Sportradar
10
10
  @yfd = data["yfd"]
11
11
  @possession = OpenStruct.new data["possession"] if data["possession"]
12
12
  @location = OpenStruct.new data["location"] if data["location"]
13
+ @team_id = possession.id if possession
13
14
  end
14
15
 
15
16
  end
@@ -3,6 +3,8 @@ module Sportradar
3
3
  class Nfl::Team < Data
4
4
  attr_accessor :response, :id, :name, :alias, :game_number, :defense, :special_teams, :offense, :players, :statistics, :team_records, :player_records, :market, :franchise, :venue, :hierarchy, :coaches, :players, :used_timeouts, :remaining_timeouts, :points, :wins, :losses, :ties, :win_pct, :rank
5
5
 
6
+ alias :score :points
7
+
6
8
  def initialize(data)
7
9
  @response = data
8
10
  @id = data["id"]
@@ -1,5 +1,5 @@
1
1
  module Sportradar
2
2
  module Api
3
- VERSION = "0.1.30"
3
+ VERSION = "0.1.31"
4
4
  end
5
5
  end
@@ -38,7 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "simplecov"
39
39
  spec.add_development_dependency "minitest-focus"
40
40
  spec.add_development_dependency "dotenv"
41
- spec.add_dependency "httparty", ">= 0.13.3"
41
+ spec.add_dependency "httparty", ">= 0.14.0"
42
42
  spec.add_dependency "activesupport"
43
43
 
44
44
  end
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.30
4
+ version: 0.1.31
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-08-14 00:00:00.000000000 Z
11
+ date: 2016-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 0.13.3
187
+ version: 0.14.0
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: 0.13.3
194
+ version: 0.14.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: activesupport
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -307,3 +307,4 @@ signing_key:
307
307
  specification_version: 4
308
308
  summary: Sportradar API client
309
309
  test_files: []
310
+ has_rdoc: