sportdb 1.9.2 → 1.9.3

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