From: Ryan Davis Date: 2010-09-11T05:40:08+09:00 Subject: [ruby-core:32309] Module.new and Class.new rdoc May I commit? Index: object.c =================================================================== --- object.c (revision 29158) +++ object.c (working copy) @@ -1423,7 +1423,7 @@ * the module object, and the block is evaluated in the context of this * module using module_eval. * - * Fred = Module.new do + * fred = Module.new do * def meth1 * "hello" * end @@ -1432,9 +1432,12 @@ * end * end * a = "my string" - * a.extend(Fred) #=> "my string" + * a.extend(fred) #=> "my string" * a.meth1 #=> "hello" * a.meth2 #=> "bye" + * + * Assign the module to a constant (name starting uppercase) if you + * want to treat it like a regular module. */ static VALUE @@ -1450,12 +1453,32 @@ /* * call-seq: - * Class.new(super_class=Object) -> a_class + * Class.new(super_class=Object) -> a_class + * Class.new(super_class=Object) { |mod| ... } -> a_class * * Creates a new anonymous (unnamed) class with the given superclass * (or Object if no parameter is given). You can give a * class a name by assigning the class object to a constant. * + * If a block is given, it is passed the class object, and the block + * is evaluated in the context of this class using + * class_eval. + * + * fred = Class.new do + * def meth1 + * "hello" + * end + * def meth2 + * "bye" + * end + * end + * + * a = fred.new #=> #<#:0x100376b98> + * a.meth1 #=> "hello" + * a.meth2 #=> "bye" + * + * Assign the class to a constant (name starting uppercase) if you + * want to treat it like a regular class. */ static VALUE