class Sportradar::Nhl::Models::Event
Constants
- EVENT_TYPES
- PENALTY_TYPES
- PLAY_TYPES
- SCORING_PLAY_TYPES
- STOPPAGE_TYPES
Public Class Methods
new(period:, attributes:)
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 12 def initialize(period:, attributes:) @period = period @attributes = attributes build_statistics end
Public Instance Methods
clock()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 79 def clock @attributes['clock'] || '0' end
clock_secs()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 83 def clock_secs begin if clock && clock.include?(':') mins, secs = clock.split(':').map(&:to_i) Time.parse("00:#{mins}:#{secs}"). seconds_since_midnight.to_i end rescue => e return 0 end end
Also aliased as: period_seconds
coordinate_x()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 116 def coordinate_x coordinates['coord_x'] end
coordinate_y()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 120 def coordinate_y coordinates['coord_y'] end
coordinates()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 108 def coordinates @attributes['location'] || {} end
coordinates?()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 112 def coordinates? @attributes['location'].present? end
description()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 100 def description @attributes['description'] || 0 end
event_type()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 104 def event_type @attributes['event_type'] end
game_id()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 30 def game_id period.game_id end
has_team?()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 46 def has_team? !team_id.nil? end
id()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 26 def id @attributes['id'] end
official()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 124 def official @attributes['official'] end
penalty?()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 156 def penalty? PENALTY_TYPES.include?(event_type) end
period()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 50 def period @period end
period_abbreviation()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 58 def period_abbreviation @period.abbreviation end
period_id()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 54 def period_id @period.id end
period_number()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 62 def period_number @period.number end
period_sequence()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 66 def period_sequence @period.sequence end
period_type()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 70 def period_type @period.type end
play?()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 160 def play? PLAY_TYPES.include?(event_type) end
play_player_stats()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 148 def play_player_stats @play_player_stats ||= [] end
scoring_play?()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 164 def scoring_play? SCORING_PLAY_TYPES.include?(event_type) end
scoring_players()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 152 def scoring_players @scoring_players ||= [] end
statistics()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 144 def statistics @attributes['statistics'] || [] end
stoppage?()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 168 def stoppage? STOPPAGE_TYPES.include?(event_type) end
strength()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 128 def strength @attributes['strength'] end
team()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 34 def team @attributes['attribution'] || {} end
team_goal_side()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 42 def team_goal_side team.dig('team_goal') end
team_id()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 38 def team_id team.dig('id') end
time_code()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 74 def time_code min, sec = clock.split(':').map(&:to_i) "PT#{min}M#{sec}S" end
to_s()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 18 def to_s if coordinates? "#{period_abbreviation} - #{clock} - #{event_type}: #{description} [#{coordinate_x}, #{coordinate_y}]" else "#{period_abbreviation} - #{clock} - #{event_type}: #{description}" end end
updated_at()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 140 def updated_at @attributes['updated'] end
wall_clock()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 132 def wall_clock @attributes['wall_clock'] end
zone()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 136 def zone @attributes['zone'] end
Private Instance Methods
build_statistics()
click to toggle source
# File lib/sportradar/nhl/models/event.rb, line 174 def build_statistics statistics.each do |statistic| play_player_stats << Models::PlayPlayerStat.new(event: self, attributes: statistic) scoring_players << Models::ScoringPlayer.new(event: self, attributes: statistic) if scoring_play? end end