sportradar 0.0.3 → 0.0.4
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 +4 -4
- data/README.md +563 -25
- data/lib/sportradar.rb +37 -0
- data/lib/sportradar/client/api_request.rb +8 -0
- data/lib/sportradar/client/client.rb +10 -4
- data/lib/sportradar/client/configuration.rb +7 -2
- data/lib/sportradar/feeds/league_hierarchy.rb +12 -0
- data/lib/sportradar/feeds/league_schedule.rb +18 -0
- data/lib/sportradar/mlb/league_hierarchy.rb +1 -7
- data/lib/sportradar/mlb/league_schedule.rb +7 -12
- data/lib/sportradar/mlb/models/scoring_play.rb +2 -2
- data/lib/sportradar/nfl/boxscore.rb +9 -0
- data/lib/sportradar/nfl/extended_boxscore.rb +9 -0
- data/lib/sportradar/nfl/game_depth_chart.rb +9 -0
- data/lib/sportradar/nfl/game_injuries.rb +9 -0
- data/lib/sportradar/nfl/game_request.rb +24 -0
- data/lib/sportradar/nfl/game_roster.rb +9 -0
- data/lib/sportradar/nfl/game_statistics.rb +9 -0
- data/lib/sportradar/nfl/game_summary.rb +9 -0
- data/lib/sportradar/nfl/league_hierarchy.rb +9 -0
- data/lib/sportradar/nfl/league_schedule.rb +33 -0
- data/lib/sportradar/nfl/parsers/boxscore_parser.rb +124 -0
- data/lib/sportradar/nfl/play_by_play.rb +9 -0
- data/lib/sportradar/nfl/play_summary.rb +27 -0
- data/lib/sportradar/nfl/rankings.rb +9 -0
- data/lib/sportradar/nfl/season_statistics.rb +28 -0
- data/lib/sportradar/nfl/standings.rb +9 -0
- data/lib/sportradar/nfl/team_depth_chart.rb +17 -0
- data/lib/sportradar/nfl/team_depth_charts.rb +17 -0
- data/lib/sportradar/nfl/team_roster.rb +17 -0
- data/lib/sportradar/nfl/team_rosters.rb +17 -0
- data/lib/sportradar/nfl/team_statistics.rb +18 -0
- data/lib/sportradar/nfl/teams_request.rb +39 -0
- data/lib/sportradar/nfl/weekly_boxscore.rb +9 -0
- data/lib/sportradar/nfl/weekly_extended_boxscores.rb +20 -0
- data/lib/sportradar/nfl/weekly_game_depth_charts.rb +20 -0
- data/lib/sportradar/nfl/weekly_game_statistics.rb +21 -0
- data/lib/sportradar/nfl/weekly_game_summary.rb +21 -0
- data/lib/sportradar/nfl/weekly_leaders.rb +9 -0
- data/lib/sportradar/nfl/weekly_play_by_play.rb +21 -0
- data/lib/sportradar/nfl/weekly_schedule.rb +26 -0
- data/lib/sportradar/version.rb +1 -1
- data/sample.env +7 -0
- data/sportradar.gemspec +1 -1
- metadata +36 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9e591077ce14b3b9fe91f220694d95d3c8cb280d
|
|
4
|
+
data.tar.gz: 14fdd483819317b7147600f8cb9f8d85821e6f91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: be241a229c81a3a6fdfbac96aa95540442ef84e92544a2df733bc17022ecb181555fd4f149c83e9e659ce8dd5b13e008f89f02458459f584efc52f32f19b9111
|
|
7
|
+
data.tar.gz: c61700ef6f70663299d7663010e78c060ae8f206868e12885f6ff9c5565c1f9c9adef6fc242002886c7827ff7a257373bc5e03a4a3c557236df264cba2cfa3f3
|
data/README.md
CHANGED
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Simple API client for [Sportradar API](http://developer.sportradar.us/).
|
|
4
4
|
|
|
5
|
-
Currently supports
|
|
5
|
+
Currently supports
|
|
6
|
+
|
|
7
|
+
* a subset of [Major League Baseball API](http://developer.sportradar.us/docs/MLB_API) endpoints
|
|
8
|
+
* complete set of [NFL Classic Feed API](http://developer.sportradar.us/docs/read/NFL_Classic) endpoints
|
|
6
9
|
|
|
7
10
|
## Installation
|
|
8
11
|
|
|
9
12
|
Add this line to your application's Gemfile:
|
|
10
13
|
|
|
11
14
|
```ruby
|
|
12
|
-
gem 'sportradar'
|
|
15
|
+
gem 'sportradar', '>= 0.0.4'
|
|
13
16
|
```
|
|
14
17
|
|
|
15
18
|
And then execute:
|
|
@@ -27,15 +30,26 @@ Or install it yourself as:
|
|
|
27
30
|
In your `.env`:
|
|
28
31
|
|
|
29
32
|
```
|
|
30
|
-
|
|
33
|
+
SPORTRADAR_ACCESS_LEVEL_MLB=t
|
|
31
34
|
SPORTRADAR_API_KEY_MLB=YOUR_API_KEY
|
|
35
|
+
|
|
36
|
+
SPORTRADAR_ACCESS_LEVEL_NBA=t
|
|
32
37
|
SPORTRADAR_API_KEY_NBA=YOUR_API_KEY
|
|
38
|
+
|
|
39
|
+
SPORTRADAR_ACCESS_LEVEL_NFL=t
|
|
33
40
|
SPORTRADAR_API_KEY_NFL=YOUR_API_KEY
|
|
41
|
+
|
|
42
|
+
SPORTRADAR_ACCESS_LEVEL_NHL=t
|
|
34
43
|
SPORTRADAR_API_KEY_NHL=YOUR_API_KEY
|
|
44
|
+
|
|
35
45
|
SPORTRADAR_FILE_PATH=/path/to/save/responses
|
|
36
46
|
```
|
|
37
47
|
|
|
38
|
-
`SPORTRADAR_ACCESS_LEVEL` is `t` or 'p'
|
|
48
|
+
`SPORTRADAR_ACCESS_LEVEL` is `t` or 'p' (or 'rt')
|
|
49
|
+
|
|
50
|
+
Note: Currently only MLB and NFL support.
|
|
51
|
+
|
|
52
|
+
Important: This is a breaking change from version 0.0.3 that had a global access level.
|
|
39
53
|
|
|
40
54
|
### Console
|
|
41
55
|
|
|
@@ -65,34 +79,74 @@ Defaults to and supports API version 5 only.
|
|
|
65
79
|
* `Sportradar::Mlb::TeamRosters.new().fetch`
|
|
66
80
|
* `Sportradar::Mlb::Venues.new().fetch`
|
|
67
81
|
|
|
68
|
-
Note: `.save` vs `.fetch` will store in the path specified in `SPORTRADAR_FILE_PATH`.
|
|
82
|
+
Note: `.save` vs `.fetch` will store in the path specified in `SPORTRADAR_FILE_PATH`.
|
|
69
83
|
|
|
70
|
-
|
|
84
|
+
#### Bulk Saves
|
|
85
|
+
|
|
86
|
+
Some helpers will call .save for each response as separate items.
|
|
87
|
+
|
|
88
|
+
* `Sportradar::Mlb::DailyGameSummary.new(date: Date.today).perform`
|
|
89
|
+
* `Sportradar::Mlb::DailyPlayByPlay.new(date: Date.today).perform`
|
|
90
|
+
|
|
91
|
+
### Football/NFL
|
|
92
|
+
|
|
93
|
+
Defaults to and supports NFL Classic API feed version 1 only (not Official).
|
|
94
|
+
|
|
95
|
+
#### API Requests
|
|
71
96
|
|
|
72
|
-
* `
|
|
73
|
-
* `
|
|
74
|
-
* `
|
|
75
|
-
* `
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
* `
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* `
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
97
|
+
* `Sportradar::Nfl::LeagueHierarchy.new().fetch`
|
|
98
|
+
* `Sportradar::Nfl::WeeklySchedule.new(year: '2016', interval_type: <reg|pre|pst>, week: <0..17>).fetch`
|
|
99
|
+
* `Sportradar::Nfl::LeagueSchedule.new(year: '2016', interval_type: <reg|pre|pst>).fetch`
|
|
100
|
+
* `Sportradar::Nfl::GameStatistics.new(week: 1,
|
|
101
|
+
year: 2015,
|
|
102
|
+
interval_type: 'reg',
|
|
103
|
+
away_team_abbreviation: 'PIT',
|
|
104
|
+
home_team_abbreviation: 'NE').fetch`
|
|
105
|
+
* `Sportradar::Nfl::GameSummary.new(week: 1,
|
|
106
|
+
year: 2015,
|
|
107
|
+
interval_type: 'reg',
|
|
108
|
+
away_team_abbreviation: 'PIT',
|
|
109
|
+
home_team_abbreviation: 'NE').fetch`
|
|
110
|
+
* `Sportradar::Nfl::PlayByPlay.new(week: 1,
|
|
111
|
+
year: 2015,
|
|
112
|
+
interval_type: 'reg',
|
|
113
|
+
away_team_abbreviation: 'PIT',
|
|
114
|
+
home_team_abbreviation: 'NE').fetch`
|
|
115
|
+
* `Sportradar::Nfl::PlaySummary.new(week: 1,
|
|
116
|
+
year: 2015,
|
|
117
|
+
interval_type: 'reg',
|
|
118
|
+
away_team_abbreviation: 'PIT',
|
|
119
|
+
home_team_abbreviation: 'NE',
|
|
120
|
+
play_id: '4788eac3-c59e-4f82-94ef-d449ac6d6fca').fetch`
|
|
121
|
+
* `Sportradar::Nfl::Boxscore.new(week: 1,
|
|
122
|
+
year: 2015,
|
|
123
|
+
away_team_abbreviation: 'PIT',
|
|
124
|
+
home_team_abbreviation: 'NE').fetch`
|
|
125
|
+
* `Sportradar::Nfl::ExtendedBoxscore.new(week: 1,
|
|
126
|
+
year: 2015,
|
|
127
|
+
away_team_abbreviation: 'PIT',
|
|
128
|
+
home_team_abbreviation: 'NE').fetch`
|
|
129
|
+
* `Sportradar::Nfl::WeeklyBoxscore.new(week: 1, year: 2015).fetch`
|
|
130
|
+
* `Sportradar::Nfl::TeamRoster.new(team_abbreviation: 'NE').fetch`
|
|
131
|
+
* `Sportradar::Nfl::GameDepthChart.new(week: 1, year: 2015, away_team_abbreviation: 'PIT', home_team_abbreviation: 'NE').fetch`
|
|
132
|
+
* `Sportradar::Nfl::TeamDepthChart.new(team_abbreviation: 'NE').fetch`
|
|
133
|
+
* `Sportradar::Nfl::WeeklyLeaders.new(week: 1, year: 2015).fetch`
|
|
134
|
+
* `Sportradar::Nfl::Standings.new(year: 2015, interval_type: <reg|pre|pst>).fetch`
|
|
135
|
+
* `Sportradar::Nfl::Rankings.new(year: 2015).fetch`
|
|
136
|
+
* `Sportradar::Nfl::TeamStatistics.new(year: 2015, interval_type: 'reg', team_abbreviation: 'NE').fetch`
|
|
89
137
|
|
|
90
138
|
#### Bulk Saves
|
|
91
139
|
|
|
92
140
|
Some helpers will call `.save` for each response as separate items.
|
|
93
141
|
|
|
94
|
-
* `Sportradar::
|
|
95
|
-
* `Sportradar::
|
|
142
|
+
* `Sportradar::Nfl::TeamRosters.perform`
|
|
143
|
+
* `Sportradar::Nfl::TeamDepthCharts.perform`
|
|
144
|
+
* `Sportradar::Nfl::WeeklyExtendedBoxscores.perform(year: 2015, interval_type: 'reg', week: 1)`
|
|
145
|
+
* `Sportradar::Nfl::WeeklyGameDepthCharts.perform(year: 2015, interval_type: 'reg', week: 1)`
|
|
146
|
+
* `Sportradar::Nfl::WeeklyGameStatistics.perform(year: 2015, interval_type: 'reg', week: 2)`
|
|
147
|
+
* `Sportradar::Nfl::WeeklyGameSummary.perform(year: 2015, interval_type: 'reg', week: 2)`
|
|
148
|
+
* `Sportradar::Nfl::WeeklyPlayByPlay.perform(year: 2015, interval_type: 'reg', week: 1)`
|
|
149
|
+
* `Sportradar::Nfl::SeasonStatistics.perform(year: 2015, interval_type: 'reg')`
|
|
96
150
|
|
|
97
151
|
### Model Helpers
|
|
98
152
|
|
|
@@ -152,6 +206,490 @@ sp.home_team_runner_ids
|
|
|
152
206
|
"8ec56596-5b8b-41f8-88a7-384f20b8b6a7"]
|
|
153
207
|
```
|
|
154
208
|
|
|
209
|
+
#### Play by Play, At Bats and Pitches
|
|
210
|
+
|
|
211
|
+
The `Sportradar::Mlb::Parsers::PlayByPlayParser.new(game_play_by_play: g.game_play_by_play)` takes thes play-by-play json and can return
|
|
212
|
+
|
|
213
|
+
* `.at_bats`
|
|
214
|
+
* `.at_bat_summary`
|
|
215
|
+
* `.pitches`
|
|
216
|
+
* `.pitch_summary`
|
|
217
|
+
|
|
218
|
+
Both the `at_bats` and `pitch` are models with each attribute, like `pitch_speed` or `hitter_id`.
|
|
219
|
+
|
|
220
|
+
The summary convenience methods list each at bat or pitch as text.
|
|
221
|
+
|
|
222
|
+
#### At Bat Summary
|
|
223
|
+
|
|
224
|
+
Given the play-by-play json, `Sportradar::Mlb::Parsers::PlayByPlayParser.new(game_play_by_play: g.game_play_by_play).at_bat_summary` returns:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
T of 1: Ruben Tejada strikes out swinging.
|
|
228
|
+
T of 1: Grant Green singles to shallow center field.
|
|
229
|
+
T of 1: Brandon Belt walks. Grant Green to second.
|
|
230
|
+
T of 1: Buster Posey singles to shallow right field. Brandon Belt to second. Grant Green to third.
|
|
231
|
+
T of 1: Brandon Crawford strikes out swinging.
|
|
232
|
+
T of 1: Mac Williamson grounds out to third base, Jake Lamb to Paul Goldschmidt.
|
|
233
|
+
B of 1: Jean Segura flies out to shallow right field to Mac Williamson.
|
|
234
|
+
B of 1: Michael Bourn singles to shallow infield.
|
|
235
|
+
B of 1: Paul Goldschmidt reaches on a fielder's choice to second base. Michael Bourn out at second.
|
|
236
|
+
B of 1: Jake Lamb strikes out swinging.
|
|
237
|
+
T of 2: Trevor Brown grounds out to third base, Jake Lamb to Paul Goldschmidt.
|
|
238
|
+
T of 2: Jarrett Parker grounds out to second base, Philip Gosselin to Paul Goldschmidt.
|
|
239
|
+
T of 2: Albert Suarez strikes out swinging.
|
|
240
|
+
B of 2: Yasmany Tomas grounds out to shortstop, Brandon Crawford to Buster Posey.
|
|
241
|
+
B of 2: Philip Gosselin doubles to deep left center field.
|
|
242
|
+
B of 2: Brandon Drury doubles to deep left center field. Philip Gosselin scores.
|
|
243
|
+
B of 2: Tuffy Gosewisch singles to shallow left field. Brandon Drury to third.
|
|
244
|
+
B of 2: Robbie Ray out on a sacrifice bunt to shallow infield, Buster Posey to Grant Green. Tuffy Gosewisch to second.
|
|
245
|
+
B of 2: Jean Segura flies out to center field to Jarrett Parker.
|
|
246
|
+
T of 3: Ruben Tejada lines out to left center field to Brandon Drury.
|
|
247
|
+
T of 3: Grant Green singles to center field.
|
|
248
|
+
T of 3: Brandon Belt singles to right field. Grant Green to second.
|
|
249
|
+
T of 3: Buster Posey lines out to center field to Michael Bourn.
|
|
250
|
+
T of 3: Brandon Crawford hit by pitch. Brandon Belt to second. Grant Green to third.
|
|
251
|
+
T of 3: Mac Williamson singles to shallow center field. Brandon Crawford to third. Brandon Belt scores. Grant Green scores.
|
|
252
|
+
T of 3: Trevor Brown called out on strikes.
|
|
253
|
+
B of 3: Michael Bourn grounds out to shortstop, Ruben Tejada to Buster Posey.
|
|
254
|
+
B of 3: Paul Goldschmidt grounds out to shortstop, Brandon Crawford to Buster Posey.
|
|
255
|
+
B of 3: Jake Lamb strikes out swinging.
|
|
256
|
+
T of 4: Jarrett Parker lines out to left field to Brandon Drury.
|
|
257
|
+
T of 4: Albert Suarez singles to shallow center field.
|
|
258
|
+
T of 4: Ruben Tejada doubles to deep center field. Albert Suarez to third.
|
|
259
|
+
T of 4: Grant Green flies out to left field to Brandon Drury.
|
|
260
|
+
T of 4: Brandon Belt doubles to left field. Ruben Tejada scores. Albert Suarez scores.
|
|
261
|
+
T of 4: Buster Posey walks.
|
|
262
|
+
T of 4: Brandon Crawford strikes out swinging.
|
|
263
|
+
B of 4: Yasmany Tomas strikes out swinging.
|
|
264
|
+
B of 4: Philip Gosselin grounds out to first base, Buster Posey to Albert Suarez.
|
|
265
|
+
B of 4: Brandon Drury grounds out to shortstop, Brandon Crawford to Buster Posey.
|
|
266
|
+
T of 5: Mac Williamson grounds out to third base, Jake Lamb to Paul Goldschmidt.
|
|
267
|
+
T of 5: Trevor Brown grounds out to third base, Jake Lamb to Paul Goldschmidt.
|
|
268
|
+
T of 5: Jarrett Parker called out on strikes.
|
|
269
|
+
B of 5: Tuffy Gosewisch grounds out to third base, Ruben Tejada to Brandon Crawford to Buster Posey.
|
|
270
|
+
B of 5: Robbie Ray grounds out to second base, Grant Green to Buster Posey.
|
|
271
|
+
B of 5: Jean Segura doubles to deep right field.
|
|
272
|
+
B of 5: Michael Bourn strikes out swinging.
|
|
273
|
+
T of 6: Albert Suarez strikes out swinging.
|
|
274
|
+
T of 6: Ruben Tejada grounds out to third base, Jake Lamb to Paul Goldschmidt.
|
|
275
|
+
T of 6: Grant Green strikes out swinging.
|
|
276
|
+
B of 6: Paul Goldschmidt homers to center field.
|
|
277
|
+
B of 6: Jake Lamb lines out to deep center field to Jarrett Parker.
|
|
278
|
+
B of 6: Yasmany Tomas grounds out to second base, Grant Green to Buster Posey.
|
|
279
|
+
B of 6: Philip Gosselin called out on strikes.
|
|
280
|
+
T of 7: Brandon Belt strikes out swinging.
|
|
281
|
+
T of 7: Buster Posey walks.
|
|
282
|
+
T of 7: Brandon Crawford strikes out on a foul tip.
|
|
283
|
+
T of 7: Mac Williamson lines out to deep left field to Brandon Drury.
|
|
284
|
+
B of 7: Brandon Drury flies out to deep left field to Brandon Belt.
|
|
285
|
+
B of 7: Tuffy Gosewisch singles to left field.
|
|
286
|
+
B of 7: Chris Herrmann strikes out swinging.
|
|
287
|
+
B of 7: Jean Segura grounds out to shallow infield, George Kontos to Buster Posey.
|
|
288
|
+
T of 8: Trevor Brown flies out to right center field to Yasmany Tomas.
|
|
289
|
+
T of 8: Jarrett Parker strikes out swinging.
|
|
290
|
+
T of 8: Conor Gillaspie grounds out to second base, Philip Gosselin to Paul Goldschmidt.
|
|
291
|
+
B of 8: Michael Bourn grounds out to first base to Buster Posey.
|
|
292
|
+
B of 8: Paul Goldschmidt reaches on error. Fielding error by Gerald Posey.
|
|
293
|
+
B of 8: Jake Lamb homers to right field. Paul Goldschmidt scores.
|
|
294
|
+
B of 8: Yasmany Tomas grounds out to first base, Buster Posey to Cory Gearrin.
|
|
295
|
+
B of 8: Philip Gosselin walks.
|
|
296
|
+
B of 8: Brandon Drury flies out to center field to Jarrett Parker.
|
|
297
|
+
T of 9: Ruben Tejada called out on strikes.
|
|
298
|
+
T of 9: Grant Green grounds out to shortstop, Jean Segura to Paul Goldschmidt.
|
|
299
|
+
T of 9: Brandon Belt walks.
|
|
300
|
+
T of 9: Buster Posey lines out to deep left field to Brandon Drury.
|
|
301
|
+
B of 9: Tuffy Gosewisch strikes out swinging.
|
|
302
|
+
B of 9: Rickie Weeks walks.
|
|
303
|
+
B of 9: Jean Segura lines out to shallow infield to Hunter Strickland. Rickie Weeks doubled off first.
|
|
304
|
+
T of 10: Brandon Crawford flies out to deep right center field to Yasmany Tomas.
|
|
305
|
+
T of 10: Mac Williamson strikes out on a foul tip.
|
|
306
|
+
T of 10: Trevor Brown called out on strikes.
|
|
307
|
+
B of 10: Michael Bourn grounds out to second base, Grant Green to Buster Posey.
|
|
308
|
+
B of 10: Paul Goldschmidt grounds out to shortstop, Brandon Crawford to Buster Posey.
|
|
309
|
+
B of 10: Jake Lamb strikes out swinging.
|
|
310
|
+
T of 11: Jarrett Parker walks.
|
|
311
|
+
T of 11: Ramiro Pena doubles to deep right field. Jarrett Parker scores.
|
|
312
|
+
T of 11: Ruben Tejada out on a sacrifice bunt to shallow infield, Enrique Burgos to Paul Goldschmidt. Ramiro Pena to third.
|
|
313
|
+
T of 11: Angel Pagan strikes out swinging.
|
|
314
|
+
T of 11: Brandon Belt pops out to shallow left field to Jake Lamb.
|
|
315
|
+
B of 11: Yasmany Tomas singles to shallow left field.
|
|
316
|
+
B of 11: Philip Gosselin out on a sacrifice bunt to shallow infield, Ruben Tejada to Ramiro Pena. Yasmany Tomas to second.
|
|
317
|
+
B of 11: Brandon Drury grounds out to third base, Ruben Tejada to Buster Posey.
|
|
318
|
+
B of 11: Welington Castillo walks.
|
|
319
|
+
B of 11: Peter O'Brien strikes out swinging.
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
#### Pitch Summary
|
|
323
|
+
|
|
324
|
+
Given the play-by-play json, `Sportradar::Mlb::Parsers::PlayByPlayParser.new(game_play_by_play: g.game_play_by_play).pitch_summary` returns the type and result of each pitch:
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
Fastball = Strike Looking
|
|
328
|
+
Fastball = Foul Ball
|
|
329
|
+
Fastball = Ball
|
|
330
|
+
Fastball = Foul Ball
|
|
331
|
+
Slider = Strike Swinging
|
|
332
|
+
Fastball = Strike Looking
|
|
333
|
+
Fastball = Foul Ball
|
|
334
|
+
Fastball = Single
|
|
335
|
+
Slider = Ball
|
|
336
|
+
Slider = Ball
|
|
337
|
+
Fastball = Ball
|
|
338
|
+
Fastball = Ball
|
|
339
|
+
Fastball = Foul Tip
|
|
340
|
+
Fastball = Single
|
|
341
|
+
Slider = Strike Swinging
|
|
342
|
+
Slider = Dirt Ball
|
|
343
|
+
Fastball = Strike Looking
|
|
344
|
+
Fastball = Ball
|
|
345
|
+
Fastball = Ball
|
|
346
|
+
Slider = Foul Ball
|
|
347
|
+
Fastball = Strike Swinging
|
|
348
|
+
Fastball = Strike Looking
|
|
349
|
+
Fastball = Ball
|
|
350
|
+
Fastball = Foul Ball
|
|
351
|
+
Slider = Ball
|
|
352
|
+
Fastball = Ground Out
|
|
353
|
+
Sinker = Ball
|
|
354
|
+
Fastball = Strike Looking
|
|
355
|
+
Sinker = Ball
|
|
356
|
+
Slider = Fly Out
|
|
357
|
+
Sinker = Ball
|
|
358
|
+
Fastball = Single
|
|
359
|
+
Slider = Strike Looking
|
|
360
|
+
Sinker = Dirt Ball
|
|
361
|
+
Sinker = Strike Swinging
|
|
362
|
+
Sinker = Foul Ball
|
|
363
|
+
Fastball = Ball
|
|
364
|
+
Slider = Fielders Choice
|
|
365
|
+
Fastball = Ball
|
|
366
|
+
Changeup = Foul Ball
|
|
367
|
+
Sinker = Ball
|
|
368
|
+
Fastball = Foul Ball
|
|
369
|
+
Curveball = Foul Ball
|
|
370
|
+
Curveball = Strike Swinging
|
|
371
|
+
Changeup = Ball
|
|
372
|
+
Fastball = Ground Out
|
|
373
|
+
Fastball = Strike Looking
|
|
374
|
+
Fastball = Foul Ball
|
|
375
|
+
Fastball = Ground Out
|
|
376
|
+
Fastball = Strike Looking
|
|
377
|
+
Fastball = Ball
|
|
378
|
+
Fastball = Ball
|
|
379
|
+
Fastball = Strike Swinging
|
|
380
|
+
Fastball = Strike Swinging
|
|
381
|
+
Sinker = Strike Looking
|
|
382
|
+
Slider = Foul Ball
|
|
383
|
+
Slider = Ground Out
|
|
384
|
+
Fastball = Strike Looking
|
|
385
|
+
Fastball = Ball
|
|
386
|
+
Changeup = Foul Ball
|
|
387
|
+
Sinker = Ball
|
|
388
|
+
Sinker = Ball
|
|
389
|
+
Slider = Double
|
|
390
|
+
Sinker = Double
|
|
391
|
+
Slider = Ball
|
|
392
|
+
Fastball = Strike Looking
|
|
393
|
+
Sinker = Strike Swinging
|
|
394
|
+
Curveball = Dirt Ball
|
|
395
|
+
Slider = Ball
|
|
396
|
+
Sinker = Single
|
|
397
|
+
Sinker = Foul Ball
|
|
398
|
+
Slider = Ball
|
|
399
|
+
Sinker = Sacrifice Bunt
|
|
400
|
+
Curveball = Ball
|
|
401
|
+
Fastball = Ball
|
|
402
|
+
Slider = Strike Looking
|
|
403
|
+
Slider = Fly Out
|
|
404
|
+
Fastball = Strike Looking
|
|
405
|
+
Curveball = Ball
|
|
406
|
+
Fastball = Line Out
|
|
407
|
+
Slider = Ball
|
|
408
|
+
Fastball = Single
|
|
409
|
+
Fastball = Strike Looking
|
|
410
|
+
Fastball = Foul Ball
|
|
411
|
+
Slider = Foul Ball
|
|
412
|
+
Fastball = Ball
|
|
413
|
+
Fastball = Foul Ball
|
|
414
|
+
Slider = Single
|
|
415
|
+
Fastball = Foul Ball
|
|
416
|
+
Slider = Line Out
|
|
417
|
+
Fastball = Strike Looking
|
|
418
|
+
Fastball = Hit By Pitch
|
|
419
|
+
Fastball = Single
|
|
420
|
+
Fastball = Strike Looking
|
|
421
|
+
Fastball = Strike Swinging
|
|
422
|
+
Fastball = Strike Looking
|
|
423
|
+
Sinker = Strike Looking
|
|
424
|
+
Curveball = Foul Ball
|
|
425
|
+
Sinker = Foul Ball
|
|
426
|
+
Fastball = Ground Out
|
|
427
|
+
Sinker = Ball
|
|
428
|
+
Slider = Ball
|
|
429
|
+
Fastball = Strike Looking
|
|
430
|
+
Slider = Strike Looking
|
|
431
|
+
Slider = Ball
|
|
432
|
+
Fastball = Foul Ball
|
|
433
|
+
Slider = Ground Out
|
|
434
|
+
Curveball = Ball
|
|
435
|
+
Changeup = Strike Looking
|
|
436
|
+
Curveball = Ball
|
|
437
|
+
Sinker = Foul Ball
|
|
438
|
+
Sinker = Foul Ball
|
|
439
|
+
Sinker = Foul Ball
|
|
440
|
+
Sinker = Ball
|
|
441
|
+
Curveball = Strike Swinging
|
|
442
|
+
Fastball = Line Out
|
|
443
|
+
Fastball = Strike Looking
|
|
444
|
+
Fastball = Ball
|
|
445
|
+
Fastball = Single
|
|
446
|
+
Fastball = Ball
|
|
447
|
+
Fastball = Foul Ball
|
|
448
|
+
Slider = Ball
|
|
449
|
+
Slider = Ball
|
|
450
|
+
Fastball = Double
|
|
451
|
+
Fastball = Ball
|
|
452
|
+
Fastball = Fly Out
|
|
453
|
+
Slider = Strike Swinging
|
|
454
|
+
Fastball = Strike Swinging
|
|
455
|
+
Fastball = Foul Ball
|
|
456
|
+
Fastball = Double
|
|
457
|
+
Intentional Ball = iBall
|
|
458
|
+
Intentional Ball = iBall
|
|
459
|
+
Intentional Ball = iBall
|
|
460
|
+
Intentional Ball = iBall
|
|
461
|
+
Slider = Strike Swinging
|
|
462
|
+
Fastball = Ball
|
|
463
|
+
Slider = Strike Swinging
|
|
464
|
+
Slider = Foul Ball
|
|
465
|
+
Fastball = Ball
|
|
466
|
+
Slider = Strike Swinging
|
|
467
|
+
Slider = Strike Swinging
|
|
468
|
+
Fastball = Ball
|
|
469
|
+
Slider = Foul Ball
|
|
470
|
+
Slider = Foul Ball
|
|
471
|
+
Fastball = Ball
|
|
472
|
+
Slider = Ball
|
|
473
|
+
Sinker = Strike Swinging
|
|
474
|
+
Slider = Ball
|
|
475
|
+
Fastball = Strike Looking
|
|
476
|
+
Sinker = Ground Out
|
|
477
|
+
Slider = Ball
|
|
478
|
+
Slider = Ball
|
|
479
|
+
Slider = Strike Looking
|
|
480
|
+
Fastball = Ground Out
|
|
481
|
+
Fastball = Strike Looking
|
|
482
|
+
Slider = Strike Looking
|
|
483
|
+
Slider = Foul Ball
|
|
484
|
+
Fastball = Foul Ball
|
|
485
|
+
Slider = Ball
|
|
486
|
+
Fastball = Ground Out
|
|
487
|
+
Slider = Ground Out
|
|
488
|
+
Slider = Ball
|
|
489
|
+
Slider = Strike Swinging
|
|
490
|
+
Slider = Strike Swinging
|
|
491
|
+
Fastball = Ball
|
|
492
|
+
Slider = Strike Looking
|
|
493
|
+
Sinker = Ground Out
|
|
494
|
+
Sinker = Strike Looking
|
|
495
|
+
Sinker = Foul Ball
|
|
496
|
+
Curveball = Ball
|
|
497
|
+
Curveball = Foul Ball
|
|
498
|
+
Fastball = Ground Out
|
|
499
|
+
Sinker = Foul Ball
|
|
500
|
+
Fastball = Double
|
|
501
|
+
Curveball = Strike Looking
|
|
502
|
+
Slider = Dirt Ball
|
|
503
|
+
Fastball = Foul Ball
|
|
504
|
+
Sinker = Strike Swinging
|
|
505
|
+
Fastball = Foul Ball
|
|
506
|
+
Slider = Foul Ball
|
|
507
|
+
Fastball = Foul Ball
|
|
508
|
+
Slider = Strike Swinging
|
|
509
|
+
Slider = Strike Looking
|
|
510
|
+
Slider = Ground Out
|
|
511
|
+
Slider = Strike Swinging
|
|
512
|
+
Fastball = Foul Ball
|
|
513
|
+
Slider = Strike Swinging
|
|
514
|
+
Slider = Ball
|
|
515
|
+
Slider = Foul Ball
|
|
516
|
+
Slider = Strike Swinging
|
|
517
|
+
Fastball = Ball
|
|
518
|
+
Curveball = Homerun
|
|
519
|
+
Changeup = Ball
|
|
520
|
+
Sinker = Line Out
|
|
521
|
+
Fastball = Ball
|
|
522
|
+
Fastball = Ball
|
|
523
|
+
Sinker = Ball
|
|
524
|
+
Sinker = Strike Looking
|
|
525
|
+
Sinker = Ground Out
|
|
526
|
+
Fastball = Foul Ball
|
|
527
|
+
Sinker = Ball
|
|
528
|
+
Sinker = Foul Ball
|
|
529
|
+
Sinker = Foul Ball
|
|
530
|
+
Sinker = Strike Looking
|
|
531
|
+
Slider = Ball
|
|
532
|
+
Sinker = Foul Ball
|
|
533
|
+
Sinker = Foul Ball
|
|
534
|
+
Sinker = Ball
|
|
535
|
+
Slider = Strike Swinging
|
|
536
|
+
Fastball = Ball
|
|
537
|
+
Slider = Ball
|
|
538
|
+
Changeup = Ball
|
|
539
|
+
Sinker = Foul Ball
|
|
540
|
+
Sinker = Ball
|
|
541
|
+
Sinker = Strike Swinging
|
|
542
|
+
Fastball = Ball
|
|
543
|
+
Slider = Foul Ball
|
|
544
|
+
Sinker = Ball
|
|
545
|
+
Fastball = Foul Tip
|
|
546
|
+
Fastball = Ball
|
|
547
|
+
Slider = Strike Looking
|
|
548
|
+
Fastball = Line Out
|
|
549
|
+
Slider = Fly Out
|
|
550
|
+
Cutter = Strike Looking
|
|
551
|
+
Cutter = Single
|
|
552
|
+
Fastball = Strike Swinging
|
|
553
|
+
Fastball = Foul Ball
|
|
554
|
+
Fastball = Ball
|
|
555
|
+
Fastball = Ball
|
|
556
|
+
Fastball = Ball
|
|
557
|
+
Fastball = Strike Swinging
|
|
558
|
+
Fastball = Ground Out
|
|
559
|
+
Slider = Ball
|
|
560
|
+
Fastball = Foul Ball
|
|
561
|
+
Slider = Fly Out
|
|
562
|
+
Fastball = Ball
|
|
563
|
+
Changeup = Foul Ball
|
|
564
|
+
Fastball = Ball
|
|
565
|
+
Fastball = Foul Ball
|
|
566
|
+
Fastball = Ball
|
|
567
|
+
Fastball = Strike Swinging
|
|
568
|
+
Fastball = Strike Looking
|
|
569
|
+
Fastball = Ground Out
|
|
570
|
+
Sinker = Ground Out
|
|
571
|
+
Sinker = Ball
|
|
572
|
+
Sinker = Foul Ball
|
|
573
|
+
Slider = Reached On Error
|
|
574
|
+
Sinker = Ball
|
|
575
|
+
Slider = Strike Swinging
|
|
576
|
+
Sinker = Foul Ball
|
|
577
|
+
Changeup = Ball
|
|
578
|
+
Changeup = Ball
|
|
579
|
+
Slider = Homerun
|
|
580
|
+
Sinker = Ball
|
|
581
|
+
Sinker = Ball
|
|
582
|
+
Sinker = Ground Out
|
|
583
|
+
Sinker = Ball
|
|
584
|
+
Slider = Ball
|
|
585
|
+
Sinker = Ball
|
|
586
|
+
Sinker = Ball
|
|
587
|
+
Fastball = Foul Ball
|
|
588
|
+
Slider = Ball
|
|
589
|
+
Sinker = Ball
|
|
590
|
+
Slider = Strike Looking
|
|
591
|
+
Slider = Fly Out
|
|
592
|
+
Sinker = Ball
|
|
593
|
+
Sinker = Strike Looking
|
|
594
|
+
Sinker = Ball
|
|
595
|
+
Sinker = Foul Ball
|
|
596
|
+
Sinker = Ball
|
|
597
|
+
Sinker = Foul Ball
|
|
598
|
+
Sinker = Strike Looking
|
|
599
|
+
Sinker = Foul Ball
|
|
600
|
+
Changeup = Strike Swinging
|
|
601
|
+
Curveball = Ball
|
|
602
|
+
Curveball = Ball
|
|
603
|
+
Sinker = Foul Ball
|
|
604
|
+
Sinker = Foul Ball
|
|
605
|
+
Changeup = Foul Ball
|
|
606
|
+
Changeup = Ground Out
|
|
607
|
+
Changeup = Ball
|
|
608
|
+
Sinker = Ball
|
|
609
|
+
Sinker = Ball
|
|
610
|
+
Sinker = Strike Looking
|
|
611
|
+
Sinker = Ball
|
|
612
|
+
Sinker = Line Out
|
|
613
|
+
Curveball = Ball
|
|
614
|
+
Fastball = Strike Swinging
|
|
615
|
+
Fastball = Strike Looking
|
|
616
|
+
Fastball = Foul Ball
|
|
617
|
+
Fastball = Strike Swinging
|
|
618
|
+
Fastball = Strike Swinging
|
|
619
|
+
Fastball = Ball
|
|
620
|
+
Curveball = Ball
|
|
621
|
+
Fastball = Foul Ball
|
|
622
|
+
Curveball = Ball
|
|
623
|
+
Fastball = Foul Ball
|
|
624
|
+
Fastball = Ball
|
|
625
|
+
Curveball = Foul Ball
|
|
626
|
+
Curveball = Line Out
|
|
627
|
+
Changeup = Fly Out
|
|
628
|
+
Fastball = Strike Looking
|
|
629
|
+
Curveball = Ball
|
|
630
|
+
Changeup = Strike Looking
|
|
631
|
+
Splitter = Foul Tip
|
|
632
|
+
Fastball = Ball
|
|
633
|
+
Fastball = Ball
|
|
634
|
+
Changeup = Ball
|
|
635
|
+
Fastball = Strike Looking
|
|
636
|
+
Changeup = Strike Swinging
|
|
637
|
+
Changeup = Foul Ball
|
|
638
|
+
Changeup = Foul Ball
|
|
639
|
+
Fastball = Foul Ball
|
|
640
|
+
Fastball = Strike Looking
|
|
641
|
+
Fastball = Strike Looking
|
|
642
|
+
Cutter = Strike Looking
|
|
643
|
+
Fastball = Ball
|
|
644
|
+
Fastball = Ground Out
|
|
645
|
+
Fastball = Foul Ball
|
|
646
|
+
Changeup = Ball
|
|
647
|
+
Changeup = Ball
|
|
648
|
+
Fastball = Ground Out
|
|
649
|
+
Changeup = Ball
|
|
650
|
+
Fastball = Strike Swinging
|
|
651
|
+
Fastball = Strike Looking
|
|
652
|
+
Fastball = Strike Swinging
|
|
653
|
+
Slider = Ball
|
|
654
|
+
Fastball = Strike Swinging
|
|
655
|
+
Fastball = Ball
|
|
656
|
+
Slider = Ball
|
|
657
|
+
Slider = Foul Ball
|
|
658
|
+
Fastball = Foul Ball
|
|
659
|
+
Fastball = Ball
|
|
660
|
+
Fastball = Ball
|
|
661
|
+
Slider = Double
|
|
662
|
+
Slider = Foul Ball
|
|
663
|
+
Fastball = Sacrifice Bunt
|
|
664
|
+
Slider = Strike Looking
|
|
665
|
+
Fastball = Strike Looking
|
|
666
|
+
Fastball = Strike Swinging
|
|
667
|
+
Slider = Ball
|
|
668
|
+
Slider = Strike Looking
|
|
669
|
+
Fastball = Ball
|
|
670
|
+
Fastball = Strike Swinging
|
|
671
|
+
Fastball = Ball
|
|
672
|
+
Slider = Pop Out
|
|
673
|
+
Fastball = Foul Ball
|
|
674
|
+
Fastball = Single
|
|
675
|
+
Fastball = Ball
|
|
676
|
+
Fastball = Sacrifice Bunt
|
|
677
|
+
Fastball = Ball
|
|
678
|
+
Curveball = Strike Looking
|
|
679
|
+
Slider = Ball
|
|
680
|
+
Curveball = Ball
|
|
681
|
+
Curveball = Ground Out
|
|
682
|
+
Fastball = Ball
|
|
683
|
+
Fastball = Ball
|
|
684
|
+
Fastball = Ball
|
|
685
|
+
Fastball = Ball
|
|
686
|
+
Fastball = Strike Swinging
|
|
687
|
+
Curveball = Ball
|
|
688
|
+
Fastball = Foul Ball
|
|
689
|
+
Fastball = Ball
|
|
690
|
+
Curveball = Strike Swinging
|
|
691
|
+
```
|
|
692
|
+
|
|
155
693
|
## Development
|
|
156
694
|
|
|
157
695
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|