Esto no se como postearlo, pero no es un spam. Veanló por ustedes mismos.
Más Sobre los métodos eval() (y module_eval() e instance_eval())
In metaprogramming, ruby on Enero 25, 2008 at 11:43 amLeyendo el post de Ola Bini sobre antipatrones(Recomiendo leer también los comentarios) se encontró con un problema cuando se intenta realizar un debug sobre el método eval(), instance_eval() y module_eval().
El problema es el siguiente:
Si se utliza eval() de la sisguiente forma :
eval("puts 'Hola Mundo'")
el tracer no brindará toda la información necesaria para para el debugging. La forma correcta de su uso es:
eval("puts 'Hola Mundo'" , binding , __FILE__ , __LINE__ )
Diferencias entre métodos eval(), y module_eval()
In metaprogramming, ruby on Enero 24, 2008 at 5:11 pmMuchos desarolladores no entienden muy bien la diferencia entre el metodo eval() y module_eval().
Bueno voy a explicarlo de forma sencilla traduciendo un mail de Matz a la lista de ruby-dev:
eval() evalúa un string sobre el contexto actual.
module_eval() evalúa un string/block sobre el conexto del modulo. Si se evalúa la sentencia ‘def’ con eval(), un método va a ser definido en módulo actual. Un método será definido para una clase o módulo mediante module_eval().