Przebaczam moją ignorancję, ale muszę tu czegoś pomijać. Mogę znaleźć dokumentację dla instance_eval dla ruby 1.8.7 w klasie Object
, ale po prostu nie mogę jej znaleźć nigdzie dla 1.9.2. Wiem, że funkcjonalność jest nadal obsługiwana, ponieważ go używam. Czy jest jakiś tajny rodzic, do którego został przeniesiony?Gdzie jest wartość instance_eval zdefiniowana w Rubim 1.9.2?
5
A
Odpowiedz
5
Jeśli zrobisz Object.superclass
zobaczysz, że jest to BasicObject
, który sam w sobie nie ma żadnej nadklasy. Zastosowanie BasicObject.public_methods
ujawnia, że jest tam zdefiniowany instance_eval
.
Istnieje does not seem to be any documentation dla metod na BasicObject
.
Ahh Rozumiem. Czy istnieje jakiś szczególny powód, dla którego dokumentacja nie istnieje? Czy próbują zniechęcić użycie 'instance_eval'? Zauważyłem również, że 'method_missing' nie jest nigdzie udokumentowane? Rzeczywista dokumentacja BasicObject znajduje się tutaj: http://ruby-doc.org/core-1.9/classes/BasicObject.html. – elmt
Też zauważyłem ten link, ale dokumenty w /core-1,9 są dla 1.9, podczas gdy dokumenty w/core są najnowsze (obecnie 1.9.2). Wygląda na to, że definicja 'BasicObject' została przeniesiona z [object.c] (https://github.com/ruby/ruby/blob/v1_9_0_0/object.c) do [class.c] (https: // github .com/ruby / ruby / blob/ruby_1_9_2/class.c) w ruchu od 1.9 do 1.9.2, więc może to stanowić niewielką ilość dokumentacji, którą można zobaczyć w rdzeniu-1.9. – mikej