Project

General

Profile

Bug #4794 ยป 0001-Improved-documentation-for-const_missing.patch

andhapp (Anuj Dutta), 05/28/2011 05:40 PM

View differences:

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 ||= {}
    (1-1/1)