Actions
Bug #13115
closed`YAML.dump` outputs deperecated message even with delegated object
Bug #13115: `YAML.dump` outputs deperecated message even with delegated object
Description
YAML.dump outputs deprecated message if it calls with delegated object
but doesn't with inherited object:
require 'yaml' require 'delegate' $VERBOSE = true class Delegated < DelegateClass(Object) def initialize super(Object.new) end end puts 'YAML.dump(Delegated.new)' YAML.dump(Delegated.new) class Inherited < Object end puts 'YAML.dump(Inherited.new)' YAML.dump(Inherited.new) # $ ruby test.rb # YAML.dump(Delegated.new) # implementing to_yaml is deprecated, please implement "encode_with" # YAML.dump(Inherited.new) Is this intentional?
Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
- Status changed from Open to Assigned
- Assignee set to tenderlovemaking (Aaron Patterson)
Psych warns if to_yaml method is defined by other than psych itself, and delegated methods are defined in delegate.rb.
You can avoid the warning by undef to_yaml in class Delegated.
Updated by tenderlovemaking (Aaron Patterson) almost 7 years ago
- Status changed from Assigned to Closed
This has been fixed since Psych 3.0.0 https://github.com/ruby/psych/commit/712a65a53f3c15105cd86e8ad3ee3c779050ada4
Actions