2011-01-28 17 views
5

Perdona la mia ignoranza, ma qui mi manca qualcosa. Posso trovare la documentazione per instance_eval per ruby ​​1.8.7 nella classe Object, ma non riesco a trovarla da nessuna parte per 1.9.2. So che la funzionalità è ancora supportata dal momento che la sto usando. C'è qualche classe genitore segreta a cui è stato trasferito?Dove è definito instance_eval in Ruby 1.9.2?

risposta

5

Se si fa Object.superclass vedrai che è BasicObject che di per sé non ha una superclasse. L'utilizzo di BasicObject.public_methods rivela che instance_eval è definito lì.

does not seem to be any documentation per i metodi su BasicObject.

+1

Ah, capisco. C'è qualche ragione particolare per cui la documentazione non esiste? Stanno cercando di scoraggiare l'uso di 'instance_eval'? Ho anche notato che 'method_missing' non è documentato da nessuna parte? Inoltre, la documentazione effettiva per BasicObject è qui: http://ruby-doc.org/core-1.9/classes/BasicObject.html. – elmt

+2

Ho notato anche questo link, ma i documenti sotto /core -1.9 sono per 1.9 mentre i documenti under/core sono per l'ultimo (attualmente 1.9.2). Sembra che la definizione di "BasicObject" sia stata spostata da [object.c] (https://github.com/ruby/ruby/blob/v1_9_0/object.c) a [class.c] (https: // github .com/ruby ​​/ ruby ​​/ blob/ruby_1_9_2/class.c) nel passaggio da 1,9 a 1,9,2, in modo che possa tenere conto della piccola quantità di documentazione che è possibile vedere in core-1.9. – mikej

Problemi correlati