From ee8fd5f1972735020f42b3ef74880540347721cc Mon Sep 17 00:00:00 2001 From: drbrain Date: Mon, 10 Oct 2011 20:54:45 +0000 Subject: [PATCH] * 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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ object.c | 25 ++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) 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).