Ruby on Rails Es un magnífico marco de trabajo de código abierto para aplicaciones web «full-stack» que da prioridad a las convenciones 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. Rubí Módulos proporcionar una estructura para agrupar clases, métodos y constantes de Ruby en una única unidad, con un nombre y una definición propios.
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.
Creación de un módulo en Ruby
Crear un módulo es similar a crear una clase, salvo que se utiliza la palabra clave «module» en lugar de la palabra clave «class».
módulo MyFirstModule
def say_hello
puts "Hola"
end
end
Los módulos no se pueden instanciar. Para utilizar un módulo, debes incluirlo o heredarlo dentro de una clase.
Uso de «include» y «extend»
- incluir
Incorpora los métodos del módulo como métodos de instancia de la clase.
- ampliar
Incorpora los métodos del módulo como métodos de la clase.
Ejemplo
módulo ReusableModule
def module_method
puts "Método del módulo: ¡Hola!"
end
end
clase ClassThatIncludes
include ReusableModule
end
clase ClassThatExtends
extend ReusableModule
end
puts "Incluir"
ClassThatIncludes.new.module_method
# => "Método del módulo: ¡Hola!"
puts "Extender"
ClassThatExtends.module_method
# => "Método del módulo: ¡Hola!"
Otros conceptos importantes sobre los módulos en Ruby
1. Conceptos básicos sobre la búsqueda de métodos:
módulo M
def report
puts "'report', método del módulo M"
end
end
clase C
include M
end
clase D < C
end
obj = D.new
obj.report
Producción:
'Método 'report» del módulo M
Cómo funciona la búsqueda de métodos
Cuando un objeto de Ruby recibe un mensaje (una llamada a un método), busca el método en este orden:
- La clase «objetos» (D)
- Módulos incluidos en la asignatura (D)
- La superclase (C)
- Módulos incluidos en la superclase (M)
- Continuar subiendo por la cadena de sucesión
En este caso:
- D no define el informe
- En C no se define «report»
- C incluye el módulo M
- M define el informe, por lo que Ruby lo ejecuta
2. Definir el mismo método más de una vez
Si un método se define varias veces, prevalece la última definición. Esto se aplica tanto a las clases como a los módulos.
módulo InterestBearing
def calcular_intereses
puts "¡Marca de posición! Estamos en el módulo InterestBearing."
end
end
clase BankAccount
include InterestBearing
def calcular_intereses
puts "¡Marca de posición! Estamos en la clase BankAccount."
puts "¡Y estamos sobrescribiendo el método calculate_interest!"
end
end
cuenta = BankAccount.new
cuenta.calculate_interest
Producción:
¡Marca de posición! Estamos en la clase «BankAccount».
¡Y estamos sobrescribiendo el método `calculate_interest`!
El método de clase anula el método del módulo.
3. Incorporación de varios módulos de Ruby con el mismo nombre de método
módulo M
def report
puts "Método 'report' en el módulo M"
end
end
módulo N
def report
puts "Método 'report' en el módulo N"
end
end
class C
include M
include N
end
c = C.new
c.report
Producción:
'Método 'report» del módulo N
El último módulo incluido tiene prioridad porque aparece en primer lugar en la ruta de búsqueda de métodos.
4. Cómo incluir un módulo de Ruby más de una vez
clase C include M include N include M fin c = C.new c.report
Producción:
'Método 'report» del módulo N
Explicación
Volver a incluir un módulo no tiene ningún efecto si este ya se encuentra en la ruta de búsqueda. Ruby no lo vuelve a colocar al principio. El módulo nuevo (N) incluido más recientemente sigue teniendo prioridad.
5. Uso de «super» con los módulos de Ruby
La palabra clave «super» te permite llamar al método siguiente en la cadena de búsqueda de métodos.
módulo M
def report
puts "Método 'report' en el módulo M"
end
end
clase C
include M
def report
puts "Método 'report' en la clase C"
puts "A punto de activar el método "report" de nivel superior...'
super
puts 'De vuelta de la llamada a "super'."
end
end
c = C.new
c.report
Producción:
'Método 'report' de la clase C A punto de activar el método 'report' del nivel superior... Método 'report» del módulo M De vuelta tras la llamada a «super».
¿Qué pasa aquí?
- Ruby ejecuta primero «report» en la clase C
- «super» invoca el siguiente método de informe de la cadena de búsqueda (del módulo M)
- A continuación, el control vuelve al método de clase
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 :