
Alias de métodos em Ruby também podem ser criados para métodos de classes, inclusive quando são definidos em módulos separados.
Veja o post completo no blog Ruby Fundamental:
Alias para métodos de classe
Veja também os outros posts do blog Ruby Fundamental:
Ruby Alias, IT Web, Module, Módulos, Ruby, Ruby Fundamental

Em Ruby é comum alguns métodos terem mais de um nome. Para definir um novo nome para seus métodos, podemos usar o recurso alias_method.
Mas a verdadeira utilidade de se criar alias de métodos é poder modificar o comportamento de um método, fornecendo uma nova implementação, sem perder a implementação original do método.
Veja o post completo no blog Ruby Fundamental:
Alias para métodos em Ruby
Veja também os outros posts do blog Ruby Fundamental:
Ruby Alias, IT Web, Module, Módulos, Ruby, Ruby Fundamental

Anteriormente no blog Ruby Fundamental vimos que módulos podem definir variáveis de instância e que essas variáveis ficam disponíveis para as classes onde eles são “mixados”.
Veremos agora como utilizar esse recurso para definir métodos globais.
Veja o post completo no blog Ruby Fundamental:
Módulos para definir métodos globais
Veja também os outros posts do blog Ruby Fundamental:
Ruby extend, include, IT Web, Mixin, Module, Módulos, Ruby, Ruby Fundamental

No último post do blog Ruby Fundamental vimos como mixar (misturar, incluir, adicionar, usar) módulos em outras classes usando os métodos include e extend.
Toda vez que um módulo é mixado em uma classe, um método hook é disparado no módulo.
Esses ganchos são muito úteis quando o módulo precisa interagir em tempo de execução com a classe onde ele está sendo mixado.
Veja o post completo no blog Ruby Fundamental:
Hooks (ganchos) de inclusão e extensão de módulos
Veja também os outros posts do blog Ruby Fundamental:
Ruby extended, ganchos, hooks, included, IT Web, Mixin, Module, Módulos, Ruby, Ruby Fundamental

No último post do blog Ruby Fundamental vimos como mixar (misturar, incluir, adicionar, usar) módulos em outras classes.
Em todos os exemplos usamos o método privado include de Module passando como parâmetros qual ou quais módulos serão misturados na classe.
Mas também é possível usar o método extend para incluir módulos. Vamos ver alguns exemplos para entender suas diferenças.
Veja o post completo no blog Ruby Fundamental:
Diferenças de “include” e “extend” na inclusão de módulos
Veja também os outros posts do blog Ruby Fundamental:
Ruby extend, include, IT Web, Mixin, Module, Módulos, Ruby, Ruby Fundamental

Em um post anterior do blog Ruby Fundamental vimos como usar módulos como namespaces. Agora veremos como usar os módulos em Ruby como mixin, misturando os métodos de instância de um módulo em outras classes.
Veja o post completo no blog Ruby Fundamental:
Módulos como mixin
Veja também os outros posts do blog Ruby Fundamental:
Ruby IT Web, Mixin, Module, Módulos, Ruby, Ruby Fundamental

Módulos em Ruby são grupos de métodos, constantes e variáveis de classes.
Os módulos não podem ser instanciados e não existe herança de módulos. Uma das maneiras de usar módulos é como namespaces.
Veja o post completo no blog Ruby Fundamental:
Módulos como namespaces
Veja também os outros posts do blog Ruby Fundamental:
Ruby IT Web, Module, Módulos, Namespaces, Ruby, Ruby Fundamental
Vamos usar um pouco de magia negra do Ruby para encontrar uma alternativa à implementação clássica do Design Pattern Decorator apresentado pela GoF.

Imagem original de MarketFare Foods, Inc.
.
Este post é a continuação de dois anteriores:
Se você ainda não os leu, recomendo que o faça para entender o contexto do exemplo onde estamos aplicando o Design Pattern Decorator. O ponto onde paramos no último post foi o meu descontentamento em decorar um objeto Cheeseburger de uma forma não muito intuitiva.
Leia mais…
Arquitetura, Ruby Arquitetura, Decorator, Design Patterns, Magia Negra, Meta Programação, Module, Ruby
Comentários