2011-01-28 16 views
5

Perdona mi ignorancia, pero me falta algo aquí. Puedo encontrar la documentación para instance_eval para ruby ​​1.8.7 en la clase Object, pero no puedo encontrarla en ningún lado para 1.9.2. Sé que la funcionalidad todavía es compatible ya que la estoy usando. ¿Hay alguna clase de padres secreta a la que se haya movido?¿Dónde se define instance_eval en Ruby 1.9.2?

Respuesta

5

Si lo hace Object.superclass verá que es BasicObject que no tiene superclase. El uso de BasicObject.public_methods revela que instance_eval se define allí.

Hay does not seem to be any documentation para los métodos en BasicObject.

+1

Ahh veo. ¿Hay alguna razón particular por la cual la documentación no existe? ¿Están tratando de desalentar el uso de 'instance_eval'? También noté que 'method_missing' no está documentado en ninguna parte. Además, la documentación actual de BasicObject está aquí: http://ruby-doc.org/core-1.9/classes/BasicObject.html. – elmt

+2

También detecté ese enlace, pero los documentos bajo /core-1.9 son para 1.9, mientras que los documentos bajo/núcleo son los más recientes (actualmente 1.9.2). Parece que la definición de 'BasicObject' se ha movido de [object.c] (https://github.com/ruby/ruby/blob/v1_9_0_0/object.c) a [class.c] (https: // github .com/ruby ​​/ ruby ​​/ blob/ruby_1_9_2/class.c) en el cambio de 1.9 a 1.9.2, por lo que podría representar la pequeña cantidad de documentación que se puede ver en core-1.9. – mikej

Cuestiones relacionadas