I'm having some problems with the following code. When I click on either 
of the buttons on the scrollbar or move the thumb within the scrollbar 
the program crashes out on me. The error message that follows is from 
Windows 1.6.5-2 but the same error turns up on two seperate Linux 
installs. As the code is mostly cut and paste from the Pickaxe book I am 
somewhat baffled. BTW the Pickaxe code works fine but then it is not in 
a class.

Any pointers?

class Bugged
        require 'tk'
 
        def initialize
                root = TkRoot.new() { title 'There is a bug here' }
 
                frm_top = TkFrame.new(root) { pack('anchor' => 'w') }
 
                @text = TkText.new(root) {
                        width 60
                        height 30
                }
 
                scroll = TkScrollbar.new(root) {
                        command proc { |*args| @text.yview *args}
                        pack('side' => 'right', 'fill' => 'y')
                }
 
                @text.yscrollcommand(proc {|first, last| 
scroll.set(first,last)})
                @text.pack('side' => 'left', 'expand' => 1, 'fill' => 
'both')
 
                (1..50).each {|n| @text.insert('end', "This is line 
#{n}\n") }
 
                Tk.mainloop
        end
end
 
s = Bugged.new
 
D:\My Documents>ruby bug.rbw
(eval):606:in `mainloop': bug.rbw:17:in `initialize': undefined method 
`yview' for nil (NameError)
       from /cygdrive/c/RUBY/lib/ruby/1.6/tk.rb:606:in `mainloop'
       from bug.rbw:26:in `initialize'
       from bug.rbw:30:in `new'
       from bug.rbw:30