松尾です。

observer.rbを使っています。そこでちょっと困った事が起こって、
以下の様な修正を当てたところ思ったように動くようになりました。
採用を検討して頂ければ幸いです。

*** observer.rb Tue Oct  5 17:50:06 1999
--- observer.rb.new     Thu Jan 20 19:50:06 2000
***************
*** 32,38 ****
    def notify_observers(*arg)
      if @observer_state
        if @observer_peers
!       for i in @observer_peers
          i.update(*arg)
        end
        end
--- 32,38 ----
    def notify_observers(*arg)
      if @observer_state
        if @observer_peers
!       for i in @observer_peers.dup
          i.update(*arg)
        end
        end


--

現象は、observerのupdateの中で

observable.delete_observer(self)

を行うと、'for i in @observer_peers'の部分の i が、一つ飛ばし
てしまうという事です。