Ruby Language Composition des modules et des classes


Exemple

Vous pouvez utiliser des modules pour créer des classes plus complexes via la composition . La directive include ModuleName incorpore les méthodes d'un module dans une classe.

module Foo
  def foo_method
    puts 'foo_method called!'
  end
end

module Bar
  def bar_method
    puts 'bar_method called!'
  end
end

class Baz
  include Foo
  include Bar

  def baz_method
    puts 'baz_method called!'
  end  
end

Baz contient désormais des méthodes provenant de Foo et de Bar en plus de ses propres méthodes.

new_baz = Baz.new
new_baz.baz_method #=> 'baz_method called!'
new_baz.bar_method #=> 'bar_method called!'
new_baz.foo_method #=> 'foo_method called!'