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