From: Trans Date: 2006-08-18T03:25:12+09:00 Subject: Re: using a module at the toplevel doesn't work Yukihiro Matsumoto wrote: > Hi, > > In message "Re: using a module at the toplevel doesn't work" > on Fri, 18 Aug 2006 02:40:05 +0900, "Trans" writes: > > |Yukihiro Matsumoto wrote: > | > |> I don't think I understand you. Can you elaborate? > | > |Sure thing. It seems natural to me that "main" would a module of the > |form: > | > | module Main > | extend self > | end > | > |Such a module provides all the characteristics of the toplevel --def, > |include, etc. > > Why? If it is really required it's fairly easy to add toplevel > methods like we did for #include. See what I wrote to Pit Capitain. Even if I define the missing toplevel methods: def define_method( meth, &block ) Object.class_eval do define_method( meth, &block ) private meth end end def ancestors Object.ancestors end include MyModule I still get errors because state (e.g. instance vars used in MyModule) are being stored in the toplevel instance of Object, main, and not in Object. I got methods going one way and instance vars going another. Is there a reason the toplevel _can't_ be Kernel instead of a specal instance of Object? Just seems like that would be hek of a lot easier all around. Thanks, T.