
Metaprogramación en Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1¿Qué es la metaprogramación en Ruby?
¿Qué es la metaprogramación en Ruby?
Respuesta
La metaprogramación es la capacidad de un programa para escribir o modificar código en tiempo de ejecución. En Ruby, esto permite definir métodos, clases y módulos de forma dinámica, haciendo el código más flexible y conciso. Esta técnica se usa ampliamente en frameworks como Rails para crear DSLs elegantes y reducir la duplicación de código.
2¿Cuál es el propósito del método define_method en Ruby?
¿Cuál es el propósito del método define_method en Ruby?
Respuesta
define_method permite crear métodos dinámicamente en tiempo de ejecución. Recibe un nombre de método (símbolo o cadena) y un bloque que define el cuerpo del método. A diferencia de def, define_method captura las variables locales del scope envolvente mediante una closure, lo que resulta útil para generar métodos con comportamientos parametrizados.
3¿Cuándo invoca Ruby al método method_missing?
¿Cuándo invoca Ruby al método method_missing?
Respuesta
method_missing se llama automáticamente cuando un objeto recibe una llamada a un método que no existe en su cadena de herencia. Recibe el nombre del método invocado y sus argumentos, lo que permite manejar dinámicamente esas llamadas. Es la base de muchos patrones de metaprogramación, como los ghost methods utilizados en ActiveRecord.
¿Cuál es la principal diferencia entre class_eval e instance_eval?
¿Qué hook se llama cuando un module se incluye en una clase?
+17 preguntas de entrevista
Otros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programación orientada a objetos en Ruby
Fundamentos de Rails
Routing & Controllers
Fundamentos de ActiveRecord
Views y plantillas ERB
Asociaciones de ActiveRecord
Consultas avanzadas de ActiveRecord
Formularios Rails
Autenticación y Autorización
Asset Pipeline moderno y frontend
Modo API de Rails
Pruebas con RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estrategias de caching
Migraciones avanzadas
Rails Engines y apps modulares
Optimización del rendimiento
Patrones de diseño en Rails
Seguridad en Rails
GraphQL con Rails
Despliegue y Producción
Monitoring & Logging
Estrategias de actualización de Rails
Domina Ruby on Rails para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis