2011-01-28 38 views
5

Tha thứ cho sự thiếu hiểu biết của tôi, nhưng tôi phải bỏ lỡ điều gì đó ở đây. Tôi có thể tìm thấy tài liệu cho instance_eval cho ruby ​​1.8.7 trong lớp Object, nhưng tôi không thể tìm thấy tài liệu ở bất kỳ đâu cho 1.9.2. Tôi biết chức năng vẫn được hỗ trợ kể từ khi tôi sử dụng nó. Có một số lớp cha mẹ bí mật mà nó đã được chuyển đến?Trường hợp instance_eval được định nghĩa trong Ruby 1.9.2?

Trả lời

5

Nếu bạn làm Object.superclass, bạn sẽ thấy rằng đó là BasicObject chính nó không có siêu lớp. Sử dụng BasicObject.public_methods cho biết rằng instance_eval được xác định tại đó.

does not seem to be any documentation cho các phương pháp trên BasicObject.

+1

Ahh tôi hiểu rồi. Có lý do cụ thể nào khiến tài liệu không tồn tại? Họ đang cố gắng ngăn cản việc sử dụng 'instance_eval'? Tôi cũng nhận thấy rằng 'method_missing' không được ghi lại ở bất cứ đâu? Ngoài ra, tài liệu thực tế cho BasicObject là ở đây: http://ruby-doc.org/core-1.9/classes/BasicObject.html. – elmt

+2

Tôi phát hiện ra liên kết đó, nhưng các tài liệu dưới /core-1.9 là 1,9 trong khi các tài liệu dưới/lõi là mới nhất (hiện tại là 1.9.2). Có vẻ như định nghĩa của 'BasicObject' đã chuyển từ [object.c] (https://github.com/ruby/ruby/blob/v1_9_0_0/object.c) thành [class.c] (https: // github .com/ruby ​​/ ruby ​​/ blob/ruby_1_9_2/class.c) khi di chuyển từ 1.9 đến 1.9.2 để có thể tính toán số lượng tài liệu nhỏ bạn có thể thấy trong lõi-1.9. – mikej

Các vấn đề liên quan