class AhlScraper::Games::Goal

Public Instance Methods

assist_numbers() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 56
def assist_numbers
  @assist_numbers ||= @raw_data[:assistNumbers]
end
assists() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 44
def assists
  @assists ||= @raw_data[:assists].map do |assist|
    {
      id: assist[:id],
      first_name: assist[:firstName],
      last_name: assist[:lastName],
      number: assist[:jerseyNumber],
      position: assist[:position],
    }
  end
end
description() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 117
def description
  @description ||=
    if assists.nil? || assists.empty?
      goalscorer_name
    elsif assists.length == 1
      "#{goalscorer_name} (#{a1_name})"
    else
      "#{goalscorer_name} (#{a1_name}, #{a2_name})"
    end
end
empty_net?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 72
def empty_net?
  @empty_net ||= @raw_data[:properties][:isEmptyNet] == "1"
end
extra_skater?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 76
def extra_skater?
  @extra_skater ||= set_extra_skater
end
game_time_elapsed() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 26
def game_time_elapsed
  @game_time_elapsed ||= period_time.to_elapsed
end
game_winner?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 88
def game_winner?
  @game_winner ||= @raw_data[:properties][:isGameWinningGoal] == "1"
end
id() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 6
def id
  @id ||= @raw_data[:game_goal_id]
end
insurance_goal?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 84
def insurance_goal?
  @insurance_goal ||= @raw_data[:properties][:isInsuranceGoal] == "1"
end
minus_players() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 96
def minus_players
  @minus_players ||= @raw_data[:minus_players].map { |player| OnIceSkater.new(player, { scoring_team: false, goal_id: id }) }
end
number() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 10
def number
  @number ||= @opts[:number]
end
penalty_shot?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 80
def penalty_shot?
  @penalty_shot ||= @raw_data[:properties][:isPenaltyShot] == "1"
end
period() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 14
def period
  @period ||= @raw_data[:period][:id].to_i
end
period_time_in_seconds() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 22
def period_time_in_seconds
  @period_time_in_seconds ||= period_time.to_sec
end
plus_players() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 92
def plus_players
  @plus_players ||= @raw_data[:plus_players].map { |player| OnIceSkater.new(player, { scoring_team: true, goal_id: id }) }
end
power_play?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 64
def power_play?
  @power_play ||= @raw_data[:properties][:isPowerPlay] == "1"
end
scored_by() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 34
def scored_by
  @scored_by ||= {
    id: @raw_data[:scoredBy][:id],
    first_name: @raw_data[:scoredBy][:firstName],
    last_name: @raw_data[:scoredBy][:lastName],
    number: @raw_data[:scoredBy][:jerseyNumber],
    position: @raw_data[:scoredBy][:position],
  }
end
scorer_goal_number() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 30
def scorer_goal_number
  @scorer_goal_number ||= @raw_data[:scorerGoalNumber]
end
scoring_team() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 60
def scoring_team
  @scoring_team ||= @raw_data[:team]
end
short_handed?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 68
def short_handed?
  @short_handed ||= @raw_data[:properties][:isShortHanded] == "1"
end
situation() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 100
def situation
  @situation ||=
    if @raw_data[:properties][:isPowerPlay] == "1"
      "PP"
    elsif @raw_data[:properties][:isShortHanded] == "1"
      "SH"
    elsif @raw_data[:properties][:isEmptyNet] == "1"
      "EN"
    elsif extra_skater? == true
      "EX"
    elsif @raw_data[:properties][:isPenaltyShot] == "1"
      "PS"
    else
      "EV"
    end
end
special_teams?() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 128
def special_teams?
  @special_teams ||= short_handed? || power_play?
end
time() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 18
def time
  @time ||= @raw_data[:time]
end

Private Instance Methods

a1_name() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 148
def a1_name
  @a1_name ||= "#{assists.dig(0, :first_name)} #{assists.dig(0, :last_name)}"
end
a2_name() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 152
def a2_name
  @a2_name ||= "#{assists.dig(1, :first_name)} #{assists.dig(1, :last_name)}"
end
goalscorer_name() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 144
def goalscorer_name
  @goalscorer_name ||= "#{scored_by[:first_name]} #{scored_by[:last_name]}"
end
period_time() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 156
def period_time
  @period_time ||= PeriodTimeHelper.new(time, period)
end
set_extra_skater() click to toggle source
# File lib/ahl_scraper/resources/games/goal.rb, line 134
def set_extra_skater
  return true if plus_players.length > minus_players.length && !special_teams? && !penalty_shot?

  return true if plus_players.length == minus_players.length && short_handed?

  return true if plus_players.length == 6

  false
end