Class: Sportradar::Mlb::Models::AtBat

Inherits:
Object
  • Object
show all
Defined in:
lib/sportradar/mlb/models/at_bat.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes: {}) ⇒ AtBat

Returns a new instance of AtBat.



5
6
7
# File 'lib/sportradar/mlb/models/at_bat.rb', line 5

def initialize(attributes: {})
  @attributes = attributes
end

Class Method Details

.from_innings(game_id:, innings:) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/sportradar/mlb/models/at_bat.rb', line 53

def self.from_innings(game_id:, innings:)
  [].tap do |at_bats|
    innings.each do |inning|
      (inning['halfs'] || []).each do |halfs|
        (halfs['events'] || []).each do |event|
          if event.has_key?('at_bat')
            at_bats << new(attributes: (event['at_bat'] || {}).
                         merge('game_id' => game_id).
                         merge('time_code' => { 'number' => inning['number'],
                                                'inning' => inning['sequence'],
                                                'half' => halfs['half'],
                                                'sequence' => inning['sequence'] }))
          end
        end
      end
    end
  end
end

Instance Method Details

#descriptionObject



13
14
15
# File 'lib/sportradar/mlb/models/at_bat.rb', line 13

def description
  attributes['description'] || ''
end

#eventsObject



17
18
19
# File 'lib/sportradar/mlb/models/at_bat.rb', line 17

def events
  attributes['events'] || []
end

#game_idObject



21
22
23
# File 'lib/sportradar/mlb/models/at_bat.rb', line 21

def game_id
  attributes['game_id']
end

#halfObject



37
38
39
# File 'lib/sportradar/mlb/models/at_bat.rb', line 37

def half
  time_code['half'] || ''
end

#hitter_idObject



25
26
27
# File 'lib/sportradar/mlb/models/at_bat.rb', line 25

def hitter_id
  attributes['hitter_id']
end

#idObject



29
30
31
# File 'lib/sportradar/mlb/models/at_bat.rb', line 29

def id
  attributes['id']
end

#inningObject



41
42
43
# File 'lib/sportradar/mlb/models/at_bat.rb', line 41

def inning
  time_code['inning'] || 0
end

#numberObject



45
46
47
# File 'lib/sportradar/mlb/models/at_bat.rb', line 45

def number
  time_code['number'] || 0
end

#sequenceObject



49
50
51
# File 'lib/sportradar/mlb/models/at_bat.rb', line 49

def sequence
  time_code['sequence'] || 0
end

#time_codeObject



33
34
35
# File 'lib/sportradar/mlb/models/at_bat.rb', line 33

def time_code
  attributes['time_code']
end

#to_sObject



9
10
11
# File 'lib/sportradar/mlb/models/at_bat.rb', line 9

def to_s
  "#{half} of #{inning}: #{description}"
end