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 ||= {}
|
||