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.
- 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
|