greenmonster 0.4.0.dev → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/README.markdown +19 -52
- data/Rakefile +3 -0
- data/greenmonster.gemspec +12 -13
- data/lib/greenmonster.rb +47 -43
- data/lib/greenmonster/spider.rb +107 -142
- data/lib/greenmonster/version.rb +2 -2
- data/{test/games/mlb → spec/games/tst}/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 → spec/games/tst/year_2012/month_03/day_27/gid_2012_03_27_aaamlb_aabmlb_1_bak}/blank.txt +0 -0
- data/spec/games/tst/year_2012/month_03/day_27/not_2012_03_27_aaamlb_aabmlb_1/blank.txt +0 -0
- data/spec/greenmonster/spider_spec.rb +85 -0
- data/spec/greenmonster_spec.rb +45 -0
- data/spec/spec_helper.rb +25 -0
- metadata +52 -71
- data/lib/generators/greenmonster/install_mlb_games_generator.rb +0 -20
- data/lib/generators/greenmonster/install_players_generator.rb +0 -20
- data/lib/generators/templates/install_greenmonster_mlb_games_migration.rb +0 -54
- data/lib/generators/templates/install_greenmonster_players_migration.rb +0 -37
- data/lib/greenmonster/model_extensions/mlb_game.rb +0 -106
- data/lib/greenmonster/model_extensions/mlb_probable_pitcher.rb +0 -11
- data/lib/greenmonster/model_extensions/player.rb +0 -16
- data/lib/greenmonster/parser.rb +0 -27
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/boxscore.xml +0 -5
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/eventLog.xml +0 -1
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_all.xml +0 -1
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/inning/inning_hit.xml +0 -1
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/linescore.xml +0 -117
- data/test/games/mlb/year_2011/month_07/day_04/gid_2011_07_04_tormlb_bosmlb_1/players.xml +0 -56
- data/test/test_create_mlb_game_from_gameday_xml_game.rb +0 -12
- data/test/test_create_players_from_gameday_xml_game.rb +0 -8
- data/test/test_greenmonster.rb +0 -12
- data/test/test_greenmonster_player.rb +0 -7
- data/test/test_greenmonster_spider.rb +0 -107
- data/test/test_greenmonster_traversal.rb +0 -31
- data/test/test_helper.rb +0 -78
- data/test/test_line_score.rb +0 -12
- data/test/test_parse_mlb_probable_pitchers_from_linescore_data.rb +0 -14
- data/test/test_parse_players_from_gameday_xml_files.rb +0 -21
- 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
|
data/test/test_helper.rb
DELETED
@@ -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
|
data/test/test_line_score.rb
DELETED
@@ -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
|