>>>>> "M" == Mark Ng <markn / cs.mu.OZ.AU> writes: M> Is there a document somewhere describing keywords or modifiers M> like module_function and attr_name .. etc somewhere ? These are not keywords, but private methods from Module. There are described in ruby-man-1.4/Module.html http://www.ruby-lang.org/en/man-1.4/Module.html M> why do I have to declare a method as a module_function before M> it is accesible by outside modules ? When you call #module_function this make the method a private method, and create a public method in the singleton class, in such a way that you can call it, for example, Math.sqrt(2) M> Is that way I can make all my module methods module_functions M> automatically ? (I am after a quick and dirty jobbie for now. ;-) begin your module with 'module_function' i.e. pigeon% cat b.rb #!/usr/bin/ruby module A module_function def aa puts "aa" end def bb puts "bb" end end A.aa A.bb pigeon% pigeon% b.rb aa bb pigeon% Guy Decoux