aboutsummaryrefslogtreecommitdiffstats
path: root/guides
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2014-12-15 15:30:12 +0100
committerXavier Noria <fxn@hashref.com>2014-12-15 15:31:16 +0100
commit9b587ef416ce840493825670f99870d8968a9320 (patch)
tree18279b69f8fc7de026b87545c8f5cb6ec9611ac0 /guides
parentc821a7751e73d0db581b090e1844165134ce2e64 (diff)
downloadrails-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.md26
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 = ''