class SportDb::Import::EventIndex
Attributes
events[R]
Public Class Methods
build( path )
click to toggle source
# File lib/sportdb/formats/event/event_index.rb, line 8 def self.build( path ) pack = Package.new( path ) ## lets us use direcotry or zip archive recs = [] pack.each_seasons do |entry| recs += EventInfoReader.parse( entry.read ) end recs index = new index.add( recs ) index end
new()
click to toggle source
# File lib/sportdb/formats/event/event_index.rb, line 25 def initialize @events = [] @leagues = {} end
Public Instance Methods
add( recs )
click to toggle source
# File lib/sportdb/formats/event/event_index.rb, line 30 def add( recs ) @events += recs ## add to "linear" records recs.each do |rec| league = rec.league season = rec.season seasons = @leagues[ league.key ] ||= {} seasons[season.key] = rec end ## build search index by leagues (and season) end
find_by( league:, season: )
click to toggle source
# File lib/sportdb/formats/event/event_index.rb, line 43 def find_by( league:, season: ) league_key = league.is_a?( String ) ? league : league.key season_key = season.is_a?( String ) ? season : season.key seasons = @leagues[ league_key ] if seasons seasons[ season_key ] else nil end end