Issue #11512 has been updated by jeremyevans0 (Jeremy Evans).

File fix-delegate-class-method-visibility.patch added

This appears to still be a bug.  The patch needed a little manual help to apply, and the tests needed to be updated, but after those changes, all tests passed.  Attached is an updated patch.  I'll try to commit it next week unless I hear objections.

----------------------------------------
Bug #11512: DelegateClass.#public_{instance_}methods are returning difference values.
https://bugs.ruby-lang.org/issues/11512#change-78186

* Author: kachick (Kenichi Kamiya)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Is this intended behavior?

A patch is PR#926(https://github.com/ruby/ruby/pull/926)

~~~
require 'delegate'

class Parent
  def parent_public; end

  protected

  def parent_protected; end
end

class Child < Parent
end

class DelegatorChild < DelegateClass(Parent)
end

class Parent
  def parent_public_added; end

  protected

  def parent_protected_added; end
end

ignores = Object.public_instance_methods | Delegator.public_instance_methods

p(Child.public_instance_methods - ignores)                 #=> [:parent_public, :parent_public_added]
p(Child.new.public_methods - ignores)                      #=> [:parent_public, :parent_public_added]

p(DelegatorChild.public_instance_methods - ignores)        #=> got: [:parent_public], expected: [:parent_public, :parent_public_added]
p(DelegatorChild.new(Parent.new).public_methods - ignores) #=> got: [:parent_public, :parent_public_added, :parent_protected]], expected: [:parent_public, :parent_public_added]
~~~

---Files--------------------------------
fix-delegate-class-method-visibility.patch (3.69 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>