Função do Módulo

Diferenças

module MM
def test
puts
"test"
end
end

class CC
def call_test
test

end
end

MM
.test #=> NoMethodError
CC
.new.call_test #=> prints test
CC
.new.test #=> prints test

Esta é uma continuação usando module_function

module MM
module_function
:test
end

MM
.test #=> prints test
CC
.new.call_test #=> prints test
CC
.new.test #=> NoMethodError private method accessed