Hi,

If I define a module method like this:

  module MyMod
    def MyMod.my_method
    end
  end

then I can invoke it like this:

  irb> MyMod.my_method
  => nil

but I cannot invoke my_method without the module name, even if I include
the module:

  irb> include MyMod
  => Object
  irb> my_method
  NameError: undefined local variable or method `my_method' for
main:Object

Now, if I define the method like this:

  module MyMod
    def my_method
    end
  end

then I cannot invoke my_method even with the module name:

  irb> MyMod.my_method
  NoMethodError: undefined method `my_method' for MyMod:Module

but I can invoke it if I include the module:

  irb> include MyMod
  => Object
  irb> my_method
  => nil

Therefore, my question is, is there any way so that both means of
invoking work, i.e., for people who don't "include" the module they can
type "MyMod.my_method", and for people who "include" the module they can
simply type "my_method"?  (I am using Ruby 1.9.2.)

Regards,

Bill

-- 
Posted via http://www.ruby-forum.com/.