Skip to content

Instantly share code, notes, and snippets.

@Fluxx
Created November 16, 2011 06:46
Show Gist options
  • Select an option

  • Save Fluxx/1369456 to your computer and use it in GitHub Desktop.

Select an option

Save Fluxx/1369456 to your computer and use it in GitHub Desktop.
Weird YAML delegator bug
jeff ~/Workspace/test $ cat test.rb
require 'delegate'
require 'yaml'
class A < DelegateClass(Array)
def initialize(*args)
super(Array.new(*args))
end
end
p YAML.dump(A.new)
jeff ~/Workspace/test $ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
jeff ~/Workspace/test $ ruby test.rb
/Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:25:in `block in initialize': undefined method `name' for nil:NilClass (NoMethodError)
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:27:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:102:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:102:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:102:in `accept'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:66:in `push'
from /Users/jeff/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/psych.rb:189:in `dump'
from test.rb:10:in `<main>'
jeff ~/Workspace/test $ rvm use 1.9.2
Using /Users/jeff/.rvm/gems/ruby-1.9.2-p290
jeff ~/Workspace/test $ ruby test.rb
"--- []\n\n"
jeff ~/Workspace/test $ bundle exec ruby test.rb
/Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:20:in `block in initialize': undefined method `name' for nil:NilClass (NoMethodError)
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:22:in `block in initialize'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:63:in `yield'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:63:in `default'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:63:in `accept'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:36:in `<<'
from /Users/jeff/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:165:in `dump'
from test.rb:10:in `<main>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment