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?
5
A
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ì.
Lì does not seem to be any documentation per i metodi su BasicObject
.
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
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