greenmonster 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_hit.xml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
<!--Copyright 2012 MLB Advanced Media, L.P. Use of any content on this page acknowledges agreement to the terms posted here http://gdx.mlb.com/components/copyright.txt--><hitchart><hip des="Double" x="60.24" y="121.49" batter="434658" pitcher="407793" type="H" team="A" inning="1"/><hip des="Flyout" x="126.51" y="106.43" batter="519346" pitcher="407793" type="O" team="A" inning="1"/><hip des="Error" x="63.52" y="101.02" batter="430832" pitcher="407793" type="E" team="A" inning="1"/><hip des="Groundout" x="135.54" y="151.61" batter="430832" pitcher="407793" type="O" team="A" inning="1"/><hip des="Single" x="118.47" y="106.43" batter="453056" pitcher="453344" type="H" team="H" inning="1"/><hip des="Groundout" x="100.40" y="154.62" batter="456030" pitcher="453344" type="O" team="H" inning="1"/><hip des="Flyout" x="75.30" y="102.41" batter="429665" pitcher="407793" type="O" team="A" inning="2"/><hip des="Home Run" x="60.24" y="59.24" batter="431094" pitcher="407793" type="H" team="A" inning="2"/><hip des="Double" x="93.37" y="61.24" batter="501983" pitcher="407793" type="H" team="A" inning="2"/><hip des="Single" x="142.57" y="119.48" batter="150348" pitcher="407793" type="H" team="A" inning="2"/><hip des="Pop Out" x="138.55" y="142.57" batter="434658" pitcher="407793" type="O" team="A" inning="2"/><hip des="Pop Out" x="150.60" y="134.54" batter="425903" pitcher="453344" type="O" team="H" inning="2"/><hip des="Single" x="77.31" y="129.52" batter="519346" pitcher="407793" type="H" team="A" inning="3"/><hip des="Single" x="83.33" y="101.41" batter="430832" pitcher="407793" type="H" team="A" inning="3"/><hip des="Single" x="132.53" y="102.41" batter="452252" pitcher="407793" type="H" team="A" inning="3"/><hip des="Flyout" x="95.38" y="54.22" batter="429665" pitcher="407793" type="O" team="A" inning="3"/><hip des="Single" x="116.47" y="106.43" batter="431094" pitcher="407793" type="H" team="A" inning="3"/><hip des="Double" x="206.83" y="100.40" batter="501983" pitcher="407793" type="H" team="A" inning="3"/><hip des="Flyout" x="178.71" y="105.42" batter="150040" pitcher="235095" type="O" team="A" inning="3"/><hip des="Flyout" x="90.36" y="91.37" batter="150348" pitcher="235095" type="O" team="A" inning="3"/><hip des="Groundout" x="158.63" y="165.66" batter="457454" pitcher="453344" type="O" team="H" inning="3"/><hip des="Single" x="61.24" y="100.40" batter="340192" pitcher="453344" type="H" team="H" inning="3"/><hip des="Flyout" x="169.68" y="63.25" batter="453056" pitcher="453344" type="O" team="H" inning="3"/><hip des="Flyout" x="170.68" y="122.49" batter="434658" pitcher="235095" type="O" team="A" inning="4"/><hip des="Pop Out" x="157.63" y="164.66" batter="519346" pitcher="235095" type="O" team="A" inning="4"/><hip des="Flyout" x="151.61" y="106.43" batter="430832" pitcher="235095" type="O" team="A" inning="4"/><hip des="Flyout" x="67.27" y="106.43" batter="456030" pitcher="453344" type="O" team="H" inning="4"/><hip des="Groundout" x="141.57" y="157.63" batter="408236" pitcher="453344" type="O" team="H" inning="4"/><hip des="Groundout" x="134.54" y="147.59" batter="120074" pitcher="453344" type="O" team="H" inning="4"/><hip des="Groundout" x="153.61" y="167.67" batter="452252" pitcher="235095" type="O" team="A" inning="5"/><hip des="Lineout" x="106.43" y="156.63" batter="429665" pitcher="235095" type="O" team="A" inning="5"/><hip des="Groundout" x="113.45" y="160.64" batter="431094" pitcher="235095" type="O" team="A" inning="5"/><hip des="Flyout" x="63.25" y="128.51" batter="502210" pitcher="453344" type="O" team="H" inning="5"/><hip des="Single" x="136.55" y="112.45" batter="136770" pitcher="453344" type="H" team="H" inning="5"/><hip des="Triple" x="136.55" y="37.15" batter="453056" pitcher="453344" type="H" team="H" inning="5"/><hip des="Double" x="93.37" y="119.48" batter="408236" pitcher="453344" type="H" team="H" inning="5"/><hip des="Groundout" x="133.53" y="154.62" batter="501605" pitcher="453344" type="O" team="H" inning="5"/><hip des="Double" x="214.86" y="102.41" batter="501983" pitcher="469686" type="H" team="A" inning="6"/><hip des="Bunt Groundout" x="130.52" y="192.77" batter="150040" pitcher="469686" type="O" team="A" inning="6"/><hip des="Pop Out" x="165.66" y="177.71" batter="150348" pitcher="469686" type="O" team="A" inning="6"/><hip des="Pop Out" x="125.50" y="159.64" batter="434658" pitcher="469686" type="O" team="A" inning="6"/><hip des="Groundout" x="100.40" y="175.70" batter="457454" pitcher="469802" type="O" team="H" inning="6"/><hip des="Flyout" x="174.70" y="107.43" batter="519346" pitcher="469686" type="O" team="A" inning="7"/><hip des="Groundout" x="98.39" y="169.68" batter="430832" pitcher="469686" type="O" team="A" inning="7"/><hip des="Field Error" x="40.16" y="114.46" batter="429665" pitcher="469686" type="E" team="A" inning="7"/><hip des="Groundout" x="103.41" y="171.69" batter="431094" pitcher="469686" type="O" team="A" inning="7"/><hip des="Groundout" x="103.41" y="172.69" batter="340192" pitcher="469802" type="O" team="H" inning="7"/><hip des="Single" x="127.51" y="167.67" batter="453056" pitcher="469802" type="H" team="H" inning="7"/><hip des="Single" x="137.55" y="107.43" batter="456030" pitcher="469802" type="H" team="H" inning="7"/><hip des="Groundout" x="154.62" y="169.68" batter="408236" pitcher="469802" type="O" team="H" inning="7"/><hip des="Groundout" x="158.63" y="168.67" batter="501983" pitcher="469686" type="O" team="A" inning="8"/><hip des="Single" x="66.27" y="121.49" batter="150348" pitcher="469686" type="H" team="A" inning="8"/><hip des="Double" x="128.51" y="38.15" batter="434658" pitcher="469686" type="H" team="A" inning="8"/><hip des="Single" x="112.45" y="96.39" batter="501605" pitcher="430630" type="H" team="H" inning="8"/><hip des="Double" x="59.24" y="143.57" batter="120074" pitcher="430630" type="H" team="H" inning="8"/><hip des="Triple" x="124.50" y="82.33" batter="457454" pitcher="430630" type="H" team="H" inning="8"/><hip des="Flyout" x="75.30" y="95.38" batter="136770" pitcher="430630" type="O" team="H" inning="8"/><hip des="Groundout" x="108.43" y="160.64" batter="430832" pitcher="458006" type="O" team="A" inning="9"/><hip des="Lineout" x="81.33" y="89.36" batter="429665" pitcher="458006" type="O" team="A" inning="9"/><hip des="Single" x="102.41" y="154.62" batter="431094" pitcher="458006" type="H" team="A" inning="9"/><hip des="Groundout" x="112.45" y="172.69" batter="501983" pitcher="458006" type="O" team="A" inning="9"/><hip des="Single" x="165.66" y="119.48" batter="453056" pitcher="407911" type="H" team="H" inning="9"/></hitchart>
|
@@ -0,0 +1,117 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><!--Copyright 2011 MLB Advanced Media, L.P. Use of any content on this page acknowledges agreement to the terms posted here http://gdx.mlb.com/components/copyright.txt-->
|
2
|
+
<game id="2011/07/04/tormlb-bosmlb-1" venue="Fenway Park" game_pk="288186"
|
3
|
+
time="1:35"
|
4
|
+
time_zone="ET"
|
5
|
+
ampm="PM"
|
6
|
+
away_time="1:35"
|
7
|
+
away_time_zone="ET"
|
8
|
+
away_ampm="PM"
|
9
|
+
home_time="1:35"
|
10
|
+
home_time_zone="ET"
|
11
|
+
home_ampm="PM"
|
12
|
+
game_type="R"
|
13
|
+
time_aw_lg="1:35"
|
14
|
+
aw_lg_ampm="PM"
|
15
|
+
tz_aw_lg_gen="ET"
|
16
|
+
time_hm_lg="1:35"
|
17
|
+
hm_lg_ampm="PM"
|
18
|
+
tz_hm_lg_gen="ET"
|
19
|
+
venue_id="3"
|
20
|
+
scheduled_innings="9"
|
21
|
+
away_name_abbrev="TOR"
|
22
|
+
home_name_abbrev="BOS"
|
23
|
+
away_code="tor"
|
24
|
+
away_file_code="tor"
|
25
|
+
away_team_id="141"
|
26
|
+
away_team_city="Toronto"
|
27
|
+
away_team_name="Blue Jays"
|
28
|
+
away_division="E"
|
29
|
+
away_league_id="103"
|
30
|
+
away_sport_code="mlb"
|
31
|
+
home_code="bos"
|
32
|
+
home_file_code="bos"
|
33
|
+
home_team_id="111"
|
34
|
+
home_team_city="Boston"
|
35
|
+
home_team_name="Red Sox"
|
36
|
+
home_division="E"
|
37
|
+
home_league_id="103"
|
38
|
+
home_sport_code="mlb"
|
39
|
+
day="MON"
|
40
|
+
gameday_sw="P"
|
41
|
+
away_games_back="9.5"
|
42
|
+
home_games_back="1.5"
|
43
|
+
away_games_back_wildcard="8.0"
|
44
|
+
home_games_back_wildcard="-"
|
45
|
+
venue_w_chan_loc="USMA0046"
|
46
|
+
gameday_link="2011_07_04_tormlb_bosmlb_1"
|
47
|
+
away_win="42"
|
48
|
+
away_loss="44"
|
49
|
+
home_win="49"
|
50
|
+
home_loss="35"
|
51
|
+
league="AA"
|
52
|
+
top_inning="N"
|
53
|
+
inning_state=""
|
54
|
+
status="Final"
|
55
|
+
ind="F"
|
56
|
+
inning="9"
|
57
|
+
outs="3"
|
58
|
+
away_team_runs="9"
|
59
|
+
home_team_runs="7"
|
60
|
+
away_team_hits="13"
|
61
|
+
home_team_hits="11"
|
62
|
+
away_team_errors="0"
|
63
|
+
home_team_errors="2"
|
64
|
+
wrapup_link="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=wrap&c_id=mlb"
|
65
|
+
home_preview_link="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=preview&c_id=mlb"
|
66
|
+
away_preview_link="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=preview&c_id=mlb"
|
67
|
+
preview="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=preview&c_id=mlb"
|
68
|
+
tv_station="NESN, MLBN"
|
69
|
+
home_recap_link="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=recap&c_id=bos"
|
70
|
+
away_recap_link="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=recap&c_id=tor"
|
71
|
+
photos_link="/mlb/gameday/index.jsp?gid=2011_07_04_tormlb_bosmlb_1&mode=photos">
|
72
|
+
<linescore inning="1" home_inning_runs="0" away_inning_runs="1"/>
|
73
|
+
<linescore inning="2" home_inning_runs="0" away_inning_runs="2"/>
|
74
|
+
<linescore inning="3" home_inning_runs="0" away_inning_runs="4"/>
|
75
|
+
<linescore inning="4" home_inning_runs="0" away_inning_runs="0"/>
|
76
|
+
<linescore inning="5" home_inning_runs="4" away_inning_runs="0"/>
|
77
|
+
<linescore inning="6" home_inning_runs="0" away_inning_runs="0"/>
|
78
|
+
<linescore inning="7" home_inning_runs="0" away_inning_runs="1"/>
|
79
|
+
<linescore inning="8" home_inning_runs="3" away_inning_runs="1"/>
|
80
|
+
<linescore inning="9" home_inning_runs="0" away_inning_runs="0"/>
|
81
|
+
<winning_pitcher first_name="Brandon" first="Brandon" id="453344" last_name="Morrow"
|
82
|
+
last="Morrow"
|
83
|
+
name_display_roster="Morrow"
|
84
|
+
wins="5"
|
85
|
+
losses="4"
|
86
|
+
era="4.72"
|
87
|
+
s_wins=""
|
88
|
+
s_losses=""
|
89
|
+
s_era=""/>
|
90
|
+
<losing_pitcher first_name="John" first="John" id="407793" last_name="Lackey" last="Lackey"
|
91
|
+
name_display_roster="Lackey"
|
92
|
+
wins="5"
|
93
|
+
losses="8"
|
94
|
+
era="7.47"
|
95
|
+
s_wins=""
|
96
|
+
s_losses=""
|
97
|
+
s_era=""/>
|
98
|
+
<save_pitcher first_name="Frank" first="Frank" id="407911" last_name="Francisco"
|
99
|
+
last="Francisco"
|
100
|
+
name_display_roster="Francisco, F"
|
101
|
+
wins="1"
|
102
|
+
losses="4"
|
103
|
+
era="4.81"
|
104
|
+
s_wins=""
|
105
|
+
s_losses=""
|
106
|
+
s_era=""
|
107
|
+
saves="10"/>
|
108
|
+
<game_media>
|
109
|
+
<media type="game" calendar_event_id="14-288186-2011-07-04"
|
110
|
+
start="2011-07-04T13:35:00-0400"
|
111
|
+
title="TOR @ BOS"
|
112
|
+
has_mlbtv="true"
|
113
|
+
free="NO"
|
114
|
+
media_state="media_archive"
|
115
|
+
thumbnail="http://mediadownloads.mlb.com/mlbam/preview/torbos_288186_preview.jpg"/>
|
116
|
+
</game_media>
|
117
|
+
</game>
|
@@ -0,0 +1,56 @@
|
|
1
|
+
<!--Copyright 2012 MLB Advanced Media, L.P. Use of any content on this page acknowledges agreement to the terms posted here http://gdx.mlb.com/components/copyright.txt--><game venue="Fenway Park" date="July 4, 2011">
|
2
|
+
<team type="away" id="TOR" name="Toronto Blue Jays">
|
3
|
+
<player id="136734" first="Octavio" last="Dotel" num="29" boxname="Dotel" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="1" era="3.86"/>
|
4
|
+
<player id="150040" first="Jose" last="Molina" num="8" boxname="Molina, J" rl="R" position="C" status="A" bat_order="8" game_position="C" avg=".301" hr="2" rbi="7"/>
|
5
|
+
<player id="150348" first="John" last="McDonald" num="6" boxname="McDonald, Jo" rl="R" position="2B" status="A" bat_order="9" game_position="SS" avg=".197" hr="2" rbi="13"/>
|
6
|
+
<player id="279913" first="Corey" last="Patterson" num="16" boxname="Patterson, C" rl="R" position="LF" status="A" avg=".258" hr="6" rbi="31"/>
|
7
|
+
<player id="400010" first="Jon" last="Rauch" num="60" boxname="Rauch" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="3" era="4.11"/>
|
8
|
+
<player id="407911" first="Frank" last="Francisco" num="50" boxname="Francisco, F" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="1" losses="4" era="5.01"/>
|
9
|
+
<player id="425861" first="Shawn" last="Camp" num="57" boxname="Camp" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="4.00"/>
|
10
|
+
<player id="429665" first="Edwin" last="Encarnacion" num="10" boxname="Encarnacion" rl="R" position="3B" status="A" bat_order="5" game_position="DH" avg=".250" hr="6" rbi="19"/>
|
11
|
+
<player id="430630" first="Jason" last="Frasor" num="54" boxname="Frasor" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="1" era="2.70"/>
|
12
|
+
<player id="430832" first="Jose" last="Bautista" num="19" boxname="Bautista" rl="R" position="RF" status="A" bat_order="3" game_position="3B" avg=".331" hr="27" rbi="56"/>
|
13
|
+
<player id="431094" first="Aaron" last="Hill" num="2" boxname="Hill, A" rl="R" position="2B" status="A" bat_order="6" game_position="2B" avg=".240" hr="3" rbi="31"/>
|
14
|
+
<player id="434658" first="Rajai" last="Davis" num="11" boxname="Davis, R" rl="R" position="CF" status="A" bat_order="1" game_position="CF" avg=".233" hr="1" rbi="17"/>
|
15
|
+
<player id="446399" first="Brett" last="Cecil" num="27" boxname="Cecil" rl="L" position="P" status="A" avg=".000" hr="0" rbi="0" wins="1" losses="3" era="7.24"/>
|
16
|
+
<player id="450317" first="J.P." last="Arencibia" num="9" boxname="Arencibia" rl="R" position="C" status="A" avg=".216" hr="12" rbi="36"/>
|
17
|
+
<player id="452252" first="Adam" last="Lind" num="26" boxname="Lind" rl="L" position="1B" status="A" bat_order="4" game_position="1B" avg=".310" hr="16" rbi="49"/>
|
18
|
+
<player id="453344" first="Brandon" last="Morrow" num="23" boxname="Morrow" rl="R" position="P" status="A" bat_order="0" game_position="P" avg=".000" hr="0" rbi="0" wins="4" losses="4" era="4.56"/>
|
19
|
+
<player id="453454" first="Mike" last="McCoy" num="18" boxname="McCoy" rl="R" position="2B" status="A" avg=".217" hr="1" rbi="4"/>
|
20
|
+
<player id="453646" first="Carlos" last="Villanueva" num="33" boxname="Villanueva" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="5" losses="1" era="3.24"/>
|
21
|
+
<player id="457456" first="Jo-Jo" last="Reyes" num="37" boxname="Reyes, Jo" rl="L" position="P" status="A" avg=".250" hr="0" rbi="0" wins="3" losses="7" era="4.85"/>
|
22
|
+
<player id="460069" first="Ricky" last="Romero" num="24" boxname="Romero, R" rl="L" position="P" status="A" avg=".167" hr="0" rbi="2" wins="7" losses="7" era="2.75"/>
|
23
|
+
<player id="469802" first="Luis" last="Perez" num="47" boxname="Perez, L" rl="L" position="P" status="A" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="3.71"/>
|
24
|
+
<player id="488862" first="Yunel" last="Escobar" num="5" boxname="Escobar, Y" rl="R" position="SS" status="A" avg=".289" hr="9" rbi="29"/>
|
25
|
+
<player id="501983" first="Travis" last="Snider" num="45" boxname="Snider" rl="L" position="RF" status="A" bat_order="7" game_position="RF" avg=".184" hr="1" rbi="12"/>
|
26
|
+
<player id="519240" first="Marc" last="Rzepczynski" num="34" boxname="Rzepczynski" rl="L" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="2" era="3.12"/>
|
27
|
+
<player id="519346" first="Eric" last="Thames" num="14" boxname="Thames, E" rl="R" position="LF" status="A" bat_order="2" game_position="LF" avg=".329" hr="3" rbi="9"/>
|
28
|
+
<coach position="manager" first="John" last="Farrell" id="114023" num="52"/><coach position="batting_coach" first="Dwayne" last="Murphy" id="119551" num="41"/><coach position="pitching_coach" first="Bruce" last="Walton" id="123899" num="53"/><coach position="first_base_coach" first="Torey" last="Lovullo" id="117950" num="7"/><coach position="third_base_coach" first="Brian" last="Butterfield" id="427047" num="55"/><coach position="bench_coach" first="Don" last="Wakamatsu" id="123798" num="22"/><coach position="bullpen_coach" first="Pat" last="Hentgen" id="115797" num="41"/><coach position="bullpen_catcher" first="Alex" last="Andreopoulos" id="432938" num="61"/><coach position="coach" first="Luis" last="Rivera" id="121248" num="63"/> </team>
|
29
|
+
<team type="home" id="BOS" name="Boston Red Sox">
|
30
|
+
<player id="120074" first="David" last="Ortiz" num="34" boxname="Ortiz" rl="L" position="D" status="A" bat_order="5" game_position="DH" avg=".301" hr="17" rbi="49"/>
|
31
|
+
<player id="123660" first="Jason" last="Varitek" num="33" boxname="Varitek" rl="R" position="C" status="A" avg=".250" hr="5" rbi="17"/>
|
32
|
+
<player id="123801" first="Tim" last="Wakefield" num="49" boxname="Wakefield" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="4" losses="3" era="4.82"/>
|
33
|
+
<player id="136770" first="J.D." last="Drew" num="7" boxname="Drew, J" rl="R" position="RF" status="A" bat_order="8" game_position="RF" avg=".231" hr="4" rbi="18"/>
|
34
|
+
<player id="150021" first="Darnell" last="McDonald" num="54" boxname="McDonald, D" rl="R" position="CF" status="A" avg=".121" hr="2" rbi="6"/>
|
35
|
+
<player id="235095" first="Dan" last="Wheeler" num="35" boxname="Wheeler" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="5.92"/>
|
36
|
+
<player id="277417" first="Josh" last="Beckett" num="19" boxname="Beckett" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="7" losses="3" era="2.12"/>
|
37
|
+
<player id="340192" first="Marco" last="Scutaro" num="10" boxname="Scutaro" rl="R" position="SS" status="A" bat_order="9" game_position="SS" avg=".267" hr="3" rbi="14"/>
|
38
|
+
<player id="407793" first="John" last="Lackey" num="41" boxname="Lackey" rl="R" position="P" status="A" bat_order="0" game_position="P" avg=".333" hr="0" rbi="1" wins="5" losses="7" era="6.81"/>
|
39
|
+
<player id="408057" first="Bobby" last="Jenks" num="52" boxname="Jenks" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="2" era="6.75"/>
|
40
|
+
<player id="408236" first="Adrian" last="Gonzalez" num="28" boxname="Gonzalez, Ad" rl="L" position="1B" status="A" bat_order="3" game_position="1B" avg=".350" hr="16" rbi="74"/>
|
41
|
+
<player id="425903" first="Kevin" last="Youkilis" num="20" boxname="Youkilis" rl="R" position="3B" status="A" bat_order="4" game_position="3B" avg=".271" hr="11" rbi="57"/>
|
42
|
+
<player id="449097" first="Jonathan" last="Papelbon" num="58" boxname="Papelbon" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="0" era="3.58"/>
|
43
|
+
<player id="450300" first="Drew" last="Sutton" num="44" boxname="Sutton" rl="R" position="3B" status="A" avg=".318" hr="0" rbi="7"/>
|
44
|
+
<player id="452657" first="Jon" last="Lester" num="31" boxname="Lester" rl="L" position="P" status="A" avg=".000" hr="0" rbi="0" wins="10" losses="4" era="3.43"/>
|
45
|
+
<player id="453056" first="Jacoby" last="Ellsbury" num="2" boxname="Ellsbury" rl="L" position="CF" status="A" bat_order="1" game_position="CF" avg=".302" hr="9" rbi="40"/>
|
46
|
+
<player id="453192" first="Andrew" last="Miller" num="30" boxname="Miller, A" rl="L" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="0" era="3.06"/>
|
47
|
+
<player id="453268" first="Daniel" last="Bard" num="51" boxname="Bard" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="1" losses="4" era="2.25"/>
|
48
|
+
<player id="456030" first="Dustin" last="Pedroia" num="15" boxname="Pedroia" rl="R" position="2B" status="A" bat_order="2" game_position="2B" avg=".278" hr="7" rbi="38"/>
|
49
|
+
<player id="457454" first="Jarrod" last="Saltalamacchia" num="39" boxname="Saltalamacchia" rl="R" position="C" status="A" bat_order="7" game_position="C" avg=".251" hr="5" rbi="21"/>
|
50
|
+
<player id="458006" first="Matt" last="Albers" num="32" boxname="Albers" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="2" losses="3" era="2.97"/>
|
51
|
+
<player id="462985" first="Franklin" last="Morales" num="46" boxname="Morales, F" rl="L" position="P" status="A" avg=".000" hr="0" rbi="0" wins="0" losses="1" era="3.86"/>
|
52
|
+
<player id="469686" first="Alfredo" last="Aceves" num="91" boxname="Aceves" rl="R" position="P" status="A" avg=".000" hr="0" rbi="0" wins="3" losses="1" era="3.75"/>
|
53
|
+
<player id="501605" first="Yamaico" last="Navarro" num="60" boxname="Navarro" rl="R" position="3B" status="A" avg=".500" hr="1" rbi="1"/>
|
54
|
+
<player id="502210" first="Josh" last="Reddick" num="16" boxname="Reddick" rl="R" position="RF" status="A" bat_order="6" game_position="LF" avg=".422" hr="1" rbi="10"/>
|
55
|
+
<coach position="manager" first="Terry" last="Francona" id="114378" num="47"/><coach position="batting_coach" first="Dave" last="Magadan" id="118132" num="29"/><coach position="pitching_coach" first="Curt" last="Young" id="124689" num="40"/><coach position="first_base_coach" first="Ron" last="Johnson" id="116622" num="50"/><coach position="third_base_coach" first="Tim" last="Bogar" id="111148" num="17"/><coach position="bench_coach" first="DeMarlo" last="Hale" id="427204" num="22"/><coach position="bullpen_coach" first="Gary" last="Tuck" id="492898" num="57"/> </team>
|
56
|
+
<umpires><umpire position="home" name="Jerry Layne" id="427299"/><umpire position="first" name="Brian Knight" id="427286"/><umpire position="second" name="Tim McClelland" id="427326"/><umpire position="third" name="Bob Davidson" id="427099"/></umpires></game>
|
File without changes
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class TestCreateMlbGameFromGamedayXMLGame < MiniTest::Unit::TestCase
|
4
|
+
def test_create_game_data_from_gameday_xml_game
|
5
|
+
GamedayGame.create_from_gameday_xml_game('gid_2011_07_04_tormlb_bosmlb_1')
|
6
|
+
assert_equal 1, GamedayGame.all.count
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_fail_gracefully_if_game_does_not_have_data
|
10
|
+
refute GamedayGame.create_from_gameday_xml_game('gid_2011_07_04_tormlb_bosmlb_8')
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class TestCreatePlayersFromGamedayXMLGame < MiniTest::Unit::TestCase
|
4
|
+
def test_create_players_from_gameday_xml_game
|
5
|
+
Athlete.create_from_gameday_xml_game('gid_2011_07_04_tormlb_bosmlb_1')
|
6
|
+
assert_equal 50, Athlete.all.count
|
7
|
+
end
|
8
|
+
end
|
data/test/test_greenmonster.rb
CHANGED
@@ -1,15 +1,12 @@
|
|
1
|
-
require '
|
2
|
-
require 'greenmonster'
|
1
|
+
require './test/test_helper.rb'
|
3
2
|
|
4
|
-
class GreenmonsterTest < MiniTest::Unit::TestCase
|
5
|
-
def setup
|
6
|
-
end
|
7
|
-
|
3
|
+
class GreenmonsterTest < MiniTest::Unit::TestCase
|
8
4
|
def test_set_games_folder_location
|
9
5
|
Greenmonster.set_games_folder('./test_greenmonster_folder')
|
10
6
|
assert_equal './test_greenmonster_folder', Greenmonster.games_folder.to_s
|
11
7
|
end
|
12
8
|
|
13
9
|
def teardown
|
10
|
+
Greenmonster.set_games_folder('./test/games')
|
14
11
|
end
|
15
12
|
end
|
@@ -1,5 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'greenmonster'
|
1
|
+
require './test/test_helper.rb'
|
3
2
|
|
4
3
|
class GreenmonsterSpiderTest < MiniTest::Unit::TestCase
|
5
4
|
def setup
|
@@ -28,6 +27,18 @@ class GreenmonsterSpiderTest < MiniTest::Unit::TestCase
|
|
28
27
|
assert_equal 400023, Nokogiri::XML(open(paths[:localGameFolder] + 'inning/inning_all.xml')).search("atbat").first.attribute('batter').value.to_i
|
29
28
|
end
|
30
29
|
|
30
|
+
def test_copy_gameday_xml_downloads_file_when_it_has_bad_encoding
|
31
|
+
paths = {
|
32
|
+
:localGameFolder => "#{@local_test_data_location}/mlb/year_2012/month_04/day_10/gid_2012_04_10_arimlb_sdnmlb_1/",
|
33
|
+
:mlbGameFolder => "http://gd2.mlb.com/components/game/mlb/year_2012/month_04/day_10/gid_2012_04_10_arimlb_sdnmlb_1/"
|
34
|
+
}
|
35
|
+
FileUtils.mkdir_p paths[:localGameFolder] + 'inning'
|
36
|
+
|
37
|
+
Greenmonster::Spider.copy_gameday_xml('inning_all.xml',paths)
|
38
|
+
|
39
|
+
assert_equal 11, Nokogiri::XML(open(paths[:localGameFolder] + '/inning/inning_all.xml')).search("inning").count
|
40
|
+
end
|
41
|
+
|
31
42
|
def test_pull_day
|
32
43
|
Greenmonster::Spider.pull_day({:print_games => false, :games_folder => @local_test_data_location, :date => Date.new(2011,6,7)})
|
33
44
|
|
@@ -51,37 +62,33 @@ class GreenmonsterSpiderTest < MiniTest::Unit::TestCase
|
|
51
62
|
end
|
52
63
|
|
53
64
|
def test_pull_non_mlb_sport_code_games
|
54
|
-
Greenmonster::Spider.pull_day({:sport_code => '
|
65
|
+
Greenmonster::Spider.pull_day({:sport_code => 'asx', :print_games => false, :games_folder => @local_test_data_location, :date => Date.new(2011,9,12)})
|
55
66
|
|
56
|
-
assert_equal
|
67
|
+
assert_equal 4, Dir.entries(@local_test_data_location + '/asx/year_2011/month_09/day_12/').count
|
57
68
|
%w(linescore.xml boxscore.xml players.xml eventLog.xml inning).each do |f|
|
58
|
-
assert Dir.entries(@local_test_data_location + '/
|
69
|
+
assert Dir.entries(@local_test_data_location + '/asx/year_2011/month_09/day_12/gid_2011_09_12_staasx_aubasx_1/').include? f
|
59
70
|
end
|
60
71
|
end
|
61
72
|
|
62
73
|
def test_pull_games_prior_to_2008
|
63
74
|
Greenmonster::Spider.pull_game('gid_2007_04_15_detmlb_tormlb_1', {:games_folder => @local_test_data_location, :print_games => false})
|
64
|
-
|
65
75
|
assert_equal 12, Dir.entries(@local_test_data_location + '/mlb/year_2007/month_04/day_15/gid_2007_04_15_detmlb_tormlb_1/inning/').count
|
66
76
|
end
|
67
77
|
|
68
78
|
def test_pull_all_sport_codes_for_day
|
69
|
-
Greenmonster::Spider.pull_day({:all_sport_codes => true, :print_games => false, :games_folder => @local_test_data_location, :date => Date.new(2011,
|
70
|
-
|
71
|
-
assert_equal 9, Dir.entries(@local_test_data_location).count
|
79
|
+
Greenmonster::Spider.pull_day({:all_sport_codes => true, :print_games => false, :games_folder => @local_test_data_location, :date => Date.new(2011,9,13)})
|
80
|
+
assert_equal 8, Dir.entries(@local_test_data_location).count
|
72
81
|
end
|
73
82
|
|
74
83
|
def test_pull_days
|
75
|
-
Greenmonster::Spider.pull_days((Date.new(2011,
|
76
|
-
|
77
|
-
assert_equal
|
78
|
-
assert_equal 17, Dir.entries(@local_test_data_location + '/mlb/year_2011/month_08/day_05').count
|
84
|
+
Greenmonster::Spider.pull_days((Date.new(2011,10,9)..Date.new(2011,10,10)), {:print_games => false, :games_folder => @local_test_data_location})
|
85
|
+
assert_equal 4, Dir.entries(@local_test_data_location + '/mlb/year_2011/month_10/').count
|
86
|
+
assert_equal 6, Dir.entries(@local_test_data_location + '/mlb/year_2011/month_10/day_09').count
|
79
87
|
end
|
80
88
|
|
81
89
|
def test_pull_day_with_default_folder_location
|
82
|
-
Greenmonster.set_games_folder
|
90
|
+
Greenmonster.set_games_folder @local_test_data_location
|
83
91
|
Greenmonster::Spider.pull_day({:date => Date.new(2011,7,4), :print_games => false})
|
84
|
-
|
85
92
|
assert_equal 288186, Nokogiri::XML(open(@local_test_data_location + '/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/boxscore.xml')).search('boxscore').first.attribute('game_pk').value.to_i
|
86
93
|
end
|
87
94
|
|
@@ -97,17 +104,16 @@ class GreenmonsterSpiderTest < MiniTest::Unit::TestCase
|
|
97
104
|
|
98
105
|
def test_local_file_not_created_if_remote_file_does_not_exist
|
99
106
|
Greenmonster::Spider.pull_game('gid_2011_07_01_xxxmlb_yyymlb_1', {:games_folder => @local_test_data_location, :print_games => false})
|
100
|
-
|
101
107
|
assert_equal 3, Dir.entries(@local_test_data_location + '/mlb/year_2011/month_07/day_01/gid_2011_07_01_xxxmlb_yyymlb_1').count
|
102
108
|
end
|
103
109
|
|
104
110
|
def test_sport_code_argument_as_array
|
105
|
-
Greenmonster::Spider.pull_day({:date => Date.new(2011,
|
106
|
-
|
111
|
+
Greenmonster::Spider.pull_day({:date => Date.new(2011,9,16), :sport_code => ['mlb','rok'], :print_games => false, :games_folder => @local_test_data_location})
|
107
112
|
assert_equal 4, Dir.entries(@local_test_data_location).count
|
108
113
|
end
|
109
114
|
|
110
115
|
def teardown
|
111
116
|
FileUtils.remove_dir @local_test_data_location
|
117
|
+
Greenmonster.set_games_folder('./test/games')
|
112
118
|
end
|
113
119
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class GreenmonsterTraversalTest < MiniTest::Unit::TestCase
|
4
|
+
def test_traverse_dates_across_range
|
5
|
+
assert_equal (Date.new(2012,4,15)..Date.new(2012,4,30)), Greenmonster.traverse_dates(Date.new(2012,4,15)..Date.new(2012,4,30)) {|g,a| g}
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_traverse_dates_with_no_range
|
9
|
+
assert_block do
|
10
|
+
Greenmonster.traverse_dates do |d,a|
|
11
|
+
d == Date.today
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_traverse_folders_for_date
|
17
|
+
assert_block do
|
18
|
+
Greenmonster.traverse_folders_for_date(Date.new(2012,3,27), {:true_test => true, :false_test => false}) do |g,a|
|
19
|
+
g == 'gid_2012_03_27_aaamlb_aabmlb_1' and a == {:true_test => true, :false_test => false}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_traverse_folders_for_non_mlb_sport_code
|
25
|
+
assert_block do
|
26
|
+
Greenmonster.traverse_folders_for_date(Date.new(2012,3,27), {:sport_code => 'tst'}) do |g,a|
|
27
|
+
g == 'gid_2012_03_27_aaatst_aabtst_1'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
require "sqlite3"
|
2
|
+
require "supermodel"
|
3
|
+
require 'minitest/autorun'
|
4
|
+
require 'greenmonster'
|
5
|
+
|
6
|
+
ActiveRecord::Base.establish_connection(
|
7
|
+
:adapter => 'sqlite3',
|
8
|
+
:database => './test/test.db'
|
9
|
+
)
|
10
|
+
|
11
|
+
class CreateSchema < ActiveRecord::Migration
|
12
|
+
def self.up
|
13
|
+
create_table :athletes, :force => true do |t|
|
14
|
+
t.string :first
|
15
|
+
t.string :last
|
16
|
+
end
|
17
|
+
|
18
|
+
create_table :gameday_games, :force => true do |t|
|
19
|
+
t.date "date"
|
20
|
+
t.datetime "created_at"
|
21
|
+
t.datetime "updated_at"
|
22
|
+
t.string "away_division"
|
23
|
+
t.string "home_division"
|
24
|
+
t.string "game_id"
|
25
|
+
t.string "game_location"
|
26
|
+
t.integer "game_num"
|
27
|
+
t.integer "game_pk"
|
28
|
+
t.string "game_status", :limit => 2
|
29
|
+
t.datetime "game_time"
|
30
|
+
t.boolean "game_time_is_tbd"
|
31
|
+
t.integer "game_time_offset_eastern"
|
32
|
+
t.integer "game_time_offset_local"
|
33
|
+
t.string "game_type", :limit => 1
|
34
|
+
t.string "game_venue"
|
35
|
+
t.boolean "is_suspension_resumption"
|
36
|
+
t.boolean "mlbtv"
|
37
|
+
t.string "preview"
|
38
|
+
t.integer "resumptionTime", :limit => 8
|
39
|
+
t.datetime "scheduledTime"
|
40
|
+
t.string "sport_code", :limit => 3
|
41
|
+
t.integer "venue_id"
|
42
|
+
t.string "video_uri"
|
43
|
+
t.string "wrapup"
|
44
|
+
t.boolean "game_dh"
|
45
|
+
t.integer "away_team_id"
|
46
|
+
t.integer "home_team_id"
|
47
|
+
t.integer "away_league_id"
|
48
|
+
t.integer "home_league_id"
|
49
|
+
t.string "away_sport_code"
|
50
|
+
t.string "home_sport_code"
|
51
|
+
t.integer "last_event_processed"
|
52
|
+
end
|
53
|
+
|
54
|
+
create_table :probable_pitchers, :force => true do |t|
|
55
|
+
t.integer "game_pk"
|
56
|
+
t.date "date"
|
57
|
+
t.integer "player_id"
|
58
|
+
t.string "side"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
CreateSchema.suppress_messages { CreateSchema.migrate(:up) }
|
64
|
+
|
65
|
+
class Athlete < ActiveRecord::Base
|
66
|
+
include Greenmonster::Player
|
67
|
+
end
|
68
|
+
|
69
|
+
class GamedayGame < ActiveRecord::Base
|
70
|
+
include Greenmonster::MlbGame
|
71
|
+
end
|
72
|
+
|
73
|
+
class ProbablePitcher < ActiveRecord::Base
|
74
|
+
include Greenmonster::MlbProbablePitcher
|
75
|
+
end
|
76
|
+
|
77
|
+
Greenmonster.set_games_folder('./test/games')
|
78
|
+
FileUtils.mkdir_p Greenmonster.games_folder
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class TestLineScore < MiniTest::Unit::TestCase
|
4
|
+
def test_load_line_score
|
5
|
+
linescore = Greenmonster::Parser.load_line_score('gid_2011_07_04_tormlb_bosmlb_1')
|
6
|
+
assert_equal 288186, linescore.attribute('game_pk').value.to_i
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_load_line_score_returns_false_on_failure
|
10
|
+
refute Greenmonster::Parser.load_line_score('gid_2011_07_04_tormlb_bosmlb_7')
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class ParseMlbProbablePitchersFromLinescoreDataTest < MiniTest::Unit::TestCase
|
4
|
+
def test_create_probable_pitcher
|
5
|
+
node = nil
|
6
|
+
|
7
|
+
a = ProbablePitcher.create_from_gameday_xml(node)
|
8
|
+
|
9
|
+
assert_equal ProbablePitcher, a.class
|
10
|
+
assert_equal 000000, a.player_id
|
11
|
+
assert_equal 'a', a.side
|
12
|
+
assert_equal 111111, a.game_pk
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class TestParsePlayersFromGamedayXMLFiles < MiniTest::Unit::TestCase
|
4
|
+
def test_parse_players_from_game
|
5
|
+
players = []
|
6
|
+
Greenmonster::Parser.extract_players_from_game('gid_2011_07_04_tormlb_bosmlb_1') do |p|
|
7
|
+
players << p
|
8
|
+
end
|
9
|
+
players.sort!{|x,y| x[:id] <=> y[:id]}
|
10
|
+
|
11
|
+
assert_equal 50, players.count
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_player_ids_stored_as_integers
|
15
|
+
players = []
|
16
|
+
Greenmonster::Parser.extract_players_from_game('gid_2011_07_04_tormlb_bosmlb_1') do |p|
|
17
|
+
players << p
|
18
|
+
end
|
19
|
+
assert players.first[:id].kind_of? Integer
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
|
3
|
+
class TestUpdateMlbGameWithLinescore < MiniTest::Unit::TestCase
|
4
|
+
def test_update_with_linescore_data
|
5
|
+
g = GamedayGame.new
|
6
|
+
g.update_with_line_score_data(Greenmonster::Parser.load_line_score('gid_2011_07_04_tormlb_bosmlb_1'))
|
7
|
+
|
8
|
+
assert_equal 288186, g.game_pk
|
9
|
+
assert_equal 111, g.home_team_id
|
10
|
+
assert_equal 141, g.away_team_id
|
11
|
+
assert_equal 1, g.game_num
|
12
|
+
assert_equal '20110704tormlbbosmlb1', g.game_id
|
13
|
+
assert_equal Date.new(2011,7,4), g.date
|
14
|
+
assert_equal 'F', g.game_status
|
15
|
+
assert_equal Time.new(2011,7,4,13,35), g.game_time
|
16
|
+
assert_equal 'R', g.game_type
|
17
|
+
assert_equal 'Fenway Park', g.game_venue
|
18
|
+
assert_equal 3, g.venue_id
|
19
|
+
assert_equal 'mlb', g.sport_code
|
20
|
+
assert_equal 103, g.home_league_id
|
21
|
+
assert_equal 103, g.away_league_id
|
22
|
+
end
|
23
|
+
end
|