diff --git a/ChangeLog b/ChangeLog index 2a850ae90d..50294626ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Oct 11 05:53:23 2011 Eric Hodel + + * object.c (Init_Object): Add reference to BasicObject, brief + explanation of constant lookup. Based on patch by Alvaro Pereyra + Rabanal. + [Ruby 1.9 - Bug #5426] + Sun Oct 9 11:06:52 2011 Kazuki Tsujimoto * test/psych/test_yamldbm.rb: don't run test if the system diff --git a/object.c b/object.c index 23c18edb33..4881cfd324 100644 --- a/object.c +++ b/object.c @@ -2544,10 +2544,16 @@ rb_f_array(VALUE obj, VALUE arg) * Classes in Ruby are first-class objects---each is an instance of * class Class. * - * When a new class is created (typically using class Name ... - * end), an object of type Class is created and - * assigned to a global constant (Name in this case). When - * Name.new is called to create a new object, the + * Typically, you create a new class by using: + * + * class Name + * # some class describing the class behavior + * end + * + * When a new class is created, an object of type Class is initialized and + * assigned to a global constant (Name in this case). + * + * When Name.new is called to create a new object, the * new method in Class is run by default. * This can be demonstrated by overriding new in * Class: @@ -2670,13 +2676,18 @@ rb_f_array(VALUE obj, VALUE arg) /* Document-class: Object * - * Object is the root of Ruby's class hierarchy. Its methods are available - * to all classes unless explicitly overridden. + * Object is the default root of all Ruby objects. Object inherits from + * BasicObject which allows creating alternate object hierarchies. Methods + * on object are available to all classes unless explicitly overridden. * * Object mixes in the Kernel module, making the built-in kernel functions - * globally accessible. Although the instance methods of Object are defined + * globally accessible. Although the instance methods of Object are defined * by the Kernel module, we have chosen to document them here for clarity. * + * When referencing constants in classes inheriting from Object you do not + * need to use the full namespace. For example, referencing +File+ inside + * +YourClass+ will find the top-level File class. + * * In the descriptions of Object's methods, the parameter symbol refers * to a symbol, which is either a quoted string or a Symbol (such as * :name).