From: Aaron Patterson Date: 2011-06-12T02:02:27+09:00 Subject: [ruby-core:37036] [Ruby 1.9 - Bug #4401][Closed] override :method method breaks Psych Issue #4401 has been updated by Aaron Patterson. Status changed from Assigned to Closed % Done changed from 0 to 100 This was fixed in r31075. I'm not sure why redmine didn't automatically close. ---------------------------------------- Bug #4401: override :method method breaks Psych http://redmine.ruby-lang.org/issues/4401 Author: Lin Jen-Shin Status: Closed Priority: Normal Assignee: Aaron Patterson Category: ext Target version: 1.9.x ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.5.0] =begin I am not sure if this could be considered a bug, but it used to work. To reproduce it: ruby -r psych -v -e 'Psych.dump(Struct.new(:method).new)' ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.5.0] /usr/local/Cellar/ruby/1.9.2-p136/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:48:in `method': wrong number of arguments(1 for 0) (ArgumentError) from /usr/local/Cellar/ruby/1.9.2-p136/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:48:in `accept' from /usr/local/Cellar/ruby/1.9.2-p136/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:36:in `<<' from /usr/local/Cellar/ruby/1.9.2-p136/lib/ruby/1.9.1/psych.rb:165:in `dump' from -e:1:in `
' I don't have a good idea how to fix it, but here's some demonstration: https://github.com/godfat/ruby/commit/f4e0e8f781b05c767ad2472a43a4ed0727a75708 https://github.com/godfat/ruby/commit/c7a6cf975d88828c2ed27d253f41c480f9b66ad6 Patches attached as well, the same as above two commits. I think they are against r30885. Many thanks! p.s. this issue was found in delayed_job's: class PerformableMethod < Struct.new(:object, :method, :args) =end -- http://redmine.ruby-lang.org