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