sportdb 1.9.2 → 1.9.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -69,11 +69,11 @@ lib/sportdb/readers/event.rb
69
69
  lib/sportdb/readers/game.rb
70
70
  lib/sportdb/readers/ground.rb
71
71
  lib/sportdb/readers/league.rb
72
- lib/sportdb/readers/national_team.rb
73
72
  lib/sportdb/readers/race.rb
74
73
  lib/sportdb/readers/race_team.rb
75
74
  lib/sportdb/readers/record.rb
76
75
  lib/sportdb/readers/season.rb
76
+ lib/sportdb/readers/squad.rb
77
77
  lib/sportdb/readers/team.rb
78
78
  lib/sportdb/readers/track.rb
79
79
  lib/sportdb/schema.rb
@@ -130,6 +130,8 @@ test/data/world-cup/2014/cup.txt
130
130
  test/data/world-cup/2014/cup.yml
131
131
  test/data/world-cup/2014/squads/br-brazil.txt
132
132
  test/data/world-cup/2014/squads/de-deutschland.txt
133
+ test/data/world-cup/2014/squads/jp-japan.txt
134
+ test/data/world-cup/2014/squads/uy-uruguay.txt
133
135
  test/data/world-cup/leagues.txt
134
136
  test/data/world-cup/seasons_1930.txt
135
137
  test/data/world-cup/seasons_1954.txt
@@ -147,13 +149,13 @@ test/test_date.rb
147
149
  test/test_goals.rb
148
150
  test/test_lang.rb
149
151
  test/test_load.rb
150
- test/test_national_team_reader.rb
151
152
  test/test_reader.rb
152
153
  test/test_reader_from_string.rb
153
154
  test/test_round_auto.rb
154
155
  test/test_round_def.rb
155
156
  test/test_round_header.rb
156
157
  test/test_scores.rb
158
+ test/test_squad_reader.rb
157
159
  test/test_standings.rb
158
160
  test/test_utils.rb
159
161
  test/test_winner.rb
@@ -102,8 +102,8 @@ require 'sportdb/readers/league'
102
102
  require 'sportdb/readers/race'
103
103
  require 'sportdb/readers/record'
104
104
  require 'sportdb/readers/race_team'
105
- require 'sportdb/readers/national_team'
106
105
  require 'sportdb/readers/season'
106
+ require 'sportdb/readers/squad' # roster
107
107
  require 'sportdb/readers/team'
108
108
  require 'sportdb/readers/track'
109
109
  require 'sportdb/reader'
@@ -101,10 +101,26 @@ class Reader
101
101
  elsif name =~ /\/squads\/([a-z]{2,3})-[^\/]+$/
102
102
  ## fix: add to country matcher new format
103
103
  ## name is country! and parent folder is type name e.g. /squads/br-brazil
104
- country = Country.find_by_key!( $1 )
105
- reader = NationalTeamReader.new( include_path )
104
+
105
+ # note: if two letters, assume country key
106
+ # if three letters, assume team key
107
+
108
+ ## allow three letter codes
109
+ ## assume three letter code are *team* codes (e.g. fdr, gdr, etc)
110
+ ## not country code (allows multiple teams per country)
111
+
112
+ if $1.length == 2
113
+ country = Country.find_by_key!( $1 )
114
+ ### for now assume country code matches team for now (do NOT forget to downcase e.g. BRA==bra)
115
+ logger.info " assume country code == team code for #{country.code}"
116
+ team = Team.find_by_key!( country.code.downcase )
117
+ else # assume length == 3
118
+ team = Team.find_by_key!( $1 )
119
+ end
120
+
121
+ reader = SquadReader.new( include_path )
106
122
  ## note: pass in @event.id - that is, last seen event (e.g. parsed via GameReader/MatchReader)
107
- reader.read( name, country_id: country.id, event_id: @event.id )
123
+ reader.read( name, team_id: team.id, event_id: @event.id )
108
124
  elsif name =~ /\/squads/ || name =~ /\/rosters/ # e.g. 2013/squads.txt in formula1.db
109
125
  reader = RaceTeamReader.new( include_path )
110
126
  reader.read( name )
@@ -1,10 +1,13 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ ### fix: change/rename file to squads.rb !!!
4
+
5
+
3
6
  module SportDb
4
7
 
8
+ ### squad/roster reader for national teams for now
5
9
 
6
- ### squad/roster reader for national teams
7
- class NationalTeamReader
10
+ class SquadReader
8
11
 
9
12
  include LogUtils::Logging
10
13
 
@@ -27,6 +30,9 @@ class NationalTeamReader
27
30
 
28
31
 
29
32
  def read( name, more_attribs={} )
33
+ ## note:
34
+ # event_id and team_id required!!
35
+
30
36
  ## todo: move name_real_path code to LineReaderV2 ????
31
37
  pos = name.index( '!/')
32
38
  if pos.nil?
@@ -46,29 +52,21 @@ class NationalTeamReader
46
52
  @event = Event.find( more_attribs[:event_id] )
47
53
  pp @event
48
54
 
49
- ## check/fix:
50
- ## allow three letter codes
51
- ## assume three letter code are *team* codes (e.g. fdr, gdr, etc)
52
- ## not country code (allows multiple teams per country)
53
-
54
- ### check for country_id
55
- ## fix: check for country_key - allow (convert to country_id)
56
-
57
- country = Country.find( more_attribs[:country_id] )
58
- logger.info " find national team squad/lineup for #{country.name}"
59
-
60
- ## todo/fix: find national team for country - use event.teams w/ where country.id ??
61
- ### for now assume country code matches team for now (do NOT forget to downcase e.g. BRA==bra)
62
- logger.info " assume country code == team code for #{country.code}"
63
-
64
55
  ## note: use @team - share/use in worker method
65
- @team = Team.find_by_key!( country.code.downcase )
56
+ @team = Team.find( more_attribs[:team_id] )
66
57
  pp @team
67
58
 
68
59
  ### SportDb.lang.lang = LangChecker.new.analyze( name, include_path )
69
60
 
70
61
  reader = LineReader.new( path )
71
62
 
63
+
64
+ ##########
65
+ # fix: lookup table for now assumes national team
66
+ # make it usable for clubs too etc.
67
+ country = @team.country
68
+ pp country
69
+
72
70
  logger.info " persons count for country: #{country.persons.count}"
73
71
  @known_persons = TextUtils.build_title_table_for( country.persons )
74
72
 
@@ -80,6 +78,9 @@ class NationalTeamReader
80
78
 
81
79
 
82
80
  def read_worker( reader )
81
+ ##
82
+ ## fix: use num (optional) for offical jersey number
83
+ # use pos for internal use only (ordering)
83
84
 
84
85
  pos_counter = 999000 # pos counter for undefined players w/o pos
85
86
 
@@ -95,22 +96,48 @@ class NationalTeamReader
95
96
  pos = pos_counter
96
97
  end
97
98
 
99
+ #####
100
+ # - for now do NOT map team
98
101
  # map_team!( line )
99
102
  # team_key = find_team!( line )
100
103
  # team = Team.find_by_key!( team_key )
101
104
 
102
105
  map_person!( line )
103
106
  person_key = find_person!( line )
104
-
105
- person = Person.find_by_key( person_key )
106
107
 
107
108
  logger.debug " line2: >#{line}<"
108
109
 
109
- if person.nil?
110
- logger.error " !!!!!! no mapping found for player in line >#{line}< for team #{@team.code} - #{@team.title}"
111
- next ## skip further processing of line; can NOT save w/o person; continue w/ next record
112
- end
110
+ if person_key.nil?
111
+ ## no person match found; try auto-add person
112
+ logger.info " !! no player match found; try auto-create player"
113
+
114
+ buf = line.clone
115
+ # remove (single match) if line starts w/ - (allow spaces) e.g. | - or |- note: must start line e.g. anchor ^ used
116
+ buf = buf.sub( /^[ ]*-[ ]*/, '' )
117
+ buf = buf.gsub( /\[[^\]]+\]/, '' ) # remove [POS] or similar
118
+ buf = buf.gsub( /\b(GK|DF|MF|FW)\b/, '' ) # remove position marker - use sub (just single marker?)
119
+ buf = buf.strip # remove leading and trailing spaces
120
+
121
+ ## assume what's left is player name
122
+ logger.info " player_name >#{buf}<"
123
+
124
+ ## fix: add auto flag (for auto-created persons/players)
125
+ ## fix: move title_to_key logic to person model etc.
126
+ person_attribs = {
127
+ key: TextUtils.title_to_key( buf ),
128
+ title: buf
129
+ }
130
+ logger.info " using attribs: #{person_attribs.inspect}"
131
+
132
+ person = Person.create!( person_attribs )
133
+ else
134
+ person = Person.find_by_key( person_key )
113
135
 
136
+ if person.nil?
137
+ logger.error " !!!!!! no mapping found for player in line >#{line}< for team #{@team.code} - #{@team.title}"
138
+ next ## skip further processing of line; can NOT save w/o person; continue w/ next record
139
+ end
140
+ end
114
141
 
115
142
 
116
143
  ### check if roster record exists
@@ -138,5 +165,5 @@ class NationalTeamReader
138
165
  end # method read_worker
139
166
 
140
167
 
141
- end # class NationTeamReader
168
+ end # class SquadReader
142
169
  end # module SportDb
@@ -1,6 +1,6 @@
1
1
 
2
2
  module SportDb
3
- VERSION = '1.9.2'
3
+ VERSION = '1.9.3'
4
4
  end
5
5
 
6
6
 
@@ -0,0 +1,30 @@
1
+ #######
2
+ # note: players NOT in players database; will get auto-created for testing
3
+ #
4
+
5
+ (1) GK Eiji Kawashima ## 56, Standard Liège (BEL)
6
+ (12) GK Shusaku Nishikawa ## 12, Urawa Red Diamonds (JPN)
7
+ (23) GK Shūichi Gonda ## 2, F.C. Tokyo (JPN)
8
+
9
+ (2) DF Atsuto Uchida ## 67, Schalke 04 (GER)
10
+ (3) DF Gōtoku Sakai ## 12, VfB Stuttgart (GER)
11
+ (5) DF Yuto Nagatomo ## 69, Internazionale (ITA)
12
+ (6) DF Masato Morishige ## 9, F.C. Tokyo (JPN)
13
+ (15) DF Yasuyuki Konno ## 80, Gamba Osaka (JPN)
14
+ (19) DF Masahiko Inoha ## 21, Jubilo Iwata (JPN)
15
+ (21) DF Hiroki Sakai ## 17, Hannover 96 (GER)
16
+ (22) DF Maya Yoshida ## 40, Southampton (ENG)
17
+
18
+ (4) MF Keisuke Honda ## 55, Milan (ITA)
19
+ (7) MF Yasuhito Endō ## 143, Gamba Osaka (JPN)
20
+ (8) MF Hiroshi Kiyotake ## 25, 1. FC Nürnberg (GER)
21
+ (10) MF Shinji Kagawa ## 56, Manchester United (ENG)
22
+ (14) MF Toshihiro Aoyama ## 5, Sanfrecce Hiroshima (JPN)
23
+ (16) MF Hotaru Yamaguchi ## 11, Cerezo Osaka (JPN)
24
+ (17) MF Makoto Hasebe ## 78, 1. FC Nürnberg (GER)
25
+
26
+ (9) FW Shinji Okazaki ## 75, Mainz 05 (GER)
27
+ (11) FW Yoichiro Kakitani ## 11, Cerezo Osaka (JPN)
28
+ (13) FW Yoshito Ōkubo ## 56, Kawasaki Frontale (JPN)
29
+ (18) FW Yuya Osako ## 8, 1860 München (GER)
30
+ (20) FW Manabu Saitō ## 4, Yokohama F. Marinos (JPN)
@@ -0,0 +1,32 @@
1
+ #######
2
+ # note: try without (w/o) jersey number e.g. use - instead of (1) (12) etc.
3
+ # - players NOT in players database; will get auto-created for testing
4
+
5
+
6
+ - GK Fernando Muslera ## 57, Galatasaray (TUR)
7
+ - GK Rodrigo Muñoz ## 0, Libertad (PAR)
8
+ - GK Martín Silva ## 4, Vasco da Gama (BRA)
9
+
10
+ - DF Diego Lugano ## 93, West Bromwich Albion (ENG)
11
+ - DF Diego Godín ## 76, Atlético Madrid (ESP)
12
+ - DF Sebastián Coates ## 14, Nacional (URU)
13
+ - DF Jorge Fucile ## 41, Porto (POR)
14
+ - DF Maxi Pereira ## 89, Benfica (POR)
15
+ - DF José María Giménez ## 5, Atlético Madrid (ESP)
16
+ - DF Martín Cáceres ## 56, Juventus (ITA)
17
+
18
+ - MF Walter Gargano ## 62, Parma (ITA)
19
+ - MF Álvaro Pereira ## 56, São Paulo (BRA)
20
+ - MF Cristian Rodríguez ## 72, Atlético Madrid (ESP)
21
+ - MF Nicolás Lodeiro ## 26, Botafogo (BRA)
22
+ - MF Diego Pérez ## 89, Bologna (ITA)
23
+ - MF Egidio Arévalo Ríos ## 54, Morelia (MEX)
24
+ - MF Gastón Ramírez ## 28, Southampton (ENG)
25
+ - MF Álvaro González ## 42, Lazio (ITA)
26
+
27
+ - FW Abel Hernández ## 12, Palermo (ITA)
28
+ - FW Luis Suárez ## 77, Liverpool (ENG)
29
+ - FW Diego Forlán ## 109, Cerezo Osaka (JPN)
30
+ - FW Christian Stuani ## 9, Espanyol (ESP)
31
+ - FW Edinson Cavani ## 61, Paris Saint-Germain (FRA)
32
+
@@ -52,7 +52,7 @@ SeasonReader = SportDb::SeasonReader
52
52
  LeagueReader = SportDb::LeagueReader
53
53
  EventReader = SportDb::EventReader
54
54
  GameReader = SportDb::GameReader
55
- NationalTeamReader = SportDb::NationalTeamReader
55
+ SquadReader = SportDb::SquadReader
56
56
  RaceTeamReader = SportDb::RaceTeamReader
57
57
 
58
58
  PersonReader = PersonDb::PersonReader
@@ -2,14 +2,14 @@
2
2
 
3
3
  ###
4
4
  # to run use
5
- # ruby -I ./lib -I ./test test/test_national_team_reader.rb
5
+ # ruby -I ./lib -I ./test test/test_squad_reader.rb
6
6
  # or better
7
7
  # rake -I ./lib test
8
8
 
9
9
 
10
10
  require 'helper'
11
11
 
12
- class TestNationalTeamReader < MiniTest::Unit::TestCase
12
+ class TestSquadReader < MiniTest::Unit::TestCase
13
13
 
14
14
  def setup
15
15
  WorldDb.delete!
@@ -50,8 +50,8 @@ class TestNationalTeamReader < MiniTest::Unit::TestCase
50
50
 
51
51
  event = Event.find_by_key!( 'world.2014' )
52
52
 
53
- reader = NationalTeamReader.new( SportDb.test_data_path )
54
- reader.read( 'world-cup/2014/squads/br-brazil', country_id: br.id, event_id: event.id )
53
+ reader = SquadReader.new( SportDb.test_data_path )
54
+ reader.read( 'world-cup/2014/squads/br-brazil', team_id: bra.id, event_id: event.id )
55
55
 
56
56
  assert_equal 23, Roster.count
57
57
  end # method test_br
@@ -70,11 +70,47 @@ class TestNationalTeamReader < MiniTest::Unit::TestCase
70
70
 
71
71
  event = Event.find_by_key!( 'world.2014' )
72
72
 
73
- reader = NationalTeamReader.new( SportDb.test_data_path )
74
- reader.read( 'world-cup/2014/squads/de-deutschland', country_id: de.id, event_id: event.id )
73
+ reader = SquadReader.new( SportDb.test_data_path )
74
+ reader.read( 'world-cup/2014/squads/de-deutschland', team_id: ger.id, event_id: event.id )
75
75
 
76
76
  assert_equal 3, Roster.count
77
77
  end # method test_de
78
78
 
79
79
 
80
- end # class TestNationalTeamReader
80
+ def test_uy
81
+ uy = Country.create!( key: 'uy', title: 'Uruguay', code: 'URU', pop: 1, area: 1)
82
+
83
+ assert_equal 0, Person.count
84
+ assert_equal 0, Roster.count
85
+
86
+ uru = Team.create!( key: 'uru', title: 'Uruguay', code: 'URU', country_id: uy.id )
87
+
88
+ event = Event.find_by_key!( 'world.2014' )
89
+
90
+ reader = SquadReader.new( SportDb.test_data_path )
91
+ reader.read( 'world-cup/2014/squads/uy-uruguay', team_id: uru.id, event_id: event.id )
92
+
93
+ assert_equal 23, Roster.count
94
+ assert_equal 23, Person.count
95
+ end # method test_uy
96
+
97
+
98
+ def test_jp
99
+ jp = Country.create!( key: 'jp', title: 'Japan', code: 'JPN', pop: 1, area: 1)
100
+
101
+ assert_equal 0, Person.count
102
+ assert_equal 0, Roster.count
103
+
104
+ jpn = Team.create!( key: 'jpn', title: 'Japan', code: 'JPN', country_id: jp.id )
105
+
106
+ event = Event.find_by_key!( 'world.2014' )
107
+
108
+ reader = SquadReader.new( SportDb.test_data_path )
109
+ reader.read( 'world-cup/2014/squads/jp-japan', team_id: jpn.id, event_id: event.id )
110
+
111
+ assert_equal 23, Roster.count
112
+ assert_equal 23, Person.count
113
+ end # method test_jp
114
+
115
+
116
+ end # class TestSquadReader
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.2
4
+ version: 1.9.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-28 00:00:00.000000000 Z
12
+ date: 2014-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: props
16
- requirement: &72505740 !ruby/object:Gem::Requirement
16
+ requirement: &77222090 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *72505740
24
+ version_requirements: *77222090
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: logutils
27
- requirement: &72505490 !ruby/object:Gem::Requirement
27
+ requirement: &77221830 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *72505490
35
+ version_requirements: *77221830
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: textutils
38
- requirement: &72505260 !ruby/object:Gem::Requirement
38
+ requirement: &77221580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *72505260
46
+ version_requirements: *77221580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: worlddb
49
- requirement: &72521250 !ruby/object:Gem::Requirement
49
+ requirement: &77221170 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.0.2
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *72521250
57
+ version_requirements: *77221170
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: tagutils
60
- requirement: &72520820 !ruby/object:Gem::Requirement
60
+ requirement: &77220840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *72520820
68
+ version_requirements: *77220840
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: persondb
71
- requirement: &72520360 !ruby/object:Gem::Requirement
71
+ requirement: &77220610 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *72520360
79
+ version_requirements: *77220610
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: activerecord-utils
82
- requirement: &72519880 !ruby/object:Gem::Requirement
82
+ requirement: &77220380 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *72519880
90
+ version_requirements: *77220380
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: fetcher
93
- requirement: &72518680 !ruby/object:Gem::Requirement
93
+ requirement: &77220110 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0.3'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *72518680
101
+ version_requirements: *77220110
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: gli
104
- requirement: &72517660 !ruby/object:Gem::Requirement
104
+ requirement: &77219890 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 2.5.6
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *72517660
112
+ version_requirements: *77219890
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: activerecord
115
- requirement: &72516940 !ruby/object:Gem::Requirement
115
+ requirement: &77219700 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *72516940
123
+ version_requirements: *77219700
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rdoc
126
- requirement: &72516180 !ruby/object:Gem::Requirement
126
+ requirement: &77219450 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '4.0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *72516180
134
+ version_requirements: *77219450
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: hoe
137
- requirement: &72514980 !ruby/object:Gem::Requirement
137
+ requirement: &77219100 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '3.11'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *72514980
145
+ version_requirements: *77219100
146
146
  description: sportdb - sport.db command line tool
147
147
  email: opensport@googlegroups.com
148
148
  executables:
@@ -224,11 +224,11 @@ files:
224
224
  - lib/sportdb/readers/game.rb
225
225
  - lib/sportdb/readers/ground.rb
226
226
  - lib/sportdb/readers/league.rb
227
- - lib/sportdb/readers/national_team.rb
228
227
  - lib/sportdb/readers/race.rb
229
228
  - lib/sportdb/readers/race_team.rb
230
229
  - lib/sportdb/readers/record.rb
231
230
  - lib/sportdb/readers/season.rb
231
+ - lib/sportdb/readers/squad.rb
232
232
  - lib/sportdb/readers/team.rb
233
233
  - lib/sportdb/readers/track.rb
234
234
  - lib/sportdb/schema.rb
@@ -285,6 +285,8 @@ files:
285
285
  - test/data/world-cup/2014/cup.yml
286
286
  - test/data/world-cup/2014/squads/br-brazil.txt
287
287
  - test/data/world-cup/2014/squads/de-deutschland.txt
288
+ - test/data/world-cup/2014/squads/jp-japan.txt
289
+ - test/data/world-cup/2014/squads/uy-uruguay.txt
288
290
  - test/data/world-cup/leagues.txt
289
291
  - test/data/world-cup/seasons_1930.txt
290
292
  - test/data/world-cup/seasons_1954.txt
@@ -302,13 +304,13 @@ files:
302
304
  - test/test_goals.rb
303
305
  - test/test_lang.rb
304
306
  - test/test_load.rb
305
- - test/test_national_team_reader.rb
306
307
  - test/test_reader.rb
307
308
  - test/test_reader_from_string.rb
308
309
  - test/test_round_auto.rb
309
310
  - test/test_round_def.rb
310
311
  - test/test_round_header.rb
311
312
  - test/test_scores.rb
313
+ - test/test_squad_reader.rb
312
314
  - test/test_standings.rb
313
315
  - test/test_utils.rb
314
316
  - test/test_winner.rb
@@ -360,10 +362,10 @@ test_files:
360
362
  - test/test_winner.rb
361
363
  - test/test_round_def.rb
362
364
  - test/test_utils.rb
365
+ - test/test_squad_reader.rb
363
366
  - test/test_reader_from_string.rb
364
367
  - test/test_round_header.rb
365
368
  - test/test_round_auto.rb
366
- - test/test_national_team_reader.rb
367
369
  - test/test_goals.rb
368
370
  - test/test_reader.rb
369
371
  - test/test_assoc_reader.rb