Sha256: 3eb6713b8218878d1b217745083b78ba7a72c726220945d7398c1b1404036286
Contents?: true
Size: 1.56 KB
Versions: 50
Compression:
Stored size: 1.56 KB
Contents
module Sportradar module Api module Basketball class Nba class Quarter < Data attr_accessor :response, :id, :game, :number, :sequence, :home_points, :away_points, :drives # @all_hash = {} # def self.new(data, **opts) # existing = @all_hash[data['id']] # if existing # existing.update(data, **opts) # existing # else # @all_hash[data['id']] = super # end # end # def self.all # @all_hash.values # end def initialize(data, **opts) @response = data @api = opts[:api] # @game = opts[:game] @id = response["id"] @number = response['number'] @sequence = response['sequence'] @plays_hash = {} update(data) end def update(data, **opts) create_data(@plays_hash, data.dig('events'), klass: Play, api: @api, quarter: self) end def plays_by_type(play_type, *types) if types.empty? plays.grep(Play.subclass(play_type.delete('_'))) else play_classes = [play_type, *types].map { |type| Play.subclass(type.delete('_')) } plays.select { |play| play_classes.any? { |klass| play.kind_of?(klass) } } end end def plays @plays_hash.values end alias :events :plays private end end end end end
Version data entries
50 entries across 50 versions & 1 rubygems