Tutorial de Ruby – Parte 32 – Preparando todo para la inicialización

Si nadie se come nuestra fruta madura, quizás es momento de que pague su precio.

 

ruby> class Fruta

ruby| def time_passes

ruby| @condition = «podrida»

ruby| end

ruby| end

nil

ruby> f2

una banana madura

ruby> f2.time_passes

«podrida»

ruby> f2

una banana podrida

 

Pero mientras estábamos jugando con esto se ha introducido un pequeño problema. ¿Qué ocurre si intentamos crear una tercera pieza de fruta en estos momentos? Recuérdese que las variables instancia no existen hasta que no se les asigne valor.

 

ruby> f3 = Fruta.new

ERR: failed to convert nil into String

 

El que se queja es el método inspect y con motivos. Se le ha indicado que informe sobre el tipo y la condición de una pieza de fruta, pero f3 no tiene asignado ninguno de sus atributos. Si se quiere, es posible redefinir este método para que compruebe que las variables instancia están definidas (utilizando el método defined?) e informar de ellos sólo si es así aunque esto puede que no sea de mucha utilidad dado que toda pieza de fruta es de un tipo y está en una determinada condición, parece que se debiera asegurar que los atributos se definen de alguna forma. Este es el tema del siguiente capítulo.

 

Gus Terrera

Apasionado por el agile testing y la ia.

Deja una respuesta