From: nobu@... Date: 2017-01-18T12:30:16+00:00 Subject: [ruby-core:79124] [Ruby trunk Bug#13115][Assigned] `YAML.dump` outputs deperecated message even with delegated object Issue #13115 has been updated by Nobuyoshi Nakada. Status changed from Open to Assigned Assignee set to 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`. ---------------------------------------- Bug #13115: `YAML.dump` outputs deperecated message even with delegated object https://bugs.ruby-lang.org/issues/13115#change-62536 * Author: Fumiaki Matsushima * Status: Assigned * Priority: Normal * Assignee: Aaron Patterson * Target version: * ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- `YAML.dump` outputs deprecated message if it calls with delegated object but doesn't with inherited object: ~~~ ruby 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? -- https://bugs.ruby-lang.org/ Unsubscribe: