diff options
author | Xavier Noria <fxn@hashref.com> | 2014-12-15 15:30:12 +0100 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2014-12-15 15:31:16 +0100 |
commit | 9b587ef416ce840493825670f99870d8968a9320 (patch) | |
tree | 18279b69f8fc7de026b87545c8f5cb6ec9611ac0 /guides | |
parent | c821a7751e73d0db581b090e1844165134ce2e64 (diff) | |
download | rails-9b587ef416ce840493825670f99870d8968a9320.tar.gz rails-9b587ef416ce840493825670f99870d8968a9320.tar.bz2 rails-9b587ef416ce840493825670f99870d8968a9320.zip |
autoloading guide: more edits [ci skip]
Diffstat (limited to 'guides')
-rw-r--r-- | guides/source/constant_autoloading_and_reloading.md | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/guides/source/constant_autoloading_and_reloading.md b/guides/source/constant_autoloading_and_reloading.md index 031213ca39..14100fb69c 100644 --- a/guides/source/constant_autoloading_and_reloading.md +++ b/guides/source/constant_autoloading_and_reloading.md @@ -260,10 +260,10 @@ in constant tables. ### Resolution Algorithm for Relative Constants -At any given point the nesting can be empty, let's use *cref* to refer to the -first element of the nesting if it is not empty, or `Object` otherwise. Without -getting too much into the details, the resolution algorithm for relative -constant references goes like this: +At any given place in the code, let's define *cref* to be the first element of +the nesting if it is not empty, or `Object` otherwise. Without getting too much +into the details, the resolution algorithm for relative constant references goes +like this: 1. First, if the nesting is not empty it looks for the constant in its elements and in order, ignoring their ancestors. @@ -656,17 +656,21 @@ creates an empty module and assigns it to the `Admin` constant on the fly. ### Generic Procedure -The procedure to autoload constant `C` in an arbitrary situation is: +Relative references are reported to be missing in the cref where they were hit, +and qualified references are reported to be missing in their parent. (See +[Resolution Algorithm for Relative +Constants](#resolution-algorithm-for-relative-constants) at the beginning of +this guide for the definition of *cref*, and [Resolution Algorithm for Qualified +Constants](#resolution-algorithm-for-qualified-constants) for the definition of +*parent*.) -``` -# For relative references C is missing in the cref, and for qualified -# references the C is missing in the parent. See "Constants Refresher" -# at the beginning of this guide for their respective definitions. +The procedure to autoload constant `C` in an arbitrary situation is as follows: -if the class or module in which the constant is missing is Object +``` +if the class or module in which C is missing is Object let ns = '' else - let M = the class or module in which the constant is missing + let M = the class or module in which C is missing if M is anonymous let ns = '' |