class_variable_defined? NoMethodError: Ruby 1.8.5
Tuesday, October 7th, 2008Se você usa metaprogramação em Ruby fique atento com os servidores desatualizados por aí. O método Object.class_variable_defined? não existe na versão 1.8.5 apenas nas mais versões novas.
Usando Ruby 1.8.5 (2006-08-25) [i486-linux]
Object.class_variable_defined? :@@coisa #=> NoMethodError: undefined method
Usando Ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
Object.class_variable_defined? :@@coisa #=> false
Solução rápida
Adicionar o método na classe Object que faça o mesmo papel.
def Object.class_variable_defined?(pseudo_var) Object.class_variables.include?(pseudo_var.to_s) end
Compatibilizando o código sem alterar o core
def Object.class_variable_defined?(pseudo_var) Object.class_variables.include?(pseudo_var.to_s) end unless Object.respond_to? :class_variable_defined?
Não deixe que isso consuma 3 horas do seu trabalho como acabou de acontecer comigo