[ruby-core:74585] [Ruby trunk Bug#12216] Class inherited Singleton method exclude argument from protected method accessing

From: adamluzsi@...
Date: 2016-03-26 01:42:25 UTC
List: ruby-core #74585
Issue #12216 has been updated by Adam Luzsi.


Nobuyoshi Nakada wrote:
> Protected methods can be called from a same class instance.

So far I though, A and B is a different class instance.

But I see now,
class instance != object instance
class instance is based on inheritance 



----------------------------------------
Bug #12216: Class inherited Singleton method exclude argument from protected method accessing
https://bugs.ruby-lang.org/issues/12216#change-57715

* Author: Adam Luzsi
* Status: Rejected
* Priority: Normal
* Assignee: 
* ruby -v: 1.8.7-p375 && 1.9 && 2.+
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Dear Ruby Lang developers.

I would like to ask about why the following code can work? 

Or is it a valid scenario and "as expected" behavior to ignore public call on a protected method. 

Thank you guys for the brilliant!

```ruby
class A
  class << self
    def inherited(klass)
      p klass.protected_method_call
    end

    protected
    def protected_method_call
      self.to_s
    end
  end
end

class B < A
end

# output: "B"
```




-- 
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>

In This Thread

Prev Next