Project

General

Profile

Feature #9992

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

Hi,



I’m would like to discuss with you the concept of Internal Interfaces.



Currently ruby offers three access modifiers choices to set methods visibility:


- public

- protected

- private



Public methods define what we may call the Public Interface.

Private methods are private to the class and its subclasses.

Protected methods are public for the subclasses.



I would like to work with a new access modifier that would allow the creation of Internal methods.



Internal methods would be object methods that could only be called within the namespace.



Ex:

~~~ruby
module Foo; end



class Foo::Bar

def baz

puts ‘baz’

end

internal :baz

end



class Foo::Qux

def baz

::Foo::Bar.new.baz

end

end
~~~



Is this something that we can think about in a future implementation of ruby?

An extra feature that would not break backward compatibility.



Cheers,

Daniel

Back