summaryrefslogtreecommitdiffstats
path: root/sample/observ.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-16 12:13:05 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-16 12:13:05 +0000
commit99d0354e89aefdb6373dbeb22506216b8790a0bd (patch)
treeb3c086e437cab449f90ba637710daed0ddfec4c4 /sample/observ.rb
parent502e7547b5c274c51365d11fdfe0e69ee9aa5a52 (diff)
downloadruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.tar.gz
ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.tar.xz
ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.zip
Initial revision
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/observ.rb')
-rw-r--r--sample/observ.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/sample/observ.rb b/sample/observ.rb
new file mode 100644
index 000000000..f7b1e7313
--- /dev/null
+++ b/sample/observ.rb
@@ -0,0 +1,31 @@
+#! /usr/local/bin/ruby
+
+require "thread"
+require "observer"
+
+class Tick
+ include Observable
+ def initialize
+ Thread.start do
+ while TRUE
+ sleep 0.999
+ changed
+ notify_observers(Time.now.strftime("%H:%M:%S"))
+ end
+ end
+ end
+end
+
+class Clock
+ def initialize
+ @tick = Tick.new
+ @tick.add_observer(self)
+ end
+ def update(time)
+ print "\e[8D", time
+ STDOUT.flush
+ end
+end
+
+clock = Clock.new
+sleep