greenmonster 0.4.0.dev → 0.5.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 (39) hide show
  1. data/.rspec +2 -0
  2. data/README.markdown +19 -52
  3. data/Rakefile +3 -0
  4. data/greenmonster.gemspec +12 -13
  5. data/lib/greenmonster.rb +47 -43
  6. data/lib/greenmonster/spider.rb +107 -142
  7. data/lib/greenmonster/version.rb +2 -2
  8. data/{test/games/mlb → spec/games/tst}/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
  9. data/{test/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1 → spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1_bak}/blank.txt +0 -0
  10. data/spec/games/tst/year_2012/month_03/day_27/not_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
  11. data/spec/greenmonster/spider_spec.rb +85 -0
  12. data/spec/greenmonster_spec.rb +45 -0
  13. data/spec/spec_helper.rb +25 -0
  14. metadata +52 -71
  15. data/lib/generators/greenmonster/install_mlb_games_generator.rb +0 -20
  16. data/lib/generators/greenmonster/install_players_generator.rb +0 -20
  17. data/lib/generators/templates/install_greenmonster_mlb_games_migration.rb +0 -54
  18. data/lib/generators/templates/install_greenmonster_players_migration.rb +0 -37
  19. data/lib/greenmonster/model_extensions/mlb_game.rb +0 -106
  20. data/lib/greenmonster/model_extensions/mlb_probable_pitcher.rb +0 -11
  21. data/lib/greenmonster/model_extensions/player.rb +0 -16
  22. data/lib/greenmonster/parser.rb +0 -27
  23. data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/boxscore.xml +0 -5
  24. data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/eventLog.xml +0 -1
  25. data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_all.xml +0 -1
  26. data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_hit.xml +0 -1
  27. data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/linescore.xml +0 -117
  28. data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/players.xml +0 -56
  29. data/test/test_create_mlb_game_from_gameday_xml_game.rb +0 -12
  30. data/test/test_create_players_from_gameday_xml_game.rb +0 -8
  31. data/test/test_greenmonster.rb +0 -12
  32. data/test/test_greenmonster_player.rb +0 -7
  33. data/test/test_greenmonster_spider.rb +0 -107
  34. data/test/test_greenmonster_traversal.rb +0 -31
  35. data/test/test_helper.rb +0 -78
  36. data/test/test_line_score.rb +0 -12
  37. data/test/test_parse_mlb_probable_pitchers_from_linescore_data.rb +0 -14
  38. data/test/test_parse_players_from_gameday_xml_files.rb +0 -21
  39. data/test/test_update_mlb_game_with_linescore_data.rb +0 -23
@@ -1,3 +1,3 @@
1
1
  module Greenmonster
2
- VERSION = "0.4.0.dev"
3
- end
2
+ VERSION = "0.5.0"
3
+ end
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+
3
+ describe Greenmonster::Spider do
4
+ before(:all) do
5
+ FileUtils.rm_r('spec/games/mlb')
6
+ Greenmonster.set_games_folder('spec/games')
7
+ @spider = Greenmonster::Spider.new
8
+ end
9
+
10
+ describe "#pull_days" do
11
+ it "calls #pull_day for each date in the supplied range" do
12
+ @spider.stubs(pull_day: nil)
13
+
14
+ @spider.pull_days(Date.new(2012,1,1)..Date.new(2012,1,3), {arg: 123})
15
+
16
+ @spider.should have_received(:pull_day).with(Date.new(2012,1,1), {arg: 123})
17
+ @spider.should have_received(:pull_day).with(Date.new(2012,1,2), {arg: 123})
18
+ @spider.should have_received(:pull_day).with(Date.new(2012,1,3), {arg: 123})
19
+ end
20
+ end
21
+
22
+ describe "#pull_day" do
23
+ before(:each) do
24
+ @spider.stubs(
25
+ game_links_on_gameday_date_page: ['gid_2012_03_27_aaamlb_aabmlb_1', 'gid_2012_03_27_bbbmlb_bbcmlb_1'],
26
+ pull_game: true
27
+ )
28
+ end
29
+
30
+ it "calls #game_links_on_gameday_date_page with the date and sport code" do
31
+ @spider.pull_day(Date.new(2012,3,27), 'mlb')
32
+
33
+ @spider.should have_received(:game_links_on_gameday_date_page).with(
34
+ Date.new(2012,3,27),
35
+ 'mlb'
36
+ )
37
+ end
38
+
39
+ it "calls #pull_game for each game link on the page" do
40
+ @spider.pull_day(Date.new(2012,3,27), 'mlb')
41
+
42
+ @spider.should have_received(:pull_game).with(
43
+ 'gid_2012_03_27_aaamlb_aabmlb_1',
44
+ Date.new(2012,3,27)
45
+ )
46
+
47
+ @spider.should have_received(:pull_game).with(
48
+ 'gid_2012_03_27_bbbmlb_bbcmlb_1',
49
+ Date.new(2012,3,27)
50
+ )
51
+ end
52
+ end
53
+
54
+ describe "#pull_game" do
55
+ context "when all files are present on mlb.com server" do
56
+ before(:all) do
57
+ @spider.pull_game('gid_2012_09_10_atlmlb_milmlb_1', Date.new(2012,9,10))
58
+ @local_path = Pathname.new(
59
+ './spec/games/mlb/year_2012/month_09/day_10/gid_2012_09_10_atlmlb_milmlb_1'
60
+ )
61
+ end
62
+
63
+ it "downloads boxscore.xml for the game" do
64
+ (@local_path + 'boxscore.xml').exist?.should be_true
65
+ end
66
+
67
+ it "downloads game_events.xml for the game" do
68
+ (@local_path + 'game_events.xml').exist?.should be_true
69
+ end
70
+
71
+ it "downloads linescore.xml for the game" do
72
+ (@local_path + 'linescore.xml').exist?.should be_true
73
+ end
74
+
75
+ it "downloads players.xml for the game" do
76
+ (@local_path + 'players.xml').exist?.should be_true
77
+ end
78
+
79
+ it "downloads the inning files for the games in 2007 or later" do
80
+ (@local_path + 'inning' + 'inning_all.xml').exist?.should be_true
81
+ end
82
+ end
83
+ end
84
+
85
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Greenmonster do
4
+
5
+ before(:all) do
6
+ Greenmonster.set_games_folder("spec/games")
7
+ end
8
+
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}]
18
+ )
19
+ end
20
+ end
21
+
22
+ describe ".traverse_folders_for_date" do
23
+
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
+ )
33
+ end
34
+
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
42
+
43
+ end
44
+
45
+ end
@@ -0,0 +1,25 @@
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'
12
+
13
+ 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
17
+
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'
23
+
24
+ config.mock_with :mocha
25
+ end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greenmonster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.dev
5
- prerelease: 6
4
+ version: 0.5.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Geoff Harcourt
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-15 00:00:00.000000000 Z
12
+ date: 2013-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70241678952940 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70241678952940
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: httparty
27
- requirement: &70241678952520 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,21 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70241678952520
36
- - !ruby/object:Gem::Dependency
37
- name: activerecord
38
- requirement: &70241678952100 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
39
41
  none: false
40
42
  requirements:
41
43
  - - ! '>='
42
44
  - !ruby/object:Gem::Version
43
45
  version: '0'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: *70241678952100
47
46
  - !ruby/object:Gem::Dependency
48
- name: minitest
49
- requirement: &70241678951680 !ruby/object:Gem::Requirement
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
50
49
  none: false
51
50
  requirements:
52
51
  - - ! '>='
@@ -54,10 +53,15 @@ dependencies:
54
53
  version: '0'
55
54
  type: :development
56
55
  prerelease: false
57
- version_requirements: *70241678951680
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
58
62
  - !ruby/object:Gem::Dependency
59
- name: supermodel
60
- requirement: &70241678951260 !ruby/object:Gem::Requirement
63
+ name: bourne
64
+ requirement: !ruby/object:Gem::Requirement
61
65
  none: false
62
66
  requirements:
63
67
  - - ! '>='
@@ -65,10 +69,15 @@ dependencies:
65
69
  version: '0'
66
70
  type: :development
67
71
  prerelease: false
68
- version_requirements: *70241678951260
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
- name: sqlite3-ruby
71
- requirement: &70241678950840 !ruby/object:Gem::Requirement
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
72
81
  none: false
73
82
  requirements:
74
83
  - - ! '>='
@@ -76,7 +85,12 @@ dependencies:
76
85
  version: '0'
77
86
  type: :development
78
87
  prerelease: false
79
- version_requirements: *70241678950840
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
80
94
  description: A utility for working with MLB Gameday XML data.
81
95
  email:
82
96
  - geoff.harcourt@gmail.com
@@ -85,6 +99,7 @@ extensions: []
85
99
  extra_rdoc_files: []
86
100
  files:
87
101
  - .gitignore
102
+ - .rspec
88
103
  - CHANGELOG.markdown
89
104
  - Gemfile
90
105
  - README.markdown
@@ -140,36 +155,15 @@ files:
140
155
  - doc/rdoc.css
141
156
  - doc/table_of_contents.html
142
157
  - greenmonster.gemspec
143
- - lib/generators/greenmonster/install_mlb_games_generator.rb
144
- - lib/generators/greenmonster/install_players_generator.rb
145
- - lib/generators/templates/install_greenmonster_mlb_games_migration.rb
146
- - lib/generators/templates/install_greenmonster_players_migration.rb
147
158
  - lib/greenmonster.rb
148
- - lib/greenmonster/model_extensions/mlb_game.rb
149
- - lib/greenmonster/model_extensions/mlb_probable_pitcher.rb
150
- - lib/greenmonster/model_extensions/player.rb
151
- - lib/greenmonster/parser.rb
152
159
  - lib/greenmonster/spider.rb
153
160
  - lib/greenmonster/version.rb
154
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/boxscore.xml
155
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/eventLog.xml
156
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_all.xml
157
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_hit.xml
158
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/linescore.xml
159
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/players.xml
160
- - test/games/mlb/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt
161
- - test/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt
162
- - test/test_create_mlb_game_from_gameday_xml_game.rb
163
- - test/test_create_players_from_gameday_xml_game.rb
164
- - test/test_greenmonster.rb
165
- - test/test_greenmonster_player.rb
166
- - test/test_greenmonster_spider.rb
167
- - test/test_greenmonster_traversal.rb
168
- - test/test_helper.rb
169
- - test/test_line_score.rb
170
- - test/test_parse_mlb_probable_pitchers_from_linescore_data.rb
171
- - test/test_parse_players_from_gameday_xml_files.rb
172
- - test/test_update_mlb_game_with_linescore_data.rb
161
+ - spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt
162
+ - spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1_bak/blank.txt
163
+ - spec/games/tst/year_2012/month_03/day_27/not_2012_03_27_aaamlb_aabmlb_1/blank.txt
164
+ - spec/greenmonster/spider_spec.rb
165
+ - spec/greenmonster_spec.rb
166
+ - spec/spec_helper.rb
173
167
  homepage: http://github.com/geoffharcourt/greenmonster
174
168
  licenses: []
175
169
  post_install_message:
@@ -185,32 +179,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
179
  required_rubygems_version: !ruby/object:Gem::Requirement
186
180
  none: false
187
181
  requirements:
188
- - - ! '>'
182
+ - - ! '>='
189
183
  - !ruby/object:Gem::Version
190
- version: 1.3.1
184
+ version: '0'
191
185
  requirements: []
192
186
  rubyforge_project:
193
- rubygems_version: 1.8.11
187
+ rubygems_version: 1.8.24
194
188
  signing_key:
195
189
  specification_version: 3
196
190
  summary: A utility for working with MLB Gameday XML data.
197
191
  test_files:
198
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/boxscore.xml
199
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/eventLog.xml
200
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_all.xml
201
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_hit.xml
202
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/linescore.xml
203
- - test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/players.xml
204
- - test/games/mlb/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt
205
- - test/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt
206
- - test/test_create_mlb_game_from_gameday_xml_game.rb
207
- - test/test_create_players_from_gameday_xml_game.rb
208
- - test/test_greenmonster.rb
209
- - test/test_greenmonster_player.rb
210
- - test/test_greenmonster_spider.rb
211
- - test/test_greenmonster_traversal.rb
212
- - test/test_helper.rb
213
- - test/test_line_score.rb
214
- - test/test_parse_mlb_probable_pitchers_from_linescore_data.rb
215
- - test/test_parse_players_from_gameday_xml_files.rb
216
- - test/test_update_mlb_game_with_linescore_data.rb
192
+ - spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1/blank.txt
193
+ - spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1_bak/blank.txt
194
+ - spec/games/tst/year_2012/month_03/day_27/not_2012_03_27_aaamlb_aabmlb_1/blank.txt
195
+ - spec/greenmonster/spider_spec.rb
196
+ - spec/greenmonster_spec.rb
197
+ - spec/spec_helper.rb
@@ -1,20 +0,0 @@
1
- module Greenmonster
2
- module Generators
3
- class InstallMlbGamesGenerator < Rails::Generators::Base
4
- include Rails::Generators::Migration
5
- source_root File.expand_path('../../templates', __FILE__)
6
-
7
- def self.next_migration_number(dirname)
8
- if ActiveRecord::Base.timestamped_migrations
9
- Time.new.utc.strftime("%Y%m%d%H%M%S")
10
- else
11
- "%.3d" % (current_migration_number(dirname) + 1)
12
- end
13
- end
14
-
15
- def create_migration_file
16
- migration_template 'install_greenmonster_mlb_games_migration.rb', 'db/migrate/install_greenmonster_mlb_games.rb'
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- module Greenmonster
2
- module Generators
3
- class InstallPlayersGenerator < Rails::Generators::Base
4
- include Rails::Generators::Migration
5
- source_root File.expand_path('../../templates', __FILE__)
6
-
7
- def self.next_migration_number(dirname)
8
- if ActiveRecord::Base.timestamped_migrations
9
- Time.new.utc.strftime("%Y%m%d%H%M%S")
10
- else
11
- "%.3d" % (current_migration_number(dirname) + 1)
12
- end
13
- end
14
-
15
- def create_migration_file
16
- migration_template 'install_greenmonster_players_migration.rb', 'db/migrate/install_greenmonster_players.rb'
17
- end
18
- end
19
- end
20
- end
@@ -1,54 +0,0 @@
1
- class InstallGreenmonsterMlbGames < ActiveRecord::Migration
2
- def self.up
3
- create_table "mlb_games", :force => true do |t|
4
- t.date "date"
5
- t.datetime "created_at"
6
- t.datetime "updated_at"
7
- t.string "away_division"
8
- t.string "home_division"
9
- t.string "game_id"
10
- t.string "game_location"
11
- t.integer "game_num"
12
- t.integer "game_pk"
13
- t.string "game_status", :limit => 2
14
- t.datetime "game_time"
15
- t.boolean "game_time_is_tbd"
16
- t.integer "game_time_offset_eastern"
17
- t.integer "game_time_offset_local"
18
- t.string "game_type", :limit => 1
19
- t.string "game_venue"
20
- t.boolean "is_suspension_resumption"
21
- t.boolean "mlbtv"
22
- t.string "preview"
23
- t.integer "resumptionTime", :limit => 8
24
- t.datetime "scheduledTime"
25
- t.string "sport_code", :limit => 3
26
- t.integer "venue_id"
27
- t.string "video_uri"
28
- t.string "wrapup"
29
- t.boolean "game_dh"
30
- t.integer "away_team_id"
31
- t.integer "home_team_id"
32
- t.integer "away_league_id"
33
- t.integer "home_league_id"
34
- t.string "away_sport_code"
35
- t.string "home_sport_code"
36
- t.integer "last_event_processed"
37
- end
38
-
39
- add_index "mlb_games", ["away_league_id"], :name => "mlb_games-away_league_id"
40
- add_index "mlb_games", ["away_team_id"], :name => "mlb_games-away_team_id"
41
- add_index "mlb_games", ["date"], :name => "mlb_games-date"
42
- add_index "mlb_games", ["game_id", "game_type"], :name => "mlb_games-game_id-game_type"
43
- add_index "mlb_games", ["game_id"], :name => "mlb_games-game_id"
44
- add_index "mlb_games", ["game_pk"], :name => "mlb_games-game_pk", :unique => true
45
- add_index "mlb_games", ["home_division"], :name => "mlb_games-division_id"
46
- add_index "mlb_games", ["home_league_id"], :name => "mlb_games-home_league_id"
47
- add_index "mlb_games", ["home_team_id"], :name => "mlb_games-home_team_id"
48
- add_index "mlb_games", ["venue_id"], :name => "mlb_games-venue_id"
49
- end
50
-
51
- def self.down
52
- drop_table :mlb_games
53
- end
54
- end