From: ts Date: 2002-04-01T19:42:29+09:00 Subject: Re: re-extending object >>>>> "E" == Ed Sinjiashvili writes: E> I was thinking of using Modules for state modeling: Why you don't use a State pattern ? E> whailer% ruby state_test.rb E> A E> B E> C E> C E> C E> whailer% In your case a *STUPID* implementation pigeon% cat b.rb #!/usr/bin/ruby class State def test raise "implement me" end end class StateA < State def test puts "A" StateB.new end end class StateB < State def test puts "B" StateC.new end end class StateC < State def test puts "C" StateA.new end end class Stateful attr_accessor :state def initialize init_state @state = init_state end def method_missing(id, *args, &block) @state = @state.send(id, *args, &block) end end a = Stateful.new StateA.new 1.upto 5 do a.test end pigeon% pigeon% b.rb A B C A B pigeon% Guy Decoux