Bug #4794 ยป 0001-Improved-documentation-for-const_missing.patch
variable.c | ||
---|---|---|
* Invoked when a reference is made to an undefined constant in
|
||
* <i>mod</i>. It is passed a symbol for the undefined constant, and
|
||
* returns a value to be used for that constant. The
|
||
* following code is a (very bad) example: if reference is made to
|
||
* an undefined constant, it attempts to load a file whose name is
|
||
* the lowercase version of the constant (thus class <code>Fred</code> is
|
||
* assumed to be in file <code>fred.rb</code>). If found, it returns the
|
||
* value of the loaded class. It therefore implements a perverse
|
||
* kind of autoload facility.
|
||
* following code is an example of the same:
|
||
*
|
||
* def Foo.const_missing (name)
|
||
* name # return the constant name as Symbol
|
||
* end
|
||
* Foo::UNDEFINED_CONST #=> :UNDEFINED_CONST: symbol returned
|
||
*
|
||
* In the next example when a reference is made to an undefined constant,
|
||
* it attempts to load a file whose name is the lowercase version of the
|
||
* constant (thus class <code>Fred</code> is assumed to be in file
|
||
* <code>fred.rb</code>). If found, it returns the value of the loaded
|
||
* class. It therefore implements a perverse kind of autoload facility.
|
||
*
|
||
* def Object.const_missing(name)
|
||
* @looked_for ||= {}
|