Thank you all for answering, but if I go for simplicity nothing works...

34 Shoes.app :height => 260, :width => 250 do
35   animate(1) do
36     @time = Time.now
37     clear do
38       draw_background
39       stack do
40         puts "Time = [EMAIL PROTECTED]"
41       end
42     end
43   end
44   def draw_background
45     puts "draw_background"
46   end
47 end

If I define a Shoes class as following and some methods (like animate):

13 class Shoes
14
15    def self.app params
16      yield
17    end
18
19
20 end
21
22  def animate fps, &block
23    yield
24  end
25
26  def clear
27    yield
28  end
29
30  def stack
31    yield
32  end

I get

test.rb:38: undefined local variable or method `draw_background' for
#<Object:0x288fa34 @time=Wed Aug 20 19:56:46 +0200 2008> (NameError)
    from test.rb:27:in `clear'

I don't find any easy way to make the code run. Of course, if I comment the
call to `draw_background' (line 38) I get the output => Time = Wed Aug 20
20:03:22 +0200 2008

(I run the code with the C-Ruby runtime)

Is there some Ruby technical I don't know?

Jean

Reply via email to