From: "headius (Charles Nutter)" Date: 2013-04-16T23:58:11+09:00 Subject: [ruby-core:54342] [CommonRuby - Feature #8275] Add Module#public_const_get Issue #8275 has been updated by headius (Charles Nutter). What about an optional boolean for the existing const_get/const_set that indicates whether private constants should be included? I guess having separate methods does align with public_instance_method and friends, though. ---------------------------------------- Feature #8275: Add Module#public_const_get https://bugs.ruby-lang.org/issues/8275#change-38618 Author: rkh (Konstantin Haase) Status: Open Priority: Normal Assignee: Category: Target version: 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 -- http://bugs.ruby-lang.org/