class Bagel::Tennis::Score

Attributes

points[R]
sets[R]

Public Class Methods

new(sets:, points: nil, server: nil) click to toggle source
# File lib/bagel/tennis/score.rb, line 6
def initialize(sets:, points: nil, server: nil)
  @sets, @points = sets, points
  @server = server
  @checker = Tennis::Checker.new(sets: sets, points: points, server: server)
end

Public Instance Methods

break_point?() click to toggle source
# File lib/bagel/tennis/score.rb, line 35
def break_point?
  checker.break_point?
end
context() click to toggle source
# File lib/bagel/tennis/score.rb, line 16
def context
  return nil if server.nil?
  return Tennis::Checker::MATCH_POINT if match_point?
  return Tennis::Checker::SET_POINT if set_point?
  return Tennis::Checker::BREAK_POINT if break_point?
end
id() click to toggle source
# File lib/bagel/tennis/score.rb, line 12
def id
  id_parts.map { |i| i.to_s.rjust(2, '0') }.join('-')
end
match_point?() click to toggle source
# File lib/bagel/tennis/score.rb, line 43
def match_point?
  checker.match_point?
end
server?(player_id) click to toggle source
# File lib/bagel/tennis/score.rb, line 23
def server?(player_id)
  server == player_id
end
set_number() click to toggle source
# File lib/bagel/tennis/score.rb, line 27
def set_number
  sets.count
end
set_point?() click to toggle source
# File lib/bagel/tennis/score.rb, line 39
def set_point?
  checker.set_point?
end
set_score() click to toggle source
# File lib/bagel/tennis/score.rb, line 31
def set_score
  sets.last
end
tiebreak?() click to toggle source
# File lib/bagel/tennis/score.rb, line 47
def tiebreak?
  checker.tiebreak?
end

Private Instance Methods

game_number() click to toggle source
# File lib/bagel/tennis/score.rb, line 60
def game_number
  sets.last.sum + 1
end
id_parts() click to toggle source
# File lib/bagel/tennis/score.rb, line 53
def id_parts
  parts = [ set_number ]
  parts << game_number if points
  parts << point_number if points
  parts
end
point_number() click to toggle source
# File lib/bagel/tennis/score.rb, line 64
def point_number
  points.sum + 1
end