Actions
Feature #14382
closedMake public access of a private constant call const_missing
Status:
Closed
Assignee:
-
Target version:
-
Description
Calling obj.foo
where foo
is a private method of obj
calls method_missing
. You would expect klass::FOO
where FOO
is a private constant of klass
to call const_missing
, but currently it doesn't. This makes a small change so that const_missing
will be called in such cases.
In addition to similarity to method_missing
, the main reason for doing this is it offers a way to deprecate public constants. Currently, if you have a public constant and want to make it a private constant, you can't do it without breaking possible callers. With this patch, you can make it a private constant, then override const_missing
in the class, and have const_missing
print a deprecation warning and then return the value of the constant.
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0