See code samples below. Notes:
* the def test defines a private method in Object. This means that every
object can call it on itself.
* Defining the method means overriding the previous definition. From
within the method you can access 'super', but not from without.
* Module names should begin with capital letters.
* Modules cannot be instantiated directly (only though a class), so you
cannot access the superclass.test method (there simply isn't a
superclass).

HTH,

--- CODE ---

def test
  p "in first test"
end

module Somemodule
  def Somemodule::somemethod

    TOPLEVEL_BINDING.send(:test)

    # ugly hacks that also work:
    Object.new.send(:test)
    eval("test", TOPLEVEL_BINDING)
  end

  def Somemodule::test(call_super)
    p "in somemodule::test"

    # another option:
    p super if call_super
  end
end

Somemodule.somemethod

-----Original Message-----
From: Sean O'Dell [mailto:sean / celsoft.com] 
Sent: Friday, 28 May 2004 10:24 AM
To: ruby-talk ML
Subject: Re: Calling global method


On Thursday 27 May 2004 16:37, Sean O'Dell wrote:
> How do you call a global method from a module method where there is
another
> module method that shares the name of the global method?

Perhaps that was too cryptic.  Here's an example:

def test
  p "in first test"
end

module somemodule
  def somemodule::somemethod
    test()
  end

  def somemodule::test
    p "in somemodule::test"
  end
end


In somemodule::somemethod, I intended to call the global test method,
but I 
ended up calling somemodule::test.

How do you call the outer global method in a case like this?

	Sean O'Dell