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

puts “Hello”

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

puts “Module Method: Hi there!”

fin

fin

clase Clase que incluye

incluir módulo reutilizable

fin

clase Clase que se extiende

extender el módulo reutilizable

fin

puts “Include”

ClassThatIncludes.new.module_method # “Module Method: Hi there!”

puts “Extend”

ClassThatExtends.module_method # “Module Method: Hi there!”

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

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

puts “‘report’ method in module M”

fin

fin

clase C

incluir M

fin

clase D < C

fin

obj = D.nuevo

informe.obj

Producción:

#=> ‘report’ method in module M

Workflow: Suppose I am a Ruby object, and I’ve been sent the message “report”. I have to try to find a method called report in my method

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.

Does D’s superclass, C, define a report instance method?

No.

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

Si m.

¿M define un método de informe?

Sí.

Good! I’ll execute that method.

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

puts “Placeholder! We’re in module InterestBearing.”

fin

fin

clase cuenta bancaria

incluir intereses que devengan

def calcular_interés

puts “Placeholder! We’re in class BankAccount.”

puts “And we’re overriding the calculate_interest method!”

fin

fin

cuenta = CuentaBancaria.nueva

cuenta.calcular_interés

Producción:

#=>Placeholder! We’re in class BankAccount.

#=>And we’re overriding the calculate_interest method!

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

módulo m

informe de definición

puts “‘report’ method in module M”

fin

fin

módulo norte

informe de definición

puts “‘report’ method in module N”

fin

fin

clase C

incluir M

incluir norte

fin

c = C.nuevo

c.informe

Producción:

#=> report’ method in module 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

#=> report’ method in module N

Flujo de trabajo:

You might expect that when you ran the report method, you’d get M’s version, because M was the most recently included module.

But re-including a module doesn’t do anything. Because M already lies on the search path, the second include M instruction has no effect. N is still considered the most recently included module:

5:) Going up the method search path with super: Inside the body of a method definition, you can use the super keyword to jump up to the next-highest definition, in the method-lookup path, of the method you’re currently executing.

módulo m

informe de definición

puts “‘report’ method in module M”

fin

fin

clase C

incluir M

informe de definición

puts “‘report’ method in class C”

puts “About to trigger the next higher-up report method…”

súper

puts “Back from the ‘super’ call.”

fin

fin

B

C

D

c = C.nuevo

c.informe

#=> ‘report’ method in class C

About to trigger the next higher-up report method…

‘report’ method in module M Back from the ‘super’ call.

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 *

Spanish
English
English
Japanese
German
French
Spanish

envíanos whatsapp

Salir de la versión móvil