Project

General

Profile

Actions

Feature #8275

open

Add Module#public_const_get

Added by rkh (Konstantin Haase) about 11 years ago. Updated over 2 years ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:54332]

Description

Right now, const_get will always return a constant, no matter the visibility, which is probably what we want most of the time. But if you for instance have code that does some automatic name to constant resolution, you might now want to leak private constants.

module Foo
Bar = 42
private_constant :Bar
end

currently:

Foo::Bar # raises NameError
Foo.const_get("Bar") # => 42
Object.const_get("Foo::Bar") # => 42

proposed:

Foo.public_const_get("Bar") # raises NameError
Object.public_const_get("Foo::Bar") # raises NameError

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0