home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / rbemx144.zip / ruby-1.4.4 / sample / observ.rb < prev    next >
Text File  |  1999-01-20  |  470b  |  33 lines

  1. #! /usr/local/bin/ruby
  2.  
  3. require "thread"
  4. require "observer"
  5.  
  6. class Tick
  7.   include Observable
  8.   def initialize
  9.     Thread.start do
  10.       loop do
  11.     sleep 0.999
  12.     now = Time.now
  13.     changed
  14.     notify_observers(now.hour, now.min, now.sec)
  15.       end
  16.     end
  17.   end
  18. end
  19.  
  20. class Clock
  21.   def initialize(tick)
  22.     @tick = tick
  23.     @tick.add_observer(self)
  24.   end
  25.   def update(h, m, s)
  26.     printf "\e[8D%02d:%02d:%02d", h, m, s
  27.     STDOUT.flush
  28.   end
  29. end
  30.  
  31. clock = Clock.new(Tick.new)
  32. sleep
  33.