greenmonster 0.5.0 → 1.0.0

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.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/CODE_OF_CONDUCT.md +13 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.markdown +11 -28
  5. data/Rakefile +3 -8
  6. data/doc/Gemfile.html +6 -24
  7. data/doc/Greenmonster/Spider.html +47 -258
  8. data/doc/Greenmonster.html +25 -86
  9. data/doc/Rakefile.html +10 -25
  10. data/doc/created.rid +12 -18
  11. data/doc/index.html +6 -24
  12. data/doc/js/search_index.js +1 -1
  13. data/doc/table_of_contents.html +12 -129
  14. data/greenmonster.gemspec +16 -13
  15. data/lib/greenmonster/day_spider.rb +61 -0
  16. data/lib/greenmonster/file_downloader.rb +38 -0
  17. data/lib/greenmonster/game_spider.rb +100 -0
  18. data/lib/greenmonster/innings_downloader.rb +41 -0
  19. data/lib/greenmonster/spider.rb +1 -0
  20. data/lib/greenmonster/version.rb +2 -2
  21. data/lib/greenmonster.rb +16 -82
  22. data/spec/cassettes/aaa/year_2015/month_05/day_09.yml +153 -0
  23. data/spec/cassettes/gid_2007_10_01_sdnmlb_colmlb_1/innings.yml +135 -0
  24. data/spec/cassettes/gid_2015_04_18_balmlb_bos_mlb_1/players_xml.yml +292 -0
  25. data/spec/cassettes/gid_2015_04_18_balmlb_bos_mlb_2/players_xml.yml +46 -0
  26. data/spec/cassettes/mlb/year_2015/month_04/day_18.yml +170 -0
  27. data/spec/day_spider_spec.rb +80 -0
  28. data/spec/file_downloader_spec.rb +51 -0
  29. data/spec/fixtures/aaa_players.xml +70 -0
  30. data/spec/fixtures/boxscore.xml +1147 -0
  31. data/spec/fixtures/inning_all.xml +1 -0
  32. data/spec/fixtures/inning_hit.xml +1 -0
  33. data/spec/fixtures/linescore.xml +131 -0
  34. data/spec/fixtures/players.xml +63 -0
  35. data/spec/game_spider_spec.rb +116 -0
  36. data/spec/greenmonster_spec.rb +22 -34
  37. data/spec/innings_downloader_spec.rb +44 -0
  38. data/spec/spec_helper.rb +13 -21
  39. data/spec/support/path_helpers.rb +21 -0
  40. data/spec/support/vcr.rb +11 -0
  41. metadata +91 -67
  42. data/doc/Athlete.html +0 -254
  43. data/doc/Greenmonster/Generators/InstallGenerator.html +0 -253
  44. data/doc/Greenmonster/Generators.html +0 -147
  45. data/doc/Greenmonster/Parser.html +0 -263
  46. data/doc/Greenmonster/Player.html +0 -236
  47. data/doc/GreenmonsterPlayerTest.html +0 -199
  48. data/doc/GreenmonsterSpiderTest.html +0 -668
  49. data/doc/GreenmonsterTest.html +0 -262
  50. data/doc/GreenmonsterTraversalTest.html +0 -376
  51. data/doc/InstallGreenmonster.html +0 -260
  52. data/doc/TestCreatePlayersFromGamedayXMLGame.html +0 -266
  53. data/doc/TestParsePlayersFromGamedayXMLFiles.html +0 -307
  54. data/spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
  55. data/spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1_bak/blank.txt +0 -0
  56. data/spec/games/tst/year_2012/month_03/day_27/not_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
  57. data/spec/greenmonster/spider_spec.rb +0 -85
@@ -0,0 +1 @@
1
+ <!--Copyright 2015 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="Flyout" x="118.71" y="81.31" batter="457477" pitcher="453329" type="O" team="A" inning="1"/><hip des="Single" x="84.72" y="115.36" batter="456665" pitcher="453329" type="H" team="A" inning="1"/><hip des="Single" x="180.16" y="119.43" batter="430945" pitcher="453329" type="H" team="A" inning="1"/><hip des="Groundout" x="143.38" y="175.83" batter="517370" pitcher="453329" type="O" team="A" inning="1"/><hip des="Groundout" x="137.33" y="160.59" batter="456030" pitcher="501957" type="O" team="H" inning="1"/><hip des="Single" x="52.14" y="102.66" batter="120074" pitcher="501957" type="H" team="H" inning="1"/><hip des="Groundout" x="115.91" y="176.85" batter="592518" pitcher="453329" type="O" team="A" inning="2"/><hip des="Single" x="132.67" y="89.44" batter="475247" pitcher="453329" type="H" team="A" inning="2"/><hip des="Groundout" x="143.38" y="165.16" batter="465784" pitcher="453329" type="O" team="A" inning="2"/><hip des="Groundout" x="137.79" y="154.49" batter="434670" pitcher="501957" type="O" team="H" inning="2"/><hip des="Flyout" x="56.79" y="101.64" batter="467055" pitcher="501957" type="O" team="H" inning="2"/><hip des="Groundout" x="114.98" y="158.56" batter="435063" pitcher="501957" type="O" team="H" inning="2"/><hip des="Groundout" x="138.26" y="163.13" batter="457477" pitcher="453329" type="O" team="A" inning="3"/><hip des="Groundout" x="155.95" y="151.44" batter="537953" pitcher="501957" type="O" team="H" inning="3"/><hip des="Single" x="136.86" y="92.49" batter="571788" pitcher="501957" type="H" team="H" inning="3"/><hip des="Groundout" x="111.72" y="179.90" batter="456030" pitcher="501957" type="O" team="H" inning="3"/><hip des="Single" x="86.12" y="114.34" batter="430945" pitcher="453329" type="H" team="A" inning="4"/><hip des="Double" x="54.00" y="110.79" batter="517370" pitcher="453329" type="H" team="A" inning="4"/><hip des="Groundout" x="121.03" y="151.44" batter="592518" pitcher="453329" type="O" team="A" inning="4"/><hip des="Single" x="122.90" y="84.87" batter="543376" pitcher="453329" type="H" team="A" inning="4"/><hip des="Single" x="99.62" y="101.64" batter="475247" pitcher="453329" type="H" team="A" inning="4"/><hip des="Single" x="132.21" y="92.49" batter="465784" pitcher="453329" type="H" team="A" inning="4"/><hip des="Single" x="128.02" y="86.90" batter="120074" pitcher="501957" type="H" team="H" inning="4"/><hip des="Groundout" x="118.71" y="155.51" batter="467055" pitcher="501957" type="O" team="H" inning="4"/><hip des="Flyout" x="136.40" y="74.70" batter="435063" pitcher="501957" type="O" team="H" inning="4"/><hip des="Single" x="120.10" y="91.47" batter="448801" pitcher="453329" type="H" team="A" inning="5"/><hip des="Single" x="125.69" y="147.88" batter="430945" pitcher="453329" type="H" team="A" inning="5"/><hip des="Single" x="59.12" y="95.03" batter="517370" pitcher="453329" type="H" team="A" inning="5"/><hip des="Groundout" x="143.84" y="176.34" batter="592518" pitcher="453329" type="O" team="A" inning="5"/><hip des="Flyout" x="161.53" y="103.67" batter="593428" pitcher="501957" type="O" team="H" inning="5"/><hip des="Single" x="150.36" y="94.52" batter="571788" pitcher="501957" type="H" team="H" inning="5"/><hip des="Flyout" x="89.84" y="87.41" batter="465784" pitcher="453329" type="O" team="A" inning="6"/><hip des="Groundout" x="145.24" y="164.15" batter="457477" pitcher="453329" type="O" team="A" inning="6"/><hip des="Flyout" x="98.69" y="73.69" batter="456665" pitcher="453329" type="O" team="A" inning="6"/><hip des="Double" x="200.17" y="75.21" batter="120074" pitcher="501957" type="H" team="H" inning="6"/><hip des="Groundout" x="120.57" y="153.98" batter="434670" pitcher="501957" type="O" team="H" inning="6"/><hip des="Field Error" x="134.53" y="189.56" batter="467055" pitcher="501957" type="E" team="H" inning="6"/><hip des="Single" x="91.71" y="112.82" batter="435063" pitcher="501957" type="H" team="H" inning="6"/><hip des="Groundout" x="142.45" y="161.61" batter="537953" pitcher="542960" type="O" team="H" inning="6"/><hip des="Groundout" x="134.07" y="189.56" batter="430945" pitcher="468396" type="O" team="A" inning="7"/><hip des="Groundout" x="153.62" y="170.75" batter="517370" pitcher="468396" type="O" team="A" inning="7"/><hip des="Lineout" x="123.36" y="81.82" batter="593428" pitcher="542960" type="O" team="H" inning="7"/><hip des="Single" x="141.98" y="177.87" batter="571788" pitcher="542960" type="H" team="H" inning="7"/><hip des="Bunt Groundout" x="131.74" y="190.06" batter="543376" pitcher="460008" type="O" team="A" inning="8"/><hip des="Lineout" x="182.95" y="89.95" batter="475247" pitcher="460008" type="O" team="A" inning="8"/><hip des="Groundout" x="120.57" y="155.00" batter="465784" pitcher="460008" type="O" team="A" inning="8"/><hip des="Groundout" x="128.02" y="181.42" batter="434670" pitcher="503285" type="O" team="H" inning="8"/><hip des="Bunt Groundout" x="135.00" y="186.51" batter="457477" pitcher="543726" type="O" team="A" inning="9"/><hip des="Single" x="92.64" y="107.23" batter="456665" pitcher="543726" type="H" team="A" inning="9"/><hip des="Home Run" x="55.86" y="81.82" batter="448801" pitcher="543726" type="H" team="A" inning="9"/><hip des="Flyout" x="136.86" y="106.72" batter="430945" pitcher="543726" type="O" team="A" inning="9"/><hip des="Flyout" x="178.29" y="93.00" batter="517370" pitcher="543726" type="O" team="A" inning="9"/><hip des="Groundout" x="127.55" y="193.62" batter="435063" pitcher="502154" type="O" team="H" inning="9"/></hitchart>
@@ -0,0 +1,131 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><!--Copyright 2015 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="2015/04/18/balmlb-bosmlb-1" venue="Fenway Park" game_pk="413807"
3
+ time="4:05"
4
+ time_date="2015/04/18 4:05"
5
+ time_date_aw_lg="2015/04/18 4:05"
6
+ time_date_hm_lg="2015/04/18 4:05"
7
+ time_zone="ET"
8
+ ampm="PM"
9
+ first_pitch_et=""
10
+ away_time="4:05"
11
+ away_time_zone="ET"
12
+ away_ampm="PM"
13
+ home_time="4:05"
14
+ home_time_zone="ET"
15
+ home_ampm="PM"
16
+ game_type="R"
17
+ tiebreaker_sw="N"
18
+ original_date="2015/04/18"
19
+ time_zone_aw_lg="-4"
20
+ time_zone_hm_lg="-4"
21
+ time_aw_lg="4:05"
22
+ aw_lg_ampm="PM"
23
+ tz_aw_lg_gen="ET"
24
+ time_hm_lg="4:05"
25
+ hm_lg_ampm="PM"
26
+ tz_hm_lg_gen="ET"
27
+ venue_id="3"
28
+ scheduled_innings="9"
29
+ away_name_abbrev="BAL"
30
+ home_name_abbrev="BOS"
31
+ away_code="bal"
32
+ away_file_code="bal"
33
+ away_team_id="110"
34
+ away_team_city="Baltimore"
35
+ away_team_name="Orioles"
36
+ away_division="E"
37
+ away_league_id="103"
38
+ away_sport_code="mlb"
39
+ home_code="bos"
40
+ home_file_code="bos"
41
+ home_team_id="111"
42
+ home_team_city="Boston"
43
+ home_team_name="Red Sox"
44
+ home_division="E"
45
+ home_league_id="103"
46
+ home_sport_code="mlb"
47
+ day="SAT"
48
+ gameday_sw="P"
49
+ double_header_sw="N"
50
+ game_nbr="1"
51
+ tbd_flag="N"
52
+ away_games_back="1.0"
53
+ home_games_back="-"
54
+ away_games_back_wildcard="-"
55
+ venue_w_chan_loc="USMA0046"
56
+ location="Boston"
57
+ gameday_link="2015_04_18_balmlb_bosmlb_1"
58
+ away_win="6"
59
+ away_loss="5"
60
+ home_win="7"
61
+ home_loss="4"
62
+ game_data_directory="/components/game/mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1"
63
+ league="AA"
64
+ top_inning="N"
65
+ inning_state=""
66
+ note=""
67
+ status="Final"
68
+ ind="F"
69
+ inning="9"
70
+ balls="0"
71
+ strikes="0"
72
+ outs="3"
73
+ away_team_runs="4"
74
+ home_team_runs="1"
75
+ away_team_hits="13"
76
+ home_team_hits="7"
77
+ away_team_errors="1"
78
+ home_team_errors="0"
79
+ wrapup_link="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=wrap&amp;c_id=mlb"
80
+ home_preview_link="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=preview&amp;c_id=mlb"
81
+ away_preview_link="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=preview&amp;c_id=mlb"
82
+ preview="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=preview&amp;c_id=mlb"
83
+ tv_station="NESN, FS1"
84
+ home_recap_link="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=recap&amp;c_id=mlb"
85
+ away_recap_link="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=recap&amp;c_id=mlb"
86
+ photos_link="/mlb/gameday/index.jsp?gid=2015_04_18_balmlb_bosmlb_1&amp;mode=photos">
87
+ <linescore inning="1" home_inning_runs="0" away_inning_runs="0"/>
88
+ <linescore inning="2" home_inning_runs="0" away_inning_runs="0"/>
89
+ <linescore inning="3" home_inning_runs="0" away_inning_runs="0"/>
90
+ <linescore inning="4" home_inning_runs="0" away_inning_runs="2"/>
91
+ <linescore inning="5" home_inning_runs="0" away_inning_runs="0"/>
92
+ <linescore inning="6" home_inning_runs="1" away_inning_runs="0"/>
93
+ <linescore inning="7" home_inning_runs="0" away_inning_runs="0"/>
94
+ <linescore inning="8" home_inning_runs="0" away_inning_runs="0"/>
95
+ <linescore inning="9" home_inning_runs="0" away_inning_runs="2"/>
96
+ <winning_pitcher first_name="Chris" first="Chris" id="501957" last_name="Tillman" last="Tillman"
97
+ name_display_roster="Tillman"
98
+ wins="2"
99
+ losses="1"
100
+ era="5.52"
101
+ s_wins=""
102
+ s_losses=""
103
+ s_era=""/>
104
+ <losing_pitcher first_name="Clay" first="Clay" id="453329" last_name="Buchholz" last="Buchholz"
105
+ name_display_roster="Buchholz"
106
+ wins="1"
107
+ losses="2"
108
+ era="6.06"
109
+ s_wins=""
110
+ s_losses=""
111
+ s_era=""/>
112
+ <save_pitcher first_name="Zach" first="Zach" id="502154" last_name="Britton" last="Britton"
113
+ name_display_roster="Britton"
114
+ wins="0"
115
+ losses="0"
116
+ era="1.42"
117
+ s_wins=""
118
+ s_losses=""
119
+ s_era=""
120
+ saves="4"/>
121
+ <game_media>
122
+ <media type="game" calendar_event_id="14-413807-2015-04-18"
123
+ start="2015-04-18T16:05:00-0400"
124
+ title="BAL @ BOS"
125
+ has_mlbtv="true"
126
+ free="NO"
127
+ media_state="media_archive"
128
+ thumbnail="http://mediadownloads.mlb.com/mlbam/preview/balbos_413807_th_7_preview.jpg"/>
129
+ </game_media>
130
+ </game>
131
+
@@ -0,0 +1,63 @@
1
+ <!--Copyright 2015 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="April 18, 2015">
2
+ <team type="away" id="BAL" name="Baltimore Orioles">
3
+ <player id="429666" first="J.J." last="Hardy" num="2" boxname="Hardy" rl="R" bats="R" position="SS" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0"/>
4
+ <player id="430321" first="Delmon" last="Young" num="27" boxname="Young, D" rl="R" bats="R" position="LF" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".333" hr="0" rbi="2"/>
5
+ <player id="430945" first="Adam" last="Jones" num="10" boxname="Jones, Ad" rl="R" bats="R" position="CF" current_position="CF" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="4" game_position="CF" avg=".389" hr="4" rbi="11"/>
6
+ <player id="434622" first="Ubaldo" last="Jimenez" num="31" boxname="Jimenez, U" rl="R" bats="R" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="1" losses="0" era="0.00"/>
7
+ <player id="446308" first="Matt" last="Wieters" num="32" boxname="Wieters" rl="R" bats="S" position="C" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0"/>
8
+ <player id="448801" first="Chris" last="Davis" num="19" boxname="Davis, C" rl="R" bats="L" position="1B" current_position="1B" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="3" game_position="1B" avg=".235" hr="1" rbi="5"/>
9
+ <player id="449079" first="Wesley" last="Wright" num="40" boxname="Wright, W" rl="L" bats="R" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="5.40"/>
10
+ <player id="451085" first="Brian" last="Matusz" num="17" boxname="Matusz" rl="L" bats="L" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="1" era="2.08"/>
11
+ <player id="456068" first="Miguel" last="Gonzalez" num="50" boxname="Gonzalez, M" rl="R" bats="R" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="1.42"/>
12
+ <player id="456665" first="Steve" last="Pearce" num="28" boxname="Pearce" rl="R" bats="R" position="LF" current_position="1B" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="2" game_position="RF" avg=".143" hr="2" rbi="3"/>
13
+ <player id="457477" first="Alejandro" last="De Aza" num="12" boxname="De Aza" rl="L" bats="L" position="LF" current_position="LF" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="1" game_position="LF" avg=".282" hr="2" rbi="4"/>
14
+ <player id="465784" first="Everth" last="Cabrera" num="1" boxname="Cabrera, E" rl="R" bats="S" position="SS" current_position="SS" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="9" game_position="SS" avg=".276" hr="0" rbi="1"/>
15
+ <player id="475247" first="Ryan" last="Flaherty" num="3" boxname="Flaherty" rl="R" bats="L" position="3B" current_position="2B" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="8" game_position="2B" avg=".154" hr="1" rbi="1"/>
16
+ <player id="488984" first="Tommy" last="Hunter" num="29" boxname="Hunter, T" rl="R" bats="R" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="1" era="14.73"/>
17
+ <player id="501957" first="Chris" last="Tillman" num="30" boxname="Tillman" rl="R" bats="R" position="P" current_position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="0" game_position="P" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="7.71"/>
18
+ <player id="501983" first="Travis" last="Snider" num="23" boxname="Snider" rl="L" bats="L" position="RF" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".321" hr="1" rbi="6"/>
19
+ <player id="502032" first="Bud" last="Norris" num="25" boxname="Norris" rl="R" bats="R" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="1" era="12.38"/>
20
+ <player id="502154" first="Zach" last="Britton" num="53" boxname="Britton" rl="L" bats="L" position="P" current_position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="1.69"/>
21
+ <player id="503285" first="Darren" last="O'Day" num="56" boxname="O'Day" rl="R" bats="R" position="P" current_position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="1.50"/>
22
+ <player id="517370" first="Jimmy" last="Paredes" num="38" boxname="Paredes" rl="R" bats="S" position="3B" current_position="DH" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="5" game_position="DH" avg=".000" hr="0" rbi="0"/>
23
+ <player id="518953" first="David" last="Lough" num="9" boxname="Lough" rl="L" bats="L" position="LF" current_position="RF" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0"/>
24
+ <player id="542960" first="Brad" last="Brach" num="35" boxname="Brach" rl="R" bats="R" position="P" current_position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="1" losses="0" era="6.75"/>
25
+ <player id="543376" first="Caleb" last="Joseph" num="36" boxname="Joseph" rl="R" bats="R" position="C" current_position="C" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="7" game_position="C" avg=".370" hr="1" rbi="3"/>
26
+ <player id="543432" first="Ryan" last="Lavarnway" num="34" boxname="Lavarnway" rl="R" bats="R" position="C" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".167" hr="0" rbi="0"/>
27
+ <player id="570731" first="Jonathan" last="Schoop" num="6" boxname="Schoop" rl="R" bats="R" position="2B" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".259" hr="3" rbi="7"/>
28
+ <player id="592329" first="Jason" last="Garcia" num="61" boxname="Garcia, Ja" rl="R" bats="R" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="2.45"/>
29
+ <player id="592332" first="Kevin" last="Gausman" num="39" boxname="Gausman" rl="R" bats="L" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="1" losses="0" era="9.00"/>
30
+ <player id="592518" first="Manny" last="Machado" num="13" boxname="Machado, M" rl="R" bats="R" position="3B" current_position="3B" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" bat_order="6" game_position="3B" avg=".143" hr="1" rbi="3"/>
31
+ <player id="612672" first="Wei-Yin" last="Chen" num="16" boxname="Chen, W" rl="L" bats="L" position="P" status="A" team_abbrev="BAL" team_id="110" parent_team_abbrev="BAL" parent_team_id="110" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="4.35"/>
32
+ <coach position="manager" first="Buck" last="Showalter" id="427469" num="26"/><coach position="hitting_coach" first="Scott" last="Coolbaugh" id="112635" num="47"/><coach position="assistant_hitting_coach" first="Einar" last="Diaz" id="113330" num="55"/><coach position="pitching_coach" first="Dave" last="Wallace" id="123855" num="37"/><coach position="first_base_coach" first="Wayne" last="Kirby" id="117114" num="24"/><coach position="third_base_coach" first="Bobby" last="Dickerson" id="433638" num="11"/><coach position="bench_coach" first="John" last="Russell" id="121571" num="77"/><coach position="bullpen_coach" first="Dom" last="Chiti" id="492826" num="54"/> </team>
33
+ <team type="home" id="BOS" name="Boston Red Sox">
34
+ <player id="120074" first="David" last="Ortiz" num="34" boxname="Ortiz, D" rl="L" bats="L" position="D" current_position="DH" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="3" game_position="DH" avg=".171" hr="2" rbi="3"/>
35
+ <player id="425664" first="Shane" last="Victorino" num="18" boxname="Victorino" rl="R" bats="R" position="RF" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".125" hr="0" rbi="2"/>
36
+ <player id="434670" first="Hanley" last="Ramirez" num="13" boxname="Ramirez, H" rl="R" bats="R" position="LF" current_position="LF" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="4" game_position="LF" avg=".256" hr="4" rbi="9"/>
37
+ <player id="435063" first="Mike" last="Napoli" num="12" boxname="Napoli" rl="R" bats="R" position="1B" current_position="1B" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="6" game_position="1B" avg=".118" hr="0" rbi="0"/>
38
+ <player id="444520" first="Craig" last="Breslow" num="32" boxname="Breslow" rl="L" bats="L" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="0.00"/>
39
+ <player id="452672" first="Ryan" last="Hanigan" num="10" boxname="Hanigan" rl="R" bats="R" position="C" current_position="C" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="9" game_position="C" avg=".136" hr="1" rbi="5"/>
40
+ <player id="453329" first="Clay" last="Buchholz" num="11" boxname="Buchholz" rl="R" bats="L" position="P" current_position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="0" game_position="P" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="7.84"/>
41
+ <player id="456030" first="Dustin" last="Pedroia" num="15" boxname="Pedroia" rl="R" bats="R" position="2B" current_position="2B" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="2" game_position="2B" avg=".279" hr="3" rbi="6"/>
42
+ <player id="460008" first="Anthony" last="Varvaro" num="46" boxname="Varvaro" rl="R" bats="R" position="P" current_position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="1.69"/>
43
+ <player id="465629" first="Edward" last="Mujica" num="54" boxname="Mujica" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="1" losses="0" era="3.18"/>
44
+ <player id="467055" first="Pablo" last="Sandoval" num="48" boxname="Sandoval" rl="R" bats="S" position="3B" current_position="3B" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="5" game_position="3B" avg=".316" hr="0" rbi="3"/>
45
+ <player id="468396" first="Alexi" last="Ogando" num="41" boxname="Ogando" rl="R" bats="R" position="P" current_position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="6.75"/>
46
+ <player id="475416" first="Justin" last="Masterson" num="63" boxname="Masterson" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".667" hr="0" rbi="1" wins="1" losses="0" era="7.59"/>
47
+ <player id="489119" first="Wade" last="Miley" num="20" boxname="Miley" rl="L" bats="L" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="1" era="10.57"/>
48
+ <player id="493157" first="Koji" last="Uehara" num="19" boxname="Uehara" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="1" losses="0" era="0.00"/>
49
+ <player id="501800" first="Allen" last="Craig" num="5" boxname="Craig" rl="R" bats="R" position="RF" current_position="PH" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".083" hr="0" rbi="0"/>
50
+ <player id="506702" first="Sandy" last="Leon" num="3" boxname="Leon, S" rl="R" bats="S" position="C" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".273" hr="0" rbi="2"/>
51
+ <player id="519144" first="Rick" last="Porcello" num="22" boxname="Porcello" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="1" losses="1" era="3.86"/>
52
+ <player id="519443" first="Brandon" last="Workman" num="67" boxname="Workman" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="-"/>
53
+ <player id="523260" first="Joe" last="Kelly" num="56" boxname="Kelly, J" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="1" losses="0" era="2.13"/>
54
+ <player id="537953" first="Daniel" last="Nava" num="29" boxname="Nava" rl="L" bats="L" position="RF" current_position="RF" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="7" game_position="RF" avg=".313" hr="0" rbi="5"/>
55
+ <player id="543726" first="Robbie" last="Ross" num="28" boxname="Ross" rl="L" bats="L" position="P" current_position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="3.86"/>
56
+ <player id="543877" first="Christian" last="Vazquez" num="7" boxname="Vazquez" rl="R" bats="R" position="C" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0"/>
57
+ <player id="546276" first="Edwin" last="Escobar" num="51" boxname="Escobar, Ed" rl="L" bats="L" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="-"/>
58
+ <player id="547749" first="Junichi" last="Tazawa" num="36" boxname="Tazawa" rl="R" bats="R" position="P" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".000" hr="0" rbi="0" wins="0" losses="0" era="0.00"/>
59
+ <player id="571788" first="Brock" last="Holt" num="26" boxname="Holt, B" rl="R" bats="L" position="3B" current_position="CF" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="1" game_position="CF" avg=".533" hr="0" rbi="5"/>
60
+ <player id="593428" first="Xander" last="Bogaerts" num="2" boxname="Bogaerts" rl="R" bats="R" position="SS" current_position="SS" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" bat_order="8" game_position="SS" avg=".395" hr="0" rbi="8"/>
61
+ <player id="605141" first="Mookie" last="Betts" num="50" boxname="Betts" rl="R" bats="R" position="O" current_position="DH" status="A" team_abbrev="BOS" team_id="111" parent_team_abbrev="BOS" parent_team_id="111" avg=".209" hr="2" rbi="8"/>
62
+ <coach position="manager" first="John" last="Farrell" id="114023" num="53"/><coach position="hitting_coach" first="Chili" last="Davis" id="113099" num="44"/><coach position="assistant_hitting_coach" first="Victor" last="Rodriguez" id="121367" num="57"/><coach position="pitching_coach" first="Juan" last="Nieves" id="119797" num="47"/><coach position="first_base_coach" first="Arnie" last="Beyeler" id="492469" num="43"/><coach position="third_base_coach" first="Brian" last="Butterfield" id="427047" num="55"/><coach position="bench_coach" first="Torey" last="Lovullo" id="117950" num="17"/><coach position="bullpen_coach" first="Dana" last="LeVangie" id="427298" num="58"/> </team>
63
+ <umpires><umpire position="home" name="Jerry Meals" id="427339" first="Jerry" last="Meals"/><umpire position="first" name="Paul Emmel" id="427144" first="Paul" last="Emmel"/><umpire position="second" name="Andy Fletcher" id="427164" first="Andy" last="Fletcher"/><umpire position="third" name="Jordan Baker" id="490319" first="Jordan" last="Baker"/></umpires></game>
@@ -0,0 +1,116 @@
1
+ require "spec_helper"
2
+
3
+ describe Greenmonster::GameSpider do
4
+ let(:downloader) { spy("FileDownloader") }
5
+ let(:dummy_downloader) { spy("Another FileDownloader") }
6
+
7
+ before do
8
+ allow(Greenmonster::FileDownloader).to receive(:new) { dummy_downloader }
9
+ end
10
+
11
+ describe "#pull" do
12
+ it "creates the necessary folders to save data" do
13
+ FileUtils.mkdir_p("/tmp/custom_location")
14
+ Greenmonster.set_local_data_location("/tmp/custom_location")
15
+
16
+ described_class.new(game_id: "gid_2015_04_18_balmlb_bosmlb_1").pull
17
+
18
+ expect(File.exists?(File.expand_path("/tmp/custom_location/games/mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1/inning", __FILE__))).
19
+ to be_truthy
20
+
21
+ Greenmonster.set_local_data_location("/tmp")
22
+ end
23
+
24
+ it "downloads the inning_all.xml file" do
25
+ allow(Greenmonster::FileDownloader).to receive(:new).
26
+ with(
27
+ game_path: "mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1",
28
+ file_name: "inning/inning_all.xml"
29
+ ) { downloader }
30
+
31
+ described_class.new(game_id: "gid_2015_04_18_balmlb_bosmlb_1").pull
32
+
33
+ expect(downloader).to have_received(:pull)
34
+ end
35
+
36
+ it "downloads the per-inning inning_x.xml files if inning_all.xml does not exist (pre-2008)" do
37
+ allow(Greenmonster::InningsDownloader).to receive(:new).
38
+ with(
39
+ game_path:
40
+ "mlb/year_2007/month_10/day_01/gid_2007_10_01_colmlb_sdnmlb_1",
41
+ ) { downloader }
42
+
43
+ described_class.new(game_id: "gid_2007_10_01_colmlb_sdnmlb_1").pull
44
+
45
+ expect(downloader).to have_received(:pull)
46
+ end
47
+
48
+ it "downloads the inning_hit.xml file" do
49
+ allow(Greenmonster::FileDownloader).to receive(:new).
50
+ with(
51
+ game_path:
52
+ "mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1",
53
+ file_name: "inning/inning_hit.xml"
54
+ ) { downloader }
55
+
56
+ described_class.new(game_id: "gid_2015_04_18_balmlb_bosmlb_1").pull
57
+
58
+ expect(downloader).to have_received(:pull)
59
+ end
60
+
61
+ it "downloads the boxscore.xml file" do
62
+ allow(Greenmonster::FileDownloader).to receive(:new).
63
+ with(
64
+ game_path:
65
+ "mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1",
66
+ file_name: "boxscore.xml"
67
+ ) { downloader }
68
+
69
+ described_class.new(game_id: "gid_2015_04_18_balmlb_bosmlb_1").pull
70
+
71
+ expect(downloader).to have_received(:pull)
72
+ end
73
+
74
+ it "downloads the linescore.xml file" do
75
+ allow(Greenmonster::FileDownloader).to receive(:new).
76
+ with(
77
+ game_path:
78
+ "mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1",
79
+ file_name: "linescore.xml"
80
+ ) { downloader }
81
+
82
+ described_class.new(game_id: "gid_2015_04_18_balmlb_bosmlb_1").pull
83
+
84
+ expect(downloader).to have_received(:pull)
85
+ end
86
+
87
+ it "downloads the players.xml file" do
88
+ allow(Greenmonster::FileDownloader).to receive(:new).
89
+ with(
90
+ game_path:
91
+ "mlb/year_2015/month_04/day_18/gid_2015_04_18_balmlb_bosmlb_1",
92
+ file_name: "players.xml"
93
+ ) { downloader }
94
+
95
+ described_class.new(game_id: "gid_2015_04_18_balmlb_bosmlb_1").pull
96
+
97
+ expect(downloader).to have_received(:pull)
98
+ end
99
+
100
+ it "downloads files for sport codes outside of mlb" do
101
+ allow(Greenmonster::FileDownloader).to receive(:new).
102
+ with(
103
+ game_path:
104
+ "aaa/year_2015/month_05/day_08/gid_2015_05_08_albaaa_srcaaa_1",
105
+ file_name: "players.xml"
106
+ ) { downloader }
107
+
108
+ described_class.new(
109
+ game_id: "gid_2015_05_08_albaaa_srcaaa_1",
110
+ sport_code: "aaa"
111
+ ).pull
112
+
113
+ expect(downloader).to have_received(:pull)
114
+ end
115
+ end
116
+ end
@@ -1,45 +1,33 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- describe Greenmonster do
4
-
5
- before(:all) do
6
- Greenmonster.set_games_folder("spec/games")
3
+ RSpec.describe Greenmonster do
4
+ it "has a version number" do
5
+ expect(Greenmonster::VERSION).not_to be_nil
7
6
  end
8
7
 
9
- describe ".traverse_dates" do
10
-
11
- it "yields each date in the range with the argument hash" do
12
- expect { |m|
13
- Greenmonster.traverse_dates((Date.new(2012)..Date.new(2012,1,3)), {test: true}, &m)
14
- }.to yield_successive_args(
15
- [Date.new(2012,1,1), {test: true}],
16
- [Date.new(2012,1,2), {test: true}],
17
- [Date.new(2012,1,3), {test: true}]
8
+ describe ".local_data_location" do
9
+ it "returns the local data location" do
10
+ Greenmonster.class_variable_set(
11
+ :@@local_data_location,
12
+ "/tmp/my_custom_location"
18
13
  )
14
+
15
+ expect(Greenmonster.local_data_location).to eq("/tmp/my_custom_location")
19
16
  end
20
- end
21
17
 
22
- describe ".traverse_folders_for_date" do
18
+ it "raises an error if the data location isn't set" do
19
+ Greenmonster.class_variable_set(:@@local_data_location, nil)
23
20
 
24
- it "yields each valid game folder (gid-format, not a backup) and the argument hash" do
25
- expect { |m|
26
- Greenmonster.traverse_folders_for_date(
27
- Date.new(2012,3,27), {sport_code: 'tst', other_arg: 1}, &m
28
- )
29
- }.to yield_successive_args(
30
- ["gid_2012_03_27_aaamlb_aabmlb_1", {sport_code: "tst", other_arg: 1}],
31
- ["gid_2012_03_27_bbbmlb_bbcmlb_1", {sport_code: "tst", other_arg: 1}]
32
- )
21
+ expect { Greenmonster.local_data_location }.
22
+ to raise_error(Greenmonster::NoLocalDataLocationSet)
33
23
  end
24
+ end
34
25
 
35
- it "does not throw an exception if no folder exists for the specified date" do
36
- expect {
37
- Greenmonster.traverse_folders_for_date(
38
- Date.new(1700,1,1), {sport_code: 'mlb'}
39
- )
40
- }.to_not raise_error
41
- end
26
+ describe ".set_local_data_location" do
27
+ it "sets the local folder for saved game data" do
28
+ Greenmonster.set_local_data_location("/tmp/my_custom_location")
42
29
 
30
+ expect(Greenmonster.local_data_location).to eq("/tmp/my_custom_location")
31
+ end
43
32
  end
44
-
45
- end
33
+ end
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ describe Greenmonster::InningsDownloader do
4
+ let(:downloader) { spy("FileDownloader") }
5
+
6
+ before do
7
+ allow(Greenmonster::FileDownloader).to receive(:new) { downloader }
8
+ end
9
+
10
+ describe "#pull" do
11
+ it "invokes a FileDownloader for each inning in the game" do
12
+ VCR.use_cassette "gid_2007_10_01_sdnmlb_colmlb_1/innings" do
13
+ described_class.new(
14
+ game_path:
15
+ "mlb/year_2007/month_10/day_01/gid_2007_10_01_sdnmlb_colmlb_1"
16
+ ).pull
17
+
18
+ (1..13).each do |inning|
19
+ expect(Greenmonster::FileDownloader).to have_received(:new).with(
20
+ game_path:
21
+ "mlb/year_2007/month_10/day_01/gid_2007_10_01_sdnmlb_colmlb_1",
22
+ file_name: "inning/inning_#{inning}.xml"
23
+ )
24
+ end
25
+ expect(downloader).to have_received(:pull).exactly(13).times
26
+ end
27
+ end
28
+
29
+ it "does not attempt to download innings that don't exist" do
30
+ VCR.use_cassette "gid_2007_10_01_sdnmlb_colmlb_1/innings" do
31
+ described_class.new(
32
+ game_path:
33
+ "mlb/year_2007/month_10/day_01/gid_2007_10_01_sdnmlb_colmlb_1"
34
+ ).pull
35
+
36
+ expect(Greenmonster::FileDownloader).not_to have_received(:new).with(
37
+ game_path:
38
+ "mlb/year_2007/month_10/day_01/gid_2007_10_01_sdnmlb_colmlb_1",
39
+ file_name: "inning/inning_14.xml"
40
+ )
41
+ end
42
+ end
43
+ end
44
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,25 +1,17 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # Require this file using `require "spec_helper"` to ensure that it is only
4
- # loaded once.
5
- #
6
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
- require 'rspec'
8
- require 'rspec/autorun'
9
- require 'greenmonster'
10
- require 'mocha/api'
11
- require 'bourne'
1
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
2
+ require "greenmonster"
3
+
4
+ Dir["./spec/support/**/*.rb"].each { |file| require file }
12
5
 
13
6
  RSpec.configure do |config|
14
- config.treat_symbols_as_metadata_keys_with_true_values = true
15
- config.run_all_when_everything_filtered = true
16
- config.filter_run :focus
7
+ config.include GreenmonsterPathHelpers
17
8
 
18
- # Run specs in random order to surface order dependencies. If you find an
19
- # order dependency and want to debug it, you can fix the order by providing
20
- # the seed, which is printed after each run.
21
- # --seed 1234
22
- config.order = 'random'
9
+ config.before(:all) do
10
+ create_tmp_directory
11
+ end
23
12
 
24
- config.mock_with :mocha
25
- end
13
+ config.before(:each) do
14
+ remove_games_directory
15
+ Greenmonster.set_local_data_location(tmp_path)
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ module GreenmonsterPathHelpers
2
+ def remove_games_directory
3
+ FileUtils.rm_rf(games_path)
4
+ end
5
+
6
+ def games_path
7
+ @games_path ||= Pathname.new("#{tmp_path}/games")
8
+ end
9
+
10
+ def create_tmp_directory
11
+ FileUtils.mkdir_p(tmp_path)
12
+ end
13
+
14
+ def tmp_path
15
+ @tmp_path ||= Pathname.new("#{root_path}/tmp")
16
+ end
17
+
18
+ def root_path
19
+ File.expand_path("../../../", __FILE__)
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ require "webmock/rspec"
2
+ require "vcr"
3
+
4
+ WebMock.disable_net_connect!(allow_localhost: true)
5
+
6
+ VCR.configure do |c|
7
+ c.allow_http_connections_when_no_cassette = false
8
+ c.cassette_library_dir = "spec/cassettes"
9
+ c.configure_rspec_metadata!
10
+ c.hook_into :webmock
11
+ end