Módulos Espacio de Nombres Incluíbles

[~/rubytesting/TheRubyProgrammingLanguage/Chapter7ClassesAndModules]$ irb
ruby-1.9.2-head :001 > Math.sin(Math::PI/2)
 => 1.0 
ruby-1.9.2-head :002 > include Math
 => Object 
ruby-1.9.2-head :003 > sin(PI/2)
 => 1.0

~/srcLPP/Chapter7ClassesAndModules/modules]$ cat module_function.rb 
module SpaceOdissey

  THE_UNIVERSE = 1

  def tutu
    "inside tutu"
  end

  module_function :tutu
end

puts SpaceOdissey::THE_UNIVERSE
puts SpaceOdissey::tutu

include SpaceOdissey
puts THE_UNIVERSE
puts tutu
Ejecución:
[~/srcLPP/Chapter7ClassesAndModules/modules]$ ruby module_function.rb 
1
inside tutu
1
inside tutu
Cuando se define una función-módulo se debe evitar hacer uso de self ya que el valor de self hará que dependa de como es invocada.

Casiano Rodriguez León 2015-06-18