Los conceptos básicos de la creación y el uso de módulos en Rails

Ruby on Rails es un maravilloso marco de aplicaciones web de código abierto y completo que favorece la convención sobre la configuración.

Con componentes reutilizables y fácilmente configurables que normalmente se utilizan para crear aplicaciones, crear aplicaciones en Rails es más rápido y sencillo, lo que se traduce en una mayor productividad y crecimiento empresarial.

Está ganando terreno entre los desarrolladores, ya que es flexible, escalable y fácil para los desarrolladores web escribir y mantener aplicaciones.

Ruby on Rails Pone énfasis en el uso de patrones y principios de ingeniería conocidos para reducir la carga de trabajo al crear aplicaciones web.

Aunque existen múltiples métodos para resolver un desafío de programación, Ruby profesa confiar en patrones comúnmente utilizados que hacen que los sitios web Rails sean más fáciles de mantener y actualizar.

Las bibliotecas de código abierto con bloques más pequeños de código Rails que resuelven problemas particulares se utilizan comúnmente para reducir la sobrecarga de desarrollo.

Con la ayuda de dichos bloques de código, los desarrolladores pueden insertar gemas estables y bien probadas en lugar de perder tiempo escribiendo el mismo tipo de códigos. Una de las herramientas más poderosas en la caja de herramientas de un programador Ruby es el módulo.

Los módulos proporcionan una estructura para recopilar clases, métodos y constantes de Ruby en una única unidad definida y con nombre por separado.

Esto es útil para evitar conflictos con clases, métodos y constantes existentes, y también para poder agregar (mezclar) la funcionalidad de los módulos en sus clases.

Crear un módulo: escribir un módulo es similar a escribir una clase, excepto que comienza su definición con la palabra clave module en lugar de la palabra clave class.

módulo MiPrimerMódulo

def decir hola

pone "Hola"

fin

fin

Como no podemos crear una instancia del módulo, para usarlo necesitamos extenderlo e incluirlo en una clase.

incluir: mezclas en métodos de módulo especificados como métodos de instancia en la clase de destino

extender: mezcla métodos de módulo especificados como métodos de clase en la clase de destino

módulo Módulo reutilizable

def método_módulo

pone "Método del módulo: ¡Hola!"

fin

fin

clase Clase que incluye

incluir módulo reutilizable

fin

clase Clase que se extiende

extender el módulo reutilizable

fin

pone “Incluir”

ClassThatIncludes.new.module_method # “Método del módulo: ¡Hola!”

pone “Extender”

ClassThatExtends.module_method # “Método del módulo: ¡Hola!”

============================================================

Otro punto sobre el módulo en Ruby:

1: ) Ilustrando los conceptos básicos de la búsqueda de métodos:

módulo m

informe de definición

pone "método 'informe' en el módulo M"

fin

fin

clase C

incluir M

fin

clase D < C

fin

obj = D.nuevo

informe.obj

Producción:

#=> método 'informe' en el módulo M

Flujo de trabajo: supongamos que soy un objeto Ruby y me han enviado el mensaje "informe". Tengo que intentar encontrar un método llamado informe en mi método.

ruta de búsqueda. El informe, si existe, reside en una clase o módulo.

Soy una instancia de una clase llamada D. ¿D define un informe de método de instancia?

No.

¿D se mezcla en algún módulo?

No.

¿La superclase de D, C, define un método de instancia de informe?

No.

¿C se mezcla en algún módulo?

Si m.

¿M define un método de informe?

Sí.

¡Bien! Ejecutaré ese método.

2:) Definir el mismo método más de una vez:

Si define un método dos veces dentro de la misma clase, la segunda definición tiene prioridad sobre la primera. Lo mismo ocurre con los módulos.

módulo de Intereses

def calcular_interés

pone “¡Marcador de posición! Estamos en el módulo InterestBearing”.

fin

fin

clase cuenta bancaria

incluir intereses que devengan

def calcular_interés

pone “¡Marcador de posición! Estamos en la clase Cuenta Bancaria”.

pone "¡Y estamos anulando el método calcular_interés!"

fin

fin

cuenta = CuentaBancaria.nueva

cuenta.calcular_interés

Producción:

#=>¡Marcador de posición! Estamos en la clase Cuenta Bancaria.

#=>¡Y estamos anulando el método calcular_interés!

3:) Mezclar en dos módulos con un método del mismo nombre definido:

módulo m

informe de definición

pone "método 'informe' en el módulo M"

fin

fin

módulo norte

informe de definición

pone "método 'informe' en el módulo N"

fin

fin

clase C

incluir M

incluir norte

fin

c = C.nuevo

c.informe

Producción:

#=> método report' en módulo N

4:) Incluir un módulo más de una vez

clase C

incluir M

incluir norte

incluir M

fin

c = C.nuevo

c.informe

#=> método report' en módulo N

Flujo de trabajo:

Es de esperar que cuando ejecute el método de informe, obtenga la versión de M, porque M fue el módulo incluido más recientemente.

Pero volver a incluir un módulo no hace nada. Debido a que M ya se encuentra en la ruta de búsqueda, la segunda instrucción de inclusión de M no tiene ningún efecto. N todavía se considera el módulo incluido más recientemente:

5 :) Subir por la ruta de búsqueda de métodos con super: dentro del cuerpo de una definición de método, puede usar la palabra clave super para saltar a la siguiente definición más alta, en la ruta de búsqueda de métodos, del método que está actualmente ejecutando.

módulo m

informe de definición

pone "método 'informe' en el módulo M"

fin

fin

clase C

incluir M

informe de definición

pone "método 'informe' en la clase C"

pone "A punto de activar el siguiente método de informe superior..."

súper

pone "De regreso de la 'súper' llamada".

fin

fin

B

C

D

c = C.nuevo

c.informe

#=> método 'informe' en clase C

A punto de activar el siguiente método de informe superior...

Método 'report' en el módulo M Regreso de la llamada 'super'.

RielesCarma ha estado trabajando en RoR desde su etapa inicial y con una sólida fuerza laboral capacitada en RoR, ha crecido hasta convertirse en un nombre altamente confiable en consultoría, arquitectura, construcción, administración y extensión de Ruby on Rails para empresas de todo el mundo. 

Leer más : 

Implementación de TinyMCE en Ruby on Rails
Comprensión del complemento de canalización de activos
Asociaciones polimórficas con registro activo
Una forma sencilla de aumentar el rendimiento de su aplicación Rails

Póngase en contacto con nosotros.

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish