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 :