Project

General

Profile

Actions

Bug #1802

closed

Ruby 1.9.2: No longer possible to use send to call protected methods

Added by shyouhei (Shyouhei Urabe) over 15 years ago. Updated over 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.2dev (2009-07-18 trunk 24186) [i686-linux]
Backport:
[ruby-core:24500]

Description

=begin

This mail is to file this bug into our ITS. Please ignore.

Philip Ross wrote:

With Ruby 1.9.2-preview1, it is no longer possible to use send to call
protected methods. It is however still possible to call private methods.

class TestClass
protected

def protected_test
  puts 'called protected'
end

private

def private_test
  puts 'called private'
end

end

t = TestClass.new
t.send :private_test
t.send :protected_test

With ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux], this gives
the output:

called private
called protected

But with ruby 1.9.2dev (2009-07-18 trunk 24186) [i686-linux], an
exception is raised calling the protected method:

called private
/tmp/protected.rb:17:in <main>': protected method protected_test'
called for #TestClass:0x82134c0 (NoMethodError)

Is this an intentional change for Ruby 1.9.2, or should I raise a bug?

Thanks,

Phil

Attachment: signature.asc
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0