ruby module_function vs y compris le module

En ruby, je comprends que les fonctions du module peut être mis à disposition sans mélange dans le module en utilisant module_function comme illustré ici. Je peux voir comment cela est utile si vous pouvez utiliser la fonction sans mélange dans le module.

module MyModule
  def do_something
    puts "hello world"
  end
  module_function :do_something
end

Ma question est que pourquoi vous devriez avoir la fonction définie à la fois de ces moyens.

Pourquoi ne pas simplement avoir

def MyModule.do_something

OU

def do_something

Dans ce genre de cas, il serait utile de disposer de la fonction disponible pour être mélangés dans des, ou pour être utilisé comme une méthode statique?

InformationsquelleAutor Jeff Storey | 2012-07-18