1 require 'druby3' 2 3 class Bar 4 attr_reader :i 5 def initialize(i) 6 @i = i 7 end 8 end 9 10 class Foo < Bar 11 # Initialize @i to 0 12 def initialize(druby) 13 super(0) 14 @druby = druby 15 end 16 17 # Set @i 18 def foo(i) 19 @i = i 20 end 21 22 # Return a reference to a new Bar object with Bar.i = @i + 1 23 def bar() 24 b = Bar.new(@i + 1) 25 obj = @druby.create_reference(b) 26 return obj 27 end 28 29 # Test iteration 30 def each() 31 yield 1 32 yield 2 33 yield 3 34 end 35 36 # Test exception 37 def throw_exception() 38 raise RuntimeError 39 end 40 end 41 42 server = DRuby::Server.new('localhost', '4242') 43 f = Foo.new(server) 44 server.bind(f, "foo") 45 server.thread.join