A linguagem de programação Ruby tem um par de maneiras de combinar os métodos de duas classes. Classes são coleções de métodos relacionados e membros de dados . Duas classes podem combinar os seus métodos usando as instruções incluem ou estender . Ambas as declarações são especializados para uma finalidade diferente e realizar coisas diferentes. Métodos de classe  
 Estender acrescenta especificados métodos de módulos como métodos de classe para a classe alvo. Métodos de classe estão disponíveis para todas as instâncias da classe alvo. Isso significa que todos os objetos criados com base na classe de destino têm acesso aos métodos de qualquer classe que é estendida. Portanto, estender é uma forma mais universal de incluir métodos em uma classe, uma vez que afeta todas as instâncias da classe. Métodos 
 Instância 
 
 Incluir acrescenta especificados métodos de módulos métodos de instância para a classe alvo. Métodos de instância estão disponíveis apenas para a instância específica da classe alvo. Qualquer outra classe do mesmo tipo não têm acesso aos métodos da classe incluído , a menos que ele também tem o método incluem invocado nele. 
 Acesso às variáveis 
 
 Uma classe alvo tem acesso às variáveis de qualquer outra classe que tenha sido incluído . Estender não fornece este acesso . 
 Pública contra Privada 
 
 Incluir é um método privado, e estender é um método público . Isso significa que incluem deve ser chamado dentro de um corpo de classe.