Actions
Bug #13115
closed`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) about 8 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) about 6 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
Like0
Like0Like0