Actions
Feature #14382
closedMake public access of a private constant call const_missing
Feature #14382:
Make 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