lib/sportdb/reader.rb in sportdb-1.9.2 vs lib/sportdb/reader.rb in sportdb-1.9.3
- old
+ new
@@ -99,13 +99,29 @@
reader = RaceReader.new( include_path )
reader.read( name )
elsif name =~ /\/squads\/([a-z]{2,3})-[^\/]+$/
## fix: add to country matcher new format
## name is country! and parent folder is type name e.g. /squads/br-brazil
- country = Country.find_by_key!( $1 )
- reader = NationalTeamReader.new( include_path )
+
+ # note: if two letters, assume country key
+ # if three letters, assume team key
+
+ ## allow three letter codes
+ ## assume three letter code are *team* codes (e.g. fdr, gdr, etc)
+ ## not country code (allows multiple teams per country)
+
+ if $1.length == 2
+ country = Country.find_by_key!( $1 )
+ ### for now assume country code matches team for now (do NOT forget to downcase e.g. BRA==bra)
+ logger.info " assume country code == team code for #{country.code}"
+ team = Team.find_by_key!( country.code.downcase )
+ else # assume length == 3
+ team = Team.find_by_key!( $1 )
+ end
+
+ reader = SquadReader.new( include_path )
## note: pass in @event.id - that is, last seen event (e.g. parsed via GameReader/MatchReader)
- reader.read( name, country_id: country.id, event_id: @event.id )
+ reader.read( name, team_id: team.id, event_id: @event.id )
elsif name =~ /\/squads/ || name =~ /\/rosters/ # e.g. 2013/squads.txt in formula1.db
reader = RaceTeamReader.new( include_path )
reader.read( name )
elsif name =~ /\/([0-9]{2})-/
race_pos = $1.to_i