class Pompom::Pomodoro

Attributes

message[R]
system_clock[W]
time_remaining[R]

Public Class Methods

new(time_remaining=1500, message=nil) click to toggle source
# File lib/pompom.rb, line 103
def initialize(time_remaining=1500, message=nil)
  @time_remaining = time_remaining
  @message = message
  @system_clock = Kernel
  @observers = []
  @finished_early = true
end

Public Instance Methods

add_observer(object) click to toggle source
# File lib/pompom.rb, line 111
def add_observer(object)
  @observers << object
end
finish!() click to toggle source
# File lib/pompom.rb, line 122
def finish!
  @time_remaining = 0
  notify_observers
end
finished?() click to toggle source
# File lib/pompom.rb, line 131
def finished?
  @time_remaining < 1
end
finished_early?() click to toggle source
# File lib/pompom.rb, line 127
def finished_early?
  @finished_early
end
tick() click to toggle source
# File lib/pompom.rb, line 115
def tick
  @system_clock.sleep 1
  @time_remaining -= 1
  @finished_early = false if @time_remaining == 0
  notify_observers
end

Private Instance Methods

notify_observers() click to toggle source
# File lib/pompom.rb, line 137
def notify_observers
  @observers.each {|o| o.update(self) }
end