sportradar-api 0.10.28 → 0.10.29

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
2
  SHA1:
3
- metadata.gz: 448569ea2508fd3390285f94382ff9579280e09e
4
- data.tar.gz: 9e5b7cb92b52b9cec3a0d4d30922f50f919d999e
3
+ metadata.gz: a338e4b223081ae732503691faa00eea24c75167
4
+ data.tar.gz: 13fedf4240e0529b5f43fc45ea4268ea3b77ee19
5
5
  SHA512:
6
- metadata.gz: d3631dd67efcc81ee1a77baaa2a1b9247760d1c82b1ca9b7d96298306d100ab5de0ecda6f32e60a8562bf73bf1e2a7113913bba7978fca9810557b7175cca0b5
7
- data.tar.gz: c0d2cbc6a42d508fbd1fd99f28fcb1a0908e06df9498ca6dbeaea7ad9f61a0f50c82f182dfddccf41fca530bb528b5b9e8a2a79376838a97e78a38db6e50bc33
6
+ metadata.gz: f4e9c67488f5f92e046fdc22a56c06d9087a3a56969eb23931724dfe26efeef2b220c7f0eec010905bf2f62c87ba02a6f133e506b0b17c61cb35cf7f8597fab1
7
+ data.tar.gz: d681067b13bd39c0e1be3588cff3989a6bd94fb6767e433df2053cca14811db33d99567df7255718305938fbe91eb781ade8a9d07bffc62c8a43b36891480111
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sportradar-api (0.10.28)
4
+ sportradar-api (0.10.29)
5
5
  activesupport
6
6
  httparty (>= 0.14.0)
7
7
 
@@ -6,7 +6,7 @@ module Sportradar
6
6
  attr_accessor :response, :id, :event, :hitter_id, :outcome, :description
7
7
 
8
8
  def initialize(data, **opts)
9
- # @response = data
9
+ @response = data
10
10
  @api = opts[:api]
11
11
  @event = opts[:event]
12
12
 
@@ -22,6 +22,13 @@ module Sportradar
22
22
  # return false if other.nil?
23
23
  # @id == other.id && pitches == other.pitches
24
24
  # end
25
+ def outcome_id
26
+ pitches.last&.outcome_id
27
+ end
28
+
29
+ def hit?
30
+ !!pitches.last&.hit_type
31
+ end
25
32
 
26
33
  def update(data, **opts)
27
34
  @description = data['description'] if data['description']
@@ -43,6 +50,7 @@ module Sportradar
43
50
  @pitches_hash.values
44
51
  end
45
52
  end
53
+
46
54
  end
47
55
  end
48
56
  end
@@ -2,7 +2,7 @@ module Sportradar
2
2
  module Api
3
3
  module Baseball
4
4
  class Pitch < Data
5
- attr_accessor :response, :id, :at_bat, :outcome_id, :status, :count, :is_ab_over, :warming_up, :runners, :errors
5
+ attr_accessor :response, :id, :at_bat, :outcome_id, :status, :count, :is_ab_over, :warming_up, :runners, :errors, :pitch_type_name, :speed, :outcome, :hit_type
6
6
 
7
7
  def initialize(data, **opts)
8
8
  @response = data
@@ -19,7 +19,10 @@ module Sportradar
19
19
  end
20
20
  def update(data, **opts)
21
21
 
22
- @outcome_id = data['outcome_id'] if data['outcome_id']
22
+ if data['outcome_id']
23
+ @outcome_id = data['outcome_id']
24
+ @outcome = self.class.pitch_outcome(@outcome_id)
25
+ end
23
26
  @description = data['description'] if data['description']
24
27
  @status = data['status'] if data['status']
25
28
 
@@ -61,6 +64,7 @@ module Sportradar
61
64
  @y = data['pitch_y'] if data['pitch_y']
62
65
  @zone = data['pitch_zone'] if data['pitch_zone']
63
66
 
67
+ @pitch_type_name = self.class.pitch_type(@type)
64
68
  @total_pitch_count = data['pitch_count'] if data['pitch_count']
65
69
  end
66
70
 
@@ -92,7 +96,6 @@ module Sportradar
92
96
  @warming_preferred_name = data['preferred_name']
93
97
  @warming_jersey_number = data['jersey_number']
94
98
  @warming_up = "#{data['preferred_name'] || data['first_name']} #{data['last_name']}"
95
- puts data unless data['last_name']
96
99
  end
97
100
 
98
101
  def parse_steal(data)
@@ -105,6 +108,116 @@ module Sportradar
105
108
  {"type"=>"steal", "id"=>"37c9192d-cac9-4320-b721-f68955eecf24", "status"=>"official", "created_at"=>"2017-05-06T03:02:16+00:00", "pitcher"=>{"id"=>"90fb6719-5135-42f3-88c0-0ccde448368c"}, "runners"=>[{"id"=>"106e6fb6-6460-412e-abdb-9f73469a27b9", "starting_base"=>1, "ending_base"=>1, "outcome_id"=>"CK", "out"=>false, "last_name"=>"DeShields", "first_name"=>"Delino", "preferred_name"=>"Delino", "jersey_number"=>"3"}]}
106
109
  {"type"=>"steal", "id"=>"b8dcebfa-e02c-470e-ba73-e9b6b553cc0d", "status"=>"official", "created_at"=>"2017-05-06T03:38:48+00:00", "pitcher"=>{"id"=>"1a2638a3-28df-46b3-9cca-0f8eb29b581f"}, "runners"=>[{"id"=>"2847c4e0-01be-46bd-992e-701ee447e3f5", "starting_base"=>1, "ending_base"=>1, "outcome_id"=>"CK", "out"=>false, "last_name"=>"Upton", "first_name"=>"Justin", "preferred_name"=>"Justin", "jersey_number"=>"8"}, {"id"=>"f27a7574-57db-4eeb-8f88-377048806de2", "starting_base"=>3, "ending_base"=>3, "outcome_id"=>"", "out"=>false, "last_name"=>"Martínez", "first_name"=>"Victor", "preferred_name"=>"Victor", "jersey_number"=>"41"}]}
107
110
 
111
+
112
+ def self.pitch_type(code)
113
+ pitch_types[code]
114
+ end
115
+ def self.pitch_types
116
+ @pitch_types ||= {
117
+ 'FA' => 'Fastball',
118
+ 'SI' => 'Sinker',
119
+ 'CT' => 'Cutter',
120
+ 'CU' => 'Curveball',
121
+ 'SL' => 'Slider',
122
+ 'CH' => 'Changeup',
123
+ 'KN' => 'Knuckleball',
124
+ 'SP' => 'Splitter',
125
+ 'SC' => 'Screwball',
126
+ 'FO' => 'Forkball',
127
+ 'IB' => 'Intentional Ball',
128
+ 'PI' => 'Pitchout',
129
+ }
130
+ end
131
+ def self.pitch_outcome(code)
132
+ pitch_outcomes[code]
133
+ end
134
+ def self.pitch_outcomes
135
+ @pitch_outcomes ||= {
136
+ 'aBK' => 'Balk',
137
+ 'aCI' => 'Catcher Interference',
138
+ 'aD' => 'Double',
139
+ 'aDAD3' => 'Double - Adv 3rd',
140
+ 'aDAD4' => 'Double - Adv Home',
141
+ 'aFCAD2' => 'Fielders Choice - Adv 2nd',
142
+ 'aFCAD3' => 'Fielders Choice - Adv 3rd',
143
+ 'aFCAD4' => 'Fielders Choice - Adv Home',
144
+ 'aHBP' => 'Hit By Pitch',
145
+ 'aHR' => 'Homerun',
146
+ 'aIBB' => 'Intentional Walk',
147
+ 'aKLAD1' => 'Strike Looking - Adv 1st',
148
+ 'aKLAD2' => 'Strike Looking - Adv 2nd',
149
+ 'aKLAD3' => 'Strike Looking - Adv 3rd',
150
+ 'aKLAD4' => 'Strike Looking - Adv Home',
151
+ 'aKSAD1' => 'Strike Swinging - Adv 1st',
152
+ 'aKSAD2' => 'Strike Swinging - Adv 2nd',
153
+ 'aKSAD3' => 'Strike Swinging - Adv 3rd',
154
+ 'aKSAD4' => 'Strike Swinging - Adv Home',
155
+ 'aROE' => 'Reached On Error',
156
+ 'aROEAD2' => 'Reached On Error - Adv 2nd',
157
+ 'aROEAD3' => 'Reached On Error - Adv 3rd',
158
+ 'aROEAD4' => 'Reached On Error - Adv Home',
159
+ 'aS' => 'Single',
160
+ 'aSAD2' => 'Single - Adv 2nd',
161
+ 'aSAD3' => 'Single - Adv 3rd',
162
+ 'aSAD4' => 'Single - Adv Home',
163
+ 'aSBAD1' => 'Sacrifice Bunt - Adv 1st',
164
+ 'aSBAD2' => 'Sacrifice Bunt - Adv 2nd',
165
+ 'aSBAD3' => 'Sacrifice Bunt - Adv 3rd',
166
+ 'aSBAD4' => 'Sacrifice Bunt - Adv Home',
167
+ 'aSFAD1' => 'Sacrifice Fly - Adv 1st',
168
+ 'aSFAD2' => 'Sacrifice Fly - Adv 2nd',
169
+ 'aSFAD3' => 'Sacrifice Fly - Adv 3rd',
170
+ 'aSFAD4' => 'Sacrifice Fly - Adv Home',
171
+ 'aT' => 'Triple',
172
+ 'aTAD4' => 'Triple - Adv Home',
173
+ 'bAB' => 'Enforced Ball',
174
+ 'bB' => 'Ball',
175
+ 'bDB' => 'Dirt Ball',
176
+ 'bIB' => 'Intentional Ball',
177
+ 'bPO' => 'Pitchout',
178
+ 'kF' => 'Foul Ball',
179
+ 'kFT' => 'Foul Tip',
180
+ 'kKL' => 'Strike Looking',
181
+ 'kKS' => 'Strike Swinging',
182
+ 'oBI' => 'Hitter Interference',
183
+ 'oDT3' => 'Double - Out at 3rd',
184
+ 'oDT4' => 'Double - Out at Home',
185
+ 'oFC' => 'Fielders Choice',
186
+ 'oFCT2' => 'Fielders Choice - Out at 2nd',
187
+ 'oFCT3' => 'Fielders Choice - Out at 3rd',
188
+ 'oFCT4' => 'Fielders Choice - Out at Home',
189
+ 'oFO' => 'Fly Out',
190
+ 'oGO' => 'Ground Out',
191
+ 'oKLT1' => 'Strike Looking - Out at 1st',
192
+ 'oKLT2' => 'Strike Looking - Out at 2nd',
193
+ 'oKLT3' => 'Strike Looking - Out at 3rd',
194
+ 'oKLT4' => 'Strike Looking - Out at Home',
195
+ 'oKST1' => 'Strike Swinging - Out at 1st',
196
+ 'oKST2' => 'Strike Swinging - Out at 2nd',
197
+ 'oKST3' => 'Strike Swinging - Out at 3rd',
198
+ 'oKST4' => 'Strike Swinging - Out at Home',
199
+ 'oLO' => 'Line Out',
200
+ 'oOBB' => 'Out of Batters Box',
201
+ 'oOP' => 'Out on Appeal',
202
+ 'oPO' => 'Pop Out',
203
+ 'oROET2' => 'Reached On Error - Out at 2nd',
204
+ 'oROET3' => 'Reached On Error - Out at 3rd',
205
+ 'oROET4' => 'Reached On Error - Out at Home',
206
+ 'oSB' => 'Sacrifice Bunt',
207
+ 'oSBT2' => 'Sacrifice Bunt - Out at 2nd',
208
+ 'oSBT3' => 'Sacrifice Bunt - Out at 3rd',
209
+ 'oSBT4' => 'Sacrifice Bunt - Out at Home',
210
+ 'oSF' => 'Sacrifice Fly',
211
+ 'oSFT2' => 'Sacrifice Fly - Out at 2nd',
212
+ 'oSFT3' => 'Sacrifice Fly - Out at 3rd',
213
+ 'oSFT4' => 'Sacrifice Fly - Out at Home',
214
+ 'oST2' => 'Single - Out at 2nd',
215
+ 'oST3' => 'Single - Out at 3rd',
216
+ 'oST4' => 'Single - Out at Home',
217
+ 'oTT4' => 'Triple - Out at Home',
218
+ }
219
+ end
220
+
108
221
  end
109
222
  end
110
223
  end
@@ -2,7 +2,7 @@ module Sportradar
2
2
  module Api
3
3
  module Baseball
4
4
  class Runner < Data
5
- attr_accessor :response, :id, :starting_base, :ending_base, :outcome_id, :out, :description, :fielders
5
+ attr_accessor :response, :id, :starting_base, :ending_base, :outcome_id, :out, :description, :fielders, :outcome
6
6
 
7
7
  def initialize(data, **opts)
8
8
  @response = data
@@ -15,6 +15,7 @@ module Sportradar
15
15
  @starting_base = data["starting_base"]
16
16
  @ending_base = data["ending_base"]
17
17
  @outcome_id = data["outcome_id"]
18
+ @outcome = runner_outcome(@outcome_id)
18
19
  @out = data["out"]
19
20
  @last_name = data["last_name"]
20
21
  @first_name = data["first_name"]
@@ -24,6 +25,53 @@ module Sportradar
24
25
  @fielders = data['fielders'].map { |hash| Fielder.new(hash) } if data['fielders']
25
26
  end
26
27
 
28
+ def runner_outcome(code)
29
+ runner_outcomes[code]
30
+ end
31
+ def runner_outcomes
32
+ @runner_outcomes ||= {
33
+ 'CK' => 'Checked',
34
+ 'ERN' => 'Earned Run/RBI',
35
+ 'eRN' => 'Earned Run/No RBI',
36
+ 'URN' => 'Unearned Run/RBI',
37
+ 'uRN' => 'Unearned Run/No RBI',
38
+ 'PO' => 'Pickoff',
39
+ 'POCS2' => 'Pickoff/Caught Stealing 2nd',
40
+ 'POCS3' => 'Pickoff/Caught Stealing 3nd',
41
+ 'POCS4' => 'Pickoff/Caught Stealing Home',
42
+ 'AD1' => 'Advance 1st',
43
+ 'AD2' => 'Advance 2nd',
44
+ 'AD3' => 'Advance 3rd',
45
+ 'SB2' => 'Stole 2nd',
46
+ 'SB2E4E' => 'Stole 2nd, error to home (earned)',
47
+ 'SB3' => 'Stole 3rd',
48
+ 'SB3E4E' => 'Stole 3rd, error to home (earned)',
49
+ 'SB4' => 'Stole Home',
50
+ 'TO2' => 'Tag out 2nd',
51
+ 'TO3' => 'Tag out 3rd',
52
+ 'TO4' => 'Tag out Home',
53
+ 'FO1' => 'Force out 1st',
54
+ 'FO2' => 'Force out 2nd',
55
+ 'FO3' => 'Force out 3rd',
56
+ 'FO4' => 'Force out Home',
57
+ 'CS2' => 'Caught Stealing 2nd',
58
+ 'CS3' => 'Caught Stealing 3rd',
59
+ 'CS4' => 'Caught Stealing Home',
60
+ 'SB2E3' => 'Stole 2nd, error to 3rd',
61
+ 'SB2E4' => 'Stole 2nd, error to Home',
62
+ 'SB3E4' => 'Stole 3nd, error to Home',
63
+ 'DI2' => 'Indifference to 2nd',
64
+ 'DI3' => 'Indifference to 3rd',
65
+ 'DO1' => 'Doubled off 1st',
66
+ 'DO2' => 'Doubled off 2nd',
67
+ 'DO3' => 'Doubled off 3rd',
68
+ 'RI' => 'Runner Interference',
69
+ 'OOA' => 'Out on Appeal',
70
+ 'OBP' => 'Out of Base Path',
71
+ 'HBB' => 'Hit by Batted Ball',
72
+ }
73
+ end
74
+
27
75
  end
28
76
  end
29
77
  end
@@ -1,5 +1,5 @@
1
1
  module Sportradar
2
2
  module Api
3
- VERSION = "0.10.28"
3
+ VERSION = "0.10.29"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportradar-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.28
4
+ version: 0.10.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Eggett