On Thursday, 21 November 2002 at 14:42:35 +0900, Dave Thomas wrote:
> Mark Wilson <mwilson13 / cox.net> writes:
> 
> > Please explain how methods in an explicit class are different than
> > methods in the Object class.
> 
> They aren't - it's just a question of when they are called:
> 
>    bert
>    def bert
>      ...
>    end
> 
> Here, the call to bert is *executed* before the definition of bert: it
> fails.
> 
>   class Dave
>     def initialize
>       bert
>     end
>     def bert
>       ...
>     end
>   end
> 
> Here the call to 'bert' in initialize is parsed, but not executed. The
> method 'bert' is then defined.

So, that would explain the example below:

class Fred
 Fred.fred    # this fails
 def self.fred
  puts "1"
 end
 Fred.fred    # this works
end


<thinking_out_loud>
I guess I am now coming to the realization that when I define
a method at the top level, that somehow it is automatically
instantiated. ...There has to be some type of parser difference,
or the following would work:


class Fred
 def fred
  puts "1"
 end
 fred    # undefined local variable or method `fred' for Fred:Class
end

</thinking_out_loud>


Can someone please explain?
Thanks

-- 
Jim Freeze
----------
Paul's Law:
	You can't fall off the floor.