Class: Sportradar::Mlb::Models::ScoringPlay

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(game_id:, team_id:, event:) ⇒ ScoringPlay

Returns a new instance of ScoringPlay.



5
6
7
8
9
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 5

def initialize(game_id:, team_id:, event:)
  @game_id = game_id
  @team_id = team_id
  @event = event
end

Instance Attribute Details

#eventObject (readonly)

Returns the value of attribute event.



162
163
164
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 162

def event
  @event
end

#game_idObject (readonly)

Returns the value of attribute game_id.



162
163
164
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 162

def game_id
  @game_id
end

#team_idObject (readonly)

Returns the value of attribute team_id.



162
163
164
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 162

def team_id
  @team_id
end

Instance Method Details

#conversionObject



116
117
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 116

def conversion
end

#conversion_pointsObject



119
120
121
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 119

def conversion_points
  0
end

#empty_netObject



112
113
114
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 112

def empty_net
  false
end

#hitter_idObject



15
16
17
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 15

def hitter_id
  event['hitter_id']
end

#hitter_outcomeObject



19
20
21
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 19

def hitter_outcome
  event['hitter_outcome'] || 'NA'
end

#hitter_roleObject



135
136
137
138
139
140
141
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 135

def hitter_role
  {
    player_id: hitter_id,
    player_info: nil,
    role: 'hitter',
  }
end

#idObject



11
12
13
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 11

def id
  event['id']
end

#inningObject



23
24
25
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 23

def inning
  event['inning']
end

#inning_halfObject



31
32
33
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 31

def inning_half
  event['inning_half']
end

#inning_half_labelObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 35

def inning_half_label
  case inning_half
  when 'B'
    'Bottom of'
  when 'T'
    'Top of'
  else
    ''
  end
end

#inning_labelObject



46
47
48
49
50
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 46

def inning_label
  if inning
    "#{inning_half_label} #{ordinal_inning}"
  end
end

#ordinal_inningObject



27
28
29
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 27

def ordinal_inning
  ActiveSupport::Inflector.ordinalize(inning)
end

#period_numberObject



74
75
76
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 74

def period_number
  inning
end

#period_secondsObject



108
109
110
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 108

def period_seconds
  0
end

#pitch?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 70

def pitch?
  play_type == 'pitch'
end

#pitcher_idObject



52
53
54
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 52

def pitcher_id
  event['pitcher_id']
end

#pitcher_roleObject



127
128
129
130
131
132
133
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 127

def pitcher_role
  {
    player_id: pitcher_id,
    player_info: nil,
    role: 'pitcher',
  }
end

#play_typeObject



66
67
68
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 66

def play_type
  event['type']
end

#pointsObject



78
79
80
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 78

def points
  runners.count
end

#runner_idsObject



62
63
64
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 62

def runner_ids
  (runners || []).map(&:id)
end

#runner_rolesObject



143
144
145
146
147
148
149
150
151
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 143

def runner_roles
  runners.map do |runner|
    {
      player_id: runner.id,
      player_info: runner,
      role: 'runner',
    }
  end
end

#runnersObject



56
57
58
59
60
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 56

def runners
  (event['runners'] || []).map do |runner|
    Runner.new(runner: runner)
  end
end

#scored_atObject



82
83
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 82

def scored_at
end

#scoring_conversionObject



85
86
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 85

def scoring_conversion
end

#scoring_conversion_pointsObject



88
89
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 88

def scoring_conversion_points
end

#scoring_howObject



96
97
98
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 96

def scoring_how
  play_type
end

#scoring_methodObject



91
92
93
94
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 91

def scoring_method
  PitchOutcome.new(outcome: hitter_outcome).
    to_s
end

#scoring_playersObject



153
154
155
156
157
158
159
160
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 153

def scoring_players
  [
    pitcher_role,
    hitter_role,
    runner_roles,
  ].compact.
    flatten
end

#scoring_typeObject



100
101
102
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 100

def scoring_type
  hitter_outcome
end

#time_codeObject



104
105
106
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 104

def time_code
  "#{inning_half}#{inning}"
end

#yardsObject



123
124
125
# File 'lib/sportradar/mlb/models/scoring_play.rb', line 123

def yards
  0
end