sportradar-api 0.11.19 → 0.11.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/sportradar/api/football/drive.rb +5 -0
- data/lib/sportradar/api/football/ncaafb/drive.rb +7 -3
- data/lib/sportradar/api/football/nfl/drive.rb +3 -3
- data/lib/sportradar/api/football/nfl/play.rb +7 -0
- data/lib/sportradar/api/football/play.rb +3 -3
- data/lib/sportradar/api/football/quarter.rb +5 -1
- data/lib/sportradar/api/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34039ffb330d2d2a183c38371c0eaa1775b58740
|
4
|
+
data.tar.gz: 748df417602e1d813f5cc1f2d943e4091ae65fcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39f0da60a89d80b56fde095ce1a95d4f17ff4ba82fc5bf74091a74f071fb1be03e79e9a564b44643d9cbba1e4d557336fbed2d8c256435662d180dd1a8669332
|
7
|
+
data.tar.gz: 939cf4cba13e644a547799d8998831c8b58d6fb42328426ea50ea1e9970fe1ddc58c6ea7bf93c89f08d921b5b1d481522fd49800f2a1f39f46f66e0f2cf19645
|
data/Gemfile.lock
CHANGED
@@ -26,6 +26,7 @@ module Sportradar
|
|
26
26
|
@type = data['type']
|
27
27
|
@team = data['team']
|
28
28
|
@clock = data['clock']
|
29
|
+
@overtime = !!opts[:quarter]&.overtime? || @overtime
|
29
30
|
|
30
31
|
@sequence = data["sequence"]
|
31
32
|
@start_reason = data["start_reason"]
|
@@ -45,6 +46,10 @@ module Sportradar
|
|
45
46
|
self
|
46
47
|
end
|
47
48
|
|
49
|
+
def overtime?
|
50
|
+
@overtime
|
51
|
+
end
|
52
|
+
|
48
53
|
def plays
|
49
54
|
@plays_hash.values
|
50
55
|
end
|
@@ -5,12 +5,12 @@ module Sportradar
|
|
5
5
|
class Drive < Sportradar::Api::Football::Drive
|
6
6
|
|
7
7
|
def over?
|
8
|
-
plays.last&.parsed_ending
|
8
|
+
plays.last&.parsed_ending || (overtime? && ['End of Quarter', 'End of Game'].include?(plays.last&.description))
|
9
9
|
end
|
10
10
|
|
11
11
|
def handle_plays_and_events(data, **opts)
|
12
|
-
create_data(@plays_hash, data['actions'], klass: Play, api: api,
|
13
|
-
create_data(@events_hash, data['events'], klass: Event, api: api,
|
12
|
+
create_data(@plays_hash, data['actions'], klass: Play, api: api, drive: self) if data['actions']
|
13
|
+
create_data(@events_hash, data['events'], klass: Event, api: api, drive: self) if data['events']
|
14
14
|
end
|
15
15
|
|
16
16
|
def play_count
|
@@ -30,3 +30,7 @@ module Sportradar
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
+
# e = Event.find 17632;
|
34
|
+
# sc = e.sportconnector_game;
|
35
|
+
# dr = sc.pbp[-3]
|
36
|
+
# pl = dr.plays.last
|
@@ -7,9 +7,9 @@ module Sportradar
|
|
7
7
|
def handle_plays_and_events(data, **opts)
|
8
8
|
things = (Array(data['events']) + Array(data['actions'])).group_by { |hash| hash['type'] }
|
9
9
|
|
10
|
-
create_data(@plays_hash, things['play'], klass: Play, api: api,
|
11
|
-
create_data(@events_hash, things['event'], klass: Event, api: api,
|
12
|
-
create_data(@events_hash, things['event'], klass: Event, api: api,
|
10
|
+
create_data(@plays_hash, things['play'], klass: Play, api: api, drive: self) if things['play']
|
11
|
+
create_data(@events_hash, things['event'], klass: Event, api: api, drive: self) if things['setup']
|
12
|
+
create_data(@events_hash, things['event'], klass: Event, api: api, drive: self) if things['event']
|
13
13
|
end
|
14
14
|
|
15
15
|
end
|
@@ -4,6 +4,13 @@ module Sportradar
|
|
4
4
|
class Nfl
|
5
5
|
class Play < Sportradar::Api::Football::Play
|
6
6
|
|
7
|
+
def down
|
8
|
+
start_situation.down
|
9
|
+
end
|
10
|
+
|
11
|
+
def yfd
|
12
|
+
start_situation.yfd
|
13
|
+
end
|
7
14
|
# def parse_player
|
8
15
|
# # TODO: Currently there is an issue where we are only mapping one player_id to a play, but there are plays with multiple players involved.
|
9
16
|
# play_stats = @statistics.penalty || @statistics.rush || @statistics.return || @statistics.receive
|
@@ -2,7 +2,7 @@ module Sportradar
|
|
2
2
|
module Api
|
3
3
|
module Football
|
4
4
|
class Play < Data
|
5
|
-
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, :play_type, :players
|
5
|
+
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, :play_type, :players, :down, :yfd
|
6
6
|
|
7
7
|
def initialize(data, **opts)
|
8
8
|
@response = data
|
@@ -48,7 +48,7 @@ module Sportradar
|
|
48
48
|
@details = data["details"].gsub('.json', '') if data["details"]
|
49
49
|
|
50
50
|
@statistics = Sportradar::Api::Football::PlayStatistics.new(data['statistics']) if data['statistics']
|
51
|
-
|
51
|
+
parse_player if @statistics
|
52
52
|
@wall_clock = data["wall_clock"]
|
53
53
|
|
54
54
|
self
|
@@ -63,7 +63,7 @@ module Sportradar
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def down_distance
|
66
|
-
|
66
|
+
[down, yfd].compact.join(' & ')
|
67
67
|
end
|
68
68
|
|
69
69
|
def end_of_regulation?
|
@@ -23,11 +23,15 @@ module Sportradar
|
|
23
23
|
@home_info = data["home"]
|
24
24
|
@away_info = data["away"]
|
25
25
|
|
26
|
-
create_data(@drives_hash, data['pbp'], klass: drive_class, api: api,
|
26
|
+
create_data(@drives_hash, data['pbp'], klass: drive_class, api: api, quarter: self) if data['pbp']
|
27
27
|
|
28
28
|
self
|
29
29
|
end
|
30
30
|
|
31
|
+
def overtime?
|
32
|
+
@number > 4
|
33
|
+
end
|
34
|
+
|
31
35
|
def drives
|
32
36
|
@drives_hash.values
|
33
37
|
end
|