Hi,
In message "[ruby-talk:00331] module-class calling"
on 99/05/22, "Michael Neumann" <neumann / s-direktnet.de> writes:
>Can I call a function of a module from a class-method?
>Following example didn't work! Why?
Another solution is to let `hello' be a module function by
`module_function':
module A
def hello
print "HELLO\n"
end
module_function :hello
end
class B
def call_A
A.hello
end
end
x = B.new
x.call_A
Module.html#module_function says,
the module functions are the method which is
also the singleton method of a module (or a class).
If a module is included the module functions seems not methods but
just functions. It is because of they are called module *functions*,
I think. In case of calling module functions, preceding module name
(e.g., Math or A) plays like a name space rather than a receiver. It
is very similar to the case of a constant with scope operator `::'
(e.g, Math::PI) -- in deed, class methods or module functions can be
call with :: (e.g., Math::sin(x)) in Ruby 1.3.x.
hope this helps,
-- gotoken