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,31 +0,0 @@
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
@@ -1,78 +0,0 @@
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
@@ -1,12 +0,0 @@
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
@@ -1,14 +0,0 @@
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
@@ -1,21 +0,0 @@
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
@@ -1,23 +0,0 @@
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