Módulos
Los módulos en Ruby cumplen una doble función: evitan colisiones de nombres y nos ayudan a reutilizar código.
Un módulo es un contenedor de clases, métodos y constantes. Los módulos se definen utilizando la palabra clave module
.
Creemos un módulo MyModule
:
Dentro del módulo podemos definir clases, métodos y constantes. Por ejemplo:
Para acceder a las clases y constantes escribes el nombre del módulo, seguido de ::
(doble dos puntos), seguido del nombre de la clase o la constante. Por ejemplo:
A los métodos que están definidos en un módulo no los podemos acceder directamente, tenemos que mezclar el módulo dentro de una clase.
Mezclando el módulo
Los módulos se pueden incluir dentro de una clase utilizando la palabra clave include
:
Esto va a incluir todos los métodos de MyModule
dentro de Person
, así que podemos llamar los métodos method_one
y method_two
(que definimos dentro del módulo MyModule
en la sección anterior) sobre instancias de Person
.
Otra ventaja de incluir (o mezclar) un módulo dentro de una clase es que podemos acceder a las clases y las constantes que están definidas dentro del módulo directamente:
Es posible mezclar más de un módulo en una clase. Por ejemplo, suponiendo que existen los módulos Module1
y Module2
, podemos hacer lo siguiente:
Anidando módulos
Es posible anidar módulos dentro de módulos. Por ejemplo:
¿Cómo accedemos a la clase Dollar
? De la siguiente forma:
Last updated