From: Ferenc Engard Date: 2003-10-06T07:18:54+09:00 Subject: Big problem with debian ruby 1.8.0-1 Hello, I have just upgraded ruby on my debian unstable to ruby 1.8.0-1 (2003-10-05), and my program has crashed. Here is the stripped down version of my code: ---------------------------------------------------------------------- #!/usr/bin/ruby1.8 class Action < Proc attr_accessor :name def initialize puts "Action#init" @name='not defined' super end end class Actions def initialize @actions=Hash.new end #~ def register(name,action=nil) def register(name,action=nil,&bl) if action.nil? && block_given? puts "Before Action.new" action=Action.new(&bl) #~ action=Action.new puts "After Action.new" end puts action.inspect action.name=name @actions[name]=action action end end actions=Actions.new actions.register('exit') {puts "yes"} ---------------------------------------------------------------------- This program now outputs the following: fery@domesticus:~/work/tudomany/implementation$ ./gui_test.rb Before Action.new After Action.new # ../gui_test.rb:25:in `register': undefined method `name=' for # (NoMethodError) from ./gui_test.rb:32 fery@domesticus:~/work/tudomany/implementation$ So, instead of Action, action is a Proc! :-O Note, if I remove the &bl from the Actions#register(), then this code do not show this behavior, although, there is not so much sense using a Proc-derived class without a proc... :-(( What is the problem? Thanks: Ferenc PS: The previous ruby version was also 1.8.0 (I do not remember the exact date). :(