nicolas55ar

Diferencias entre métodos eval(), y module_eval()

In metaprogramming, ruby on Enero 24, 2008 at 5:11 pm

Muchos 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().

You must be logged in to post a comment.