Project

General

Profile

Actions

Bug #4401

closed

override :method method breaks Psych

Added by godfat (Lin Jen-Shin) over 11 years ago. Updated about 11 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.5.0]
Backport:
[ruby-core:35255]

Description

=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


Files

Actions

Also available in: Atom PDF