class Sportradar::Nfl::Parsers::BoxscoreParser

Attributes

json[R]

Public Class Methods

new(json: {}) click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 5
def initialize(json: {})
  @json = json['game'] || json
end

Public Instance Methods

away_team_id() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 81
def away_team_id
  away_team_json['id']
end
away_team_json() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 77
def away_team_json
  json['away_team'] || {}
end
away_team_scoring() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 89
def away_team_scoring
  {
    points: away_team_json['points'],
    remaining_challenges: away_team_json['remaining_challenges'],
    remaining_timeouts: away_team_json['remaining_timeouts'],
  }.merge(away_team_scoring_quarters).
    compact
end
away_team_scoring_data() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 85
def away_team_scoring_data
  away_team_json['scoring'] || {}
end
away_team_scoring_quarters() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 98
def away_team_scoring_quarters
  team_scoring_quarters(data: away_team_scoring_data)
end
clock() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 17
def clock
  json['clock']
end
clock_attributes() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 29
def clock_attributes
  {
    clock: clock,
    clock_secs: clock_secs,
    period: quarter,
    ended_at: completed,
    status: status,
  }.compact
end
clock_secs() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 39
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
    puts e
    return 0
  end
end
completed() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 21
def completed
  json['completed'] && json['completed'].to_datetime
end
game_id() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 9
def game_id
  json['id']
end
home_team_id() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 56
def home_team_id
  home_team_json['id']
end
home_team_json() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 52
def home_team_json
  json['home_team'] || {}
end
home_team_scoring() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 64
def home_team_scoring
  {
    points: home_team_json['points'],
    remaining_challenges: home_team_json['remaining_challenges'],
    remaining_timeouts: home_team_json['remaining_timeouts'],
  }.merge(home_team_scoring_quarters).
    compact
end
home_team_scoring_data() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 60
def home_team_scoring_data
  home_team_json['scoring'] || {}
end
home_team_scoring_quarters() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 73
def home_team_scoring_quarters
  team_scoring_quarters(data: home_team_scoring_data)
end
quarter() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 13
def quarter
  json['quarter'].to_i
end
status() click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 25
def status
  json['status']
end
team_scoring_quarters(data:) click to toggle source
# File lib/sportradar/nfl/parsers/boxscore_parser.rb, line 102
def team_scoring_quarters(data:)
  {}.tap do |scoring_quarters|
    overtime_points = 0
    data.map do |scoring_data|
      if quarter = scoring_data['quarter'].to_i
        if quarter > 0 && quarter <= 4
          key = "points_quarter_#{quarter}".to_sym
          scoring_quarters[key] =
            scoring_data['points'].to_i
        elsif quarter > 4
          key = "points_overtime_#{quarter - 4}".to_sym
          scoring_quarters[key] =
            scoring_data['points'].to_i
          overtime_points += scoring_data['points'].to_i
        end
      end
    end
    scoring_quarters[:points_overtime] = overtime_points
  end
end