Hi John,
Thanks for your response.
On Sat, Aug 30, 2008 at 04:14:00AM +0900, John Pritchard-williams wrote:
Its a weird quirky feature I don’t really understand - but managed to
put together this: I have to guess that Ncurses is defining a ‘normal’
module, whereas I know (from my book!) that the Math library used
‘Module#module_function’.
(My program but based on "The Ruby P.ming Language : ISBN-10:
0-596-51617-7 , O’Reilly, Page 248 onwards (esp: page 251 “Includable
Namespace Modules”).
Sadly I don’t have that book (yet).
method1 # this will work.
MyOtherModule.method2
method2 #this will fail
Hm, Module#module_function' seems to be parsed as
Module # comment’.
Also,
`def MyOtherModule.method2’defines a class method, no? At least, that’s
what
it would do if MyOtherModule were a class.
You sure you don’t just mean
module Mymodule
def method1
puts “method1 called”
end
module_function :method1
end
(See
http://devclue.blogspot.com/2007/12/rubys-modulemodulefunction-method.html)
Although it doesn’t seem to make a difference here.
Also note: if you do:
include Math
Object.respond_to?(“sqrt”)
You’ll see that Object hasn’t really grown a new method at all - it’s
all a big trick 
It’s magic
And confusing.