greenmonster 0.3.1 → 0.3.2
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.
- data/.gitignore +1 -0
- data/CHANGELOG.markdown +6 -0
- data/README.markdown +37 -2
- data/doc/Athlete.html +254 -0
- data/doc/Gemfile.html +20 -0
- data/doc/Greenmonster/Generators/InstallGenerator.html +253 -0
- data/doc/Greenmonster/Generators.html +147 -0
- data/doc/Greenmonster/Parser.html +263 -0
- data/doc/Greenmonster/Player.html +236 -0
- data/doc/Greenmonster/Spider.html +169 -21
- data/doc/Greenmonster.html +139 -2
- data/doc/GreenmonsterPlayerTest.html +199 -0
- data/doc/GreenmonsterSpiderTest.html +57 -4
- data/doc/GreenmonsterTest.html +20 -0
- data/doc/GreenmonsterTraversalTest.html +376 -0
- data/doc/InstallGreenmonster.html +260 -0
- data/doc/Rakefile.html +20 -0
- data/doc/TestCreatePlayersFromGamedayXMLGame.html +266 -0
- data/doc/TestParsePlayersFromGamedayXMLFiles.html +307 -0
- data/doc/created.rid +18 -9
- data/doc/index.html +20 -0
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +93 -1
- data/greenmonster.gemspec +4 -2
- data/lib/generators/greenmonster/install_mlb_games_generator.rb +20 -0
- data/lib/generators/greenmonster/install_players_generator.rb +20 -0
- data/lib/generators/templates/install_greenmonster_mlb_games_migration.rb +54 -0
- data/lib/generators/templates/install_greenmonster_players_migration.rb +37 -0
- data/lib/greenmonster/model_extensions/mlb_game.rb +106 -0
- data/lib/greenmonster/model_extensions/mlb_probable_pitcher.rb +11 -0
- data/lib/greenmonster/model_extensions/player.rb +16 -0
- data/lib/greenmonster/parser.rb +27 -0
- data/lib/greenmonster/spider.rb +7 -6
- data/lib/greenmonster/version.rb +1 -1
- data/lib/greenmonster.rb +46 -0
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/boxscore.xml +5 -0
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/eventLog.xml +1 -0
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_all.xml +1 -0
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_hit.xml +1 -0
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/linescore.xml +117 -0
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/players.xml +56 -0
- data/test/games/mlb/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
- data/test/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
- data/test/test_create_mlb_game_from_gameday_xml_game.rb +12 -0
- data/test/test_create_players_from_gameday_xml_game.rb +8 -0
- data/test/test_greenmonster.rb +3 -6
- data/test/test_greenmonster_player.rb +7 -0
- data/test/test_greenmonster_spider.rb +24 -18
- data/test/test_greenmonster_traversal.rb +31 -0
- data/test/test_helper.rb +78 -0
- data/test/test_line_score.rb +12 -0
- data/test/test_parse_mlb_probable_pitchers_from_linescore_data.rb +14 -0
- data/test/test_parse_players_from_gameday_xml_files.rb +21 -0
- data/test/test_update_mlb_game_with_linescore_data.rb +23 -0
- metadata +103 -7
@@ -47,6 +47,7 @@
|
|
47
47
|
<nav id="file-list-section" class="section">
|
48
48
|
<h3 class="section-header">Defined In</h3>
|
49
49
|
<ul>
|
50
|
+
<li>lib/greenmonster/greenmonster.rb
|
50
51
|
<li>lib/greenmonster/spider.rb
|
51
52
|
</ul>
|
52
53
|
</nav>
|
@@ -82,6 +83,12 @@
|
|
82
83
|
|
83
84
|
<ul class="link-list">
|
84
85
|
|
86
|
+
<li><a href="#method-c-copyGameDayXML">::copyGameDayXML</a>
|
87
|
+
|
88
|
+
<li><a href="#method-c-format_date_as_folder">::format_date_as_folder</a>
|
89
|
+
|
90
|
+
<li><a href="#method-c-pull">::pull</a>
|
91
|
+
|
85
92
|
<li><a href="#method-c-pull_day">::pull_day</a>
|
86
93
|
|
87
94
|
<li><a href="#method-c-pull_days">::pull_days</a>
|
@@ -113,12 +120,32 @@
|
|
113
120
|
|
114
121
|
<li><a href="../Greenmonster.html">Greenmonster</a>
|
115
122
|
|
123
|
+
<li><a href="../Greenmonster/Generators.html">Greenmonster::Generators</a>
|
124
|
+
|
125
|
+
<li><a href="../Greenmonster/Generators/InstallGenerator.html">Greenmonster::Generators::InstallGenerator</a>
|
126
|
+
|
127
|
+
<li><a href="../Greenmonster/Parser.html">Greenmonster::Parser</a>
|
128
|
+
|
129
|
+
<li><a href="../Greenmonster/Player.html">Greenmonster::Player</a>
|
130
|
+
|
116
131
|
<li><a href="../Greenmonster/Spider.html">Greenmonster::Spider</a>
|
117
132
|
|
133
|
+
<li><a href="../Athlete.html">Athlete</a>
|
134
|
+
|
135
|
+
<li><a href="../GreenmonsterPlayerTest.html">GreenmonsterPlayerTest</a>
|
136
|
+
|
118
137
|
<li><a href="../GreenmonsterSpiderTest.html">GreenmonsterSpiderTest</a>
|
119
138
|
|
120
139
|
<li><a href="../GreenmonsterTest.html">GreenmonsterTest</a>
|
121
140
|
|
141
|
+
<li><a href="../GreenmonsterTraversalTest.html">GreenmonsterTraversalTest</a>
|
142
|
+
|
143
|
+
<li><a href="../InstallGreenmonster.html">InstallGreenmonster</a>
|
144
|
+
|
145
|
+
<li><a href="../TestCreatePlayersFromGamedayXMLGame.html">TestCreatePlayersFromGamedayXMLGame</a>
|
146
|
+
|
147
|
+
<li><a href="../TestParsePlayersFromGamedayXMLFiles.html">TestParsePlayersFromGamedayXMLFiles</a>
|
148
|
+
|
122
149
|
</ul>
|
123
150
|
</nav>
|
124
151
|
|
@@ -152,6 +179,139 @@
|
|
152
179
|
<h3 class="section-header">Public Class Methods</h3>
|
153
180
|
|
154
181
|
|
182
|
+
<div id="method-c-copyGameDayXML" class="method-detail ">
|
183
|
+
|
184
|
+
<div class="method-heading">
|
185
|
+
<span class="method-name">copyGameDayXML</span><span
|
186
|
+
class="method-args">(file_name,location,paths)</span>
|
187
|
+
<span class="method-click-advice">click to toggle source</span>
|
188
|
+
</div>
|
189
|
+
|
190
|
+
|
191
|
+
<div class="method-description">
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
<div class="method-source-code" id="copyGameDayXML-source">
|
198
|
+
<pre><span class="ruby-comment"># File lib/greenmonster/greenmonster.rb, line 8</span>
|
199
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">copyGameDayXML</span> (<span class="ruby-identifier">file_name</span>,<span class="ruby-identifier">location</span>,<span class="ruby-identifier">paths</span>)
|
200
|
+
<span class="ruby-identifier">open</span>(<span class="ruby-identifier">paths</span>[<span class="ruby-value">:localGameFolder</span>] <span class="ruby-operator">+</span> <span class="ruby-node">"#{file_name =~ /inning/ ? 'inning/' : ''}"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file_name</span>, <span class="ruby-string">'w'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
201
|
+
<span class="ruby-identifier">file</span>.<span class="ruby-identifier">write</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">paths</span>[<span class="ruby-value">:mlbGameFolder</span>] <span class="ruby-operator">+</span> <span class="ruby-node">"#{file_name =~ /inning/ ? 'inning/' : ''}"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file_name</span>).<span class="ruby-identifier">body</span>)
|
202
|
+
<span class="ruby-keyword">end</span>
|
203
|
+
<span class="ruby-keyword">end</span></pre>
|
204
|
+
</div><!-- copyGameDayXML-source -->
|
205
|
+
|
206
|
+
</div>
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
</div><!-- copyGameDayXML-method -->
|
212
|
+
|
213
|
+
|
214
|
+
<div id="method-c-format_date_as_folder" class="method-detail ">
|
215
|
+
|
216
|
+
<div class="method-heading">
|
217
|
+
<span class="method-name">format_date_as_folder</span><span
|
218
|
+
class="method-args">(date)</span>
|
219
|
+
<span class="method-click-advice">click to toggle source</span>
|
220
|
+
</div>
|
221
|
+
|
222
|
+
|
223
|
+
<div class="method-description">
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
<div class="method-source-code" id="format_date_as_folder-source">
|
230
|
+
<pre><span class="ruby-comment"># File lib/greenmonster/greenmonster.rb, line 14</span>
|
231
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">format_date_as_folder</span>(<span class="ruby-identifier">date</span>)
|
232
|
+
<span class="ruby-identifier">date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">"year_%Y/month_%m/day_%d"</span>)
|
233
|
+
<span class="ruby-keyword">end</span></pre>
|
234
|
+
</div><!-- format_date_as_folder-source -->
|
235
|
+
|
236
|
+
</div>
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
</div><!-- format_date_as_folder-method -->
|
242
|
+
|
243
|
+
|
244
|
+
<div id="method-c-pull" class="method-detail ">
|
245
|
+
|
246
|
+
<div class="method-heading">
|
247
|
+
<span class="method-name">pull</span><span
|
248
|
+
class="method-args">(date = Date.today,args = {})</span>
|
249
|
+
<span class="method-click-advice">click to toggle source</span>
|
250
|
+
</div>
|
251
|
+
|
252
|
+
|
253
|
+
<div class="method-description">
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
<div class="method-source-code" id="pull-source">
|
260
|
+
<pre><span class="ruby-comment"># File lib/greenmonster/greenmonster.rb, line 18</span>
|
261
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pull</span>(<span class="ruby-identifier">date</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">today</span>,<span class="ruby-identifier">args</span> = {})
|
262
|
+
<span class="ruby-identifier">game_day_url_for_date</span> = <span class="ruby-node">"http://gd2.mlb.com/components/game/#{args[:league] || 'mlb'}/#{format_date_as_folder(date)}"</span>
|
263
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">"Finding games in #{game_day_url_for_date}"</span>
|
264
|
+
|
265
|
+
<span class="ruby-comment"># Iterate through every hyperlink on the page.</span>
|
266
|
+
<span class="ruby-comment"># These links represent the individual game folders</span>
|
267
|
+
<span class="ruby-comment"># for each date.</span>
|
268
|
+
(<span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">game_day_url_for_date</span>))<span class="ruby-operator">/</span><span class="ruby-string">"a"</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
|
269
|
+
|
270
|
+
<span class="ruby-comment"># See if the link is to a game, otherwise ignore it</span>
|
271
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'href'</span>).<span class="ruby-identifier">value</span>[<span class="ruby-value">0</span>,<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-string">"gid"</span>
|
272
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'href'</span>).<span class="ruby-identifier">value</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'/'</span>,<span class="ruby-string">''</span>)
|
273
|
+
|
274
|
+
<span class="ruby-identifier">paths</span> = {
|
275
|
+
<span class="ruby-value">:localGameFolder</span> =<span class="ruby-operator">></span> <span class="ruby-node">"#{MlbGame::GAMES_LOCATION}/#{args[:league] || 'mlb'}/#{format_date_as_folder(date)}/#{e.attribute('href').value}"</span>,
|
276
|
+
<span class="ruby-value">:mlbGameFolder</span> =<span class="ruby-operator">></span> <span class="ruby-node">"#{game_day_url_for_date}/#{e.attribute('href').value}"</span>
|
277
|
+
}
|
278
|
+
|
279
|
+
<span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span> <span class="ruby-identifier">paths</span>[<span class="ruby-value">:localGameFolder</span>] <span class="ruby-operator">+</span> <span class="ruby-string">'inning'</span>
|
280
|
+
|
281
|
+
<span class="ruby-keyword">begin</span>
|
282
|
+
<span class="ruby-identifier">copyGameDayXML</span>(<span class="ruby-string">'linescore.xml'</span>,<span class="ruby-string">'base'</span>,<span class="ruby-identifier">paths</span>)
|
283
|
+
|
284
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">year</span> <span class="ruby-operator">></span> <span class="ruby-value">2007</span>
|
285
|
+
<span class="ruby-identifier">copyGameDayXML</span>(<span class="ruby-string">'inning_all.xml'</span>,<span class="ruby-string">'inning'</span>,<span class="ruby-identifier">paths</span>)
|
286
|
+
<span class="ruby-identifier">copyGameDayXML</span>(<span class="ruby-string">'inning_hit.xml'</span>,<span class="ruby-string">'inning'</span>,<span class="ruby-identifier">paths</span>)
|
287
|
+
<span class="ruby-keyword">else</span>
|
288
|
+
<span class="ruby-comment"># Iterate through the inning files, but skip inning </span>
|
289
|
+
<span class="ruby-comment"># files numbered 0 (some bad spring training data)</span>
|
290
|
+
(<span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">get</span>(<span class="ruby-node">"#{paths[:mlbGameFolder]}/inning/"</span>).<span class="ruby-identifier">body</span>).<span class="ruby-identifier">search</span>(<span class="ruby-string">'a'</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ic</span><span class="ruby-operator">|</span>
|
291
|
+
<span class="ruby-identifier">copyGameDayXML</span>(<span class="ruby-identifier">ic</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'href'</span>),<span class="ruby-string">'inning'</span>,<span class="ruby-identifier">paths</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">ic</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'href'</span>).<span class="ruby-identifier">value</span>[<span class="ruby-value">-3</span>,<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-string">"xml"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">ic</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'href'</span>).<span class="ruby-identifier">value</span>[<span class="ruby-value">-6</span>,<span class="ruby-value">6</span>] <span class="ruby-operator">==</span> <span class="ruby-string">"_0.xml"</span>
|
292
|
+
<span class="ruby-keyword">end</span>
|
293
|
+
<span class="ruby-keyword">end</span>
|
294
|
+
|
295
|
+
<span class="ruby-comment"># Copy base data files </span>
|
296
|
+
<span class="ruby-comment"># (if inning data wasn't there, this gets skipped)</span>
|
297
|
+
[<span class="ruby-string">'boxscore.xml'</span>,<span class="ruby-string">'eventLog.xml'</span>,<span class="ruby-string">'players.xml'</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
298
|
+
<span class="ruby-identifier">copyGameDayXML</span>(<span class="ruby-identifier">file</span>,<span class="ruby-string">'base'</span>,<span class="ruby-identifier">paths</span>)
|
299
|
+
<span class="ruby-keyword">end</span>
|
300
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">OpenURI</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">bang</span>
|
301
|
+
<span class="ruby-keyword">end</span>
|
302
|
+
<span class="ruby-keyword">end</span>
|
303
|
+
<span class="ruby-keyword">end</span>
|
304
|
+
<span class="ruby-keyword">end</span></pre>
|
305
|
+
</div><!-- pull-source -->
|
306
|
+
|
307
|
+
</div>
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
</div><!-- pull-method -->
|
313
|
+
|
314
|
+
|
155
315
|
<div id="method-c-pull_day" class="method-detail ">
|
156
316
|
|
157
317
|
<div class="method-heading">
|
@@ -192,7 +352,7 @@ date.</p>
|
|
192
352
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">:all_sport_codes</span>]
|
193
353
|
<span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_codes</span>] = <span class="ruby-node">%w(aaa aax afa afx asx bbc fps hsb ind int jml nae naf nas nat naw oly rok win)</span>
|
194
354
|
<span class="ruby-keyword">else</span>
|
195
|
-
<span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_codes</span>] = [<span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_code</span>] <span class="ruby-operator">||</span> <span class="ruby-string">'mlb'</span>]
|
355
|
+
<span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_codes</span>] = [<span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_code</span>] <span class="ruby-operator">||</span> <span class="ruby-string">'mlb'</span>].<span class="ruby-identifier">flatten</span>
|
196
356
|
<span class="ruby-keyword">end</span>
|
197
357
|
|
198
358
|
<span class="ruby-comment"># Iterate through every hyperlink on the page.</span>
|
@@ -223,33 +383,21 @@ date.</p>
|
|
223
383
|
|
224
384
|
<div class="method-heading">
|
225
385
|
<span class="method-name">pull_days</span><span
|
226
|
-
class="method-args">(range,args = {})</span>
|
386
|
+
class="method-args">(range = [Date.today],args = {})</span>
|
227
387
|
<span class="method-click-advice">click to toggle source</span>
|
228
388
|
</div>
|
229
389
|
|
230
390
|
|
231
391
|
<div class="method-description">
|
232
392
|
|
233
|
-
|
234
|
-
like games_folder location on to Spider.pull.</p>
|
235
|
-
|
236
|
-
<p>Example:</p>
|
237
|
-
|
238
|
-
<pre class="ruby"><span class="ruby-comment"># Pull all games in MLB in July 2011</span>
|
239
|
-
<span class="ruby-operator">>></span> <span class="ruby-constant">Gameday</span><span class="ruby-operator">::</span><span class="ruby-constant">Spider</span>.<span class="ruby-identifier">pull_days</span>(<span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">2011</span>,<span class="ruby-value">7</span>,<span class="ruby-value">1</span>)<span class="ruby-operator">..</span><span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">2011</span>,<span class="ruby-value">7</span>,<span class="ruby-value">31</span>), {:<span class="ruby-identifier">games_folder</span> =<span class="ruby-operator">></span> <span class="ruby-string">'/Users/geoff/games'</span>})
|
240
|
-
</pre>
|
241
|
-
|
242
|
-
<p>Arguments:</p>
|
243
|
-
|
244
|
-
<pre>range: (Range)
|
245
|
-
args: (Hash)</pre>
|
393
|
+
|
246
394
|
|
247
395
|
|
248
396
|
|
249
397
|
<div class="method-source-code" id="pull_days-source">
|
250
|
-
<pre><span class="ruby-comment"># File lib/greenmonster/
|
251
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pull_days</span>(<span class="ruby-identifier">range</span
|
252
|
-
<span class="ruby-identifier">range</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">
|
398
|
+
<pre><span class="ruby-comment"># File lib/greenmonster/greenmonster.rb, line 63</span>
|
399
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pull_days</span>(<span class="ruby-identifier">range</span> = [<span class="ruby-constant">Date</span>.<span class="ruby-identifier">today</span>],<span class="ruby-identifier">args</span> = {})
|
400
|
+
<span class="ruby-identifier">range</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pull</span>(<span class="ruby-identifier">day</span>,<span class="ruby-identifier">args</span>)}
|
253
401
|
<span class="ruby-keyword">end</span></pre>
|
254
402
|
</div><!-- pull_days-source -->
|
255
403
|
|
@@ -293,12 +441,12 @@ scheduled date values in the game ID.</p>
|
|
293
441
|
<span class="ruby-value">:print_games</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>,
|
294
442
|
<span class="ruby-value">:games_folder</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Greenmonster</span>.<span class="ruby-identifier">games_folder</span>
|
295
443
|
}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">args</span>)
|
444
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-string">"Games folder location required."</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">:games_folder</span>].<span class="ruby-identifier">nil?</span>
|
445
|
+
|
296
446
|
<span class="ruby-identifier">args</span>[<span class="ruby-value">:games_folder</span>] = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">:games_folder</span>])
|
297
447
|
|
298
448
|
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">game_id</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">:print_games</span>]
|
299
|
-
|
300
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-string">"Games folder location required."</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">:games_folder</span>].<span class="ruby-identifier">nil?</span>
|
301
|
-
|
449
|
+
|
302
450
|
<span class="ruby-identifier">paths</span> = {
|
303
451
|
<span class="ruby-value">:localGameFolder</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-value">:games_folder</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_code</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">format_date_as_folder</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">:date</span>]) <span class="ruby-operator">+</span> <span class="ruby-identifier">game_id</span>,
|
304
452
|
<span class="ruby-value">:mlbGameFolder</span> =<span class="ruby-operator">></span> <span class="ruby-node">"#{gameday_league_and_date_url(args)}/#{game_id}/"</span>
|
data/doc/Greenmonster.html
CHANGED
@@ -47,6 +47,10 @@
|
|
47
47
|
<nav id="file-list-section" class="section">
|
48
48
|
<h3 class="section-header">Defined In</h3>
|
49
49
|
<ul>
|
50
|
+
<li>lib/generators/greenmonster/install_generator.rb
|
51
|
+
<li>lib/greenmonster/greenmonster.rb
|
52
|
+
<li>lib/greenmonster/model_extensions/player.rb
|
53
|
+
<li>lib/greenmonster/parser.rb
|
50
54
|
<li>lib/greenmonster/version.rb
|
51
55
|
<li>lib/greenmonster.rb
|
52
56
|
</ul>
|
@@ -65,10 +69,16 @@
|
|
65
69
|
|
66
70
|
<ul class="link-list">
|
67
71
|
|
72
|
+
<li><a href="#method-c-format_date_as_folder">::format_date_as_folder</a>
|
73
|
+
|
68
74
|
<li><a href="#method-c-games_folder">::games_folder</a>
|
69
75
|
|
70
76
|
<li><a href="#method-c-set_games_folder">::set_games_folder</a>
|
71
77
|
|
78
|
+
<li><a href="#method-c-traverse_dates">::traverse_dates</a>
|
79
|
+
|
80
|
+
<li><a href="#method-c-traverse_folders_for_date">::traverse_folders_for_date</a>
|
81
|
+
|
72
82
|
</ul>
|
73
83
|
</nav>
|
74
84
|
|
@@ -94,12 +104,32 @@
|
|
94
104
|
|
95
105
|
<li><a href="./Greenmonster.html">Greenmonster</a>
|
96
106
|
|
107
|
+
<li><a href="./Greenmonster/Generators.html">Greenmonster::Generators</a>
|
108
|
+
|
109
|
+
<li><a href="./Greenmonster/Generators/InstallGenerator.html">Greenmonster::Generators::InstallGenerator</a>
|
110
|
+
|
111
|
+
<li><a href="./Greenmonster/Parser.html">Greenmonster::Parser</a>
|
112
|
+
|
113
|
+
<li><a href="./Greenmonster/Player.html">Greenmonster::Player</a>
|
114
|
+
|
97
115
|
<li><a href="./Greenmonster/Spider.html">Greenmonster::Spider</a>
|
98
116
|
|
117
|
+
<li><a href="./Athlete.html">Athlete</a>
|
118
|
+
|
119
|
+
<li><a href="./GreenmonsterPlayerTest.html">GreenmonsterPlayerTest</a>
|
120
|
+
|
99
121
|
<li><a href="./GreenmonsterSpiderTest.html">GreenmonsterSpiderTest</a>
|
100
122
|
|
101
123
|
<li><a href="./GreenmonsterTest.html">GreenmonsterTest</a>
|
102
124
|
|
125
|
+
<li><a href="./GreenmonsterTraversalTest.html">GreenmonsterTraversalTest</a>
|
126
|
+
|
127
|
+
<li><a href="./InstallGreenmonster.html">InstallGreenmonster</a>
|
128
|
+
|
129
|
+
<li><a href="./TestCreatePlayersFromGamedayXMLGame.html">TestCreatePlayersFromGamedayXMLGame</a>
|
130
|
+
|
131
|
+
<li><a href="./TestParsePlayersFromGamedayXMLFiles.html">TestParsePlayersFromGamedayXMLFiles</a>
|
132
|
+
|
103
133
|
</ul>
|
104
134
|
</nav>
|
105
135
|
|
@@ -144,6 +174,36 @@
|
|
144
174
|
<h3 class="section-header">Public Class Methods</h3>
|
145
175
|
|
146
176
|
|
177
|
+
<div id="method-c-format_date_as_folder" class="method-detail ">
|
178
|
+
|
179
|
+
<div class="method-heading">
|
180
|
+
<span class="method-name">format_date_as_folder</span><span
|
181
|
+
class="method-args">(date)</span>
|
182
|
+
<span class="method-click-advice">click to toggle source</span>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
|
186
|
+
<div class="method-description">
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
<div class="method-source-code" id="format_date_as_folder-source">
|
193
|
+
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line 41</span>
|
194
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">format_date_as_folder</span>(<span class="ruby-identifier">date</span>)
|
195
|
+
<span class="ruby-identifier">date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">"year_%Y/month_%m/day_%d"</span>)
|
196
|
+
<span class="ruby-keyword">end</span></pre>
|
197
|
+
</div><!-- format_date_as_folder-source -->
|
198
|
+
|
199
|
+
</div>
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
</div><!-- format_date_as_folder-method -->
|
205
|
+
|
206
|
+
|
147
207
|
<div id="method-c-games_folder" class="method-detail ">
|
148
208
|
|
149
209
|
<div class="method-heading">
|
@@ -167,7 +227,7 @@
|
|
167
227
|
|
168
228
|
|
169
229
|
<div class="method-source-code" id="games_folder-source">
|
170
|
-
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line
|
230
|
+
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line 37</span>
|
171
231
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">games_folder</span>
|
172
232
|
<span class="ruby-identifier">@@games_folder</span>
|
173
233
|
<span class="ruby-keyword">end</span></pre>
|
@@ -207,7 +267,7 @@ the server.</p>
|
|
207
267
|
|
208
268
|
|
209
269
|
<div class="method-source-code" id="set_games_folder-source">
|
210
|
-
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line
|
270
|
+
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line 25</span>
|
211
271
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">set_games_folder</span>(<span class="ruby-identifier">location</span>)
|
212
272
|
<span class="ruby-identifier">@@games_folder</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">location</span>)
|
213
273
|
<span class="ruby-keyword">end</span></pre>
|
@@ -221,6 +281,83 @@ the server.</p>
|
|
221
281
|
</div><!-- set_games_folder-method -->
|
222
282
|
|
223
283
|
|
284
|
+
<div id="method-c-traverse_dates" class="method-detail ">
|
285
|
+
|
286
|
+
<div class="method-heading">
|
287
|
+
<span class="method-name">traverse_dates</span><span
|
288
|
+
class="method-args">(range = (Date.today..Date.today), args = {}) { |day,args| ... }</span>
|
289
|
+
<span class="method-click-advice">click to toggle source</span>
|
290
|
+
</div>
|
291
|
+
|
292
|
+
|
293
|
+
<div class="method-description">
|
294
|
+
|
295
|
+
<p>Walk the dates in a range of dates, and execute whatever methods on the
|
296
|
+
date and argument set specified. Used when processing games and players.</p>
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
<div class="method-source-code" id="traverse_dates-source">
|
301
|
+
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line 52</span>
|
302
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">traverse_dates</span>(<span class="ruby-identifier">range</span> = (<span class="ruby-constant">Date</span>.<span class="ruby-identifier">today</span><span class="ruby-operator">..</span><span class="ruby-constant">Date</span>.<span class="ruby-identifier">today</span>), <span class="ruby-identifier">args</span> = {})
|
303
|
+
<span class="ruby-identifier">range</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
|
304
|
+
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">day</span>,<span class="ruby-identifier">args</span>
|
305
|
+
<span class="ruby-keyword">end</span>
|
306
|
+
<span class="ruby-keyword">end</span></pre>
|
307
|
+
</div><!-- traverse_dates-source -->
|
308
|
+
|
309
|
+
</div>
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
</div><!-- traverse_dates-method -->
|
315
|
+
|
316
|
+
|
317
|
+
<div id="method-c-traverse_folders_for_date" class="method-detail ">
|
318
|
+
|
319
|
+
<div class="method-heading">
|
320
|
+
<span class="method-name">traverse_folders_for_date</span><span
|
321
|
+
class="method-args">(day,args = {}) { |gdir, args| ... }</span>
|
322
|
+
<span class="method-click-advice">click to toggle source</span>
|
323
|
+
</div>
|
324
|
+
|
325
|
+
|
326
|
+
<div class="method-description">
|
327
|
+
|
328
|
+
<p>Walk the game folders in a range of dates, and execute whatever methods on
|
329
|
+
the game folder and argument set specified. Used when processing games and
|
330
|
+
players.</p>
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
<div class="method-source-code" id="traverse_folders_for_date-source">
|
335
|
+
<pre><span class="ruby-comment"># File lib/greenmonster.rb, line 65</span>
|
336
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">traverse_folders_for_date</span>(<span class="ruby-identifier">day</span>,<span class="ruby-identifier">args</span> = {})
|
337
|
+
<span class="ruby-keyword">begin</span>
|
338
|
+
<span class="ruby-identifier">folders</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">:games_folder</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">@@games_folder</span>) <span class="ruby-operator">+</span> (<span class="ruby-identifier">args</span>[<span class="ruby-value">:sport_code</span>] <span class="ruby-operator">||</span> <span class="ruby-string">'mlb'</span>) <span class="ruby-operator">+</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">format_date_as_folder</span>(<span class="ruby-identifier">day</span>))
|
339
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">boom</span>
|
340
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">"No files for #{day.to_s}."</span>
|
341
|
+
<span class="ruby-keyword">end</span>
|
342
|
+
|
343
|
+
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">folders</span>.<span class="ruby-identifier">nil?</span>
|
344
|
+
<span class="ruby-identifier">folders</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">gdir</span><span class="ruby-operator">|</span>
|
345
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">gdir</span>[<span class="ruby-value">0</span>,<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'gid'</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">gdir</span>[<span class="ruby-value">-4</span>,<span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-string">"_bak"</span>
|
346
|
+
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">gdir</span>, <span class="ruby-identifier">args</span>
|
347
|
+
<span class="ruby-keyword">end</span>
|
348
|
+
<span class="ruby-keyword">end</span>
|
349
|
+
<span class="ruby-keyword">end</span>
|
350
|
+
<span class="ruby-keyword">end</span></pre>
|
351
|
+
</div><!-- traverse_folders_for_date-source -->
|
352
|
+
|
353
|
+
</div>
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
</div><!-- traverse_folders_for_date-method -->
|
359
|
+
|
360
|
+
|
224
361
|
</section><!-- public-class-method-details -->
|
225
362
|
|
226
363
|
</section><!-- 5Buntitled-5D -->
|