2012-02-27 45 views

Trả lời

61

Nó phụ thuộc vào nền tảng của bạn, và làm thế nào Ruby đã biên soạn, vì vậy không có "the" câu trả lời cho điều này. Bạn có thể tìm hiểu bằng cách chạy:

ruby -e 'puts $:' 

Thông thường, bạn có đường dẫn thư viện chuẩn, trang web và nhà cung cấp dưới mỗi bản.

+3

Có một "câu trả lời". Biến $: hoặc $ LOAD_PATH thực sự cung cấp danh sách đầy đủ các địa điểm được tìm kiếm. Bản thân bạn đã lưu ý một cách đơn giản và sạch sẽ để in ra ... – Perry

+2

Ah. Phụ thuộc vào cách bạn đọc câu hỏi: có "câu trả lời" cho Ruby trông ở đâu, nhưng nó sẽ thay đổi nếu bạn chạy một Ruby khác hoặc trên một nền tảng khác. ví dụ: MRI 1.8.7 và REE sẽ sử dụng các đường dẫn khác nhau, hoặc Darwin và Linux MRI sử dụng các đường dẫn khác nhau một cách tinh tế. Tôi không chắc chắn, vì vậy cảm thấy thoải mái hơn với câu trả lời này. –

+2

Điều đó là đủ, mặc dù tôi đoán người hỏi chỉ đơn giản muốn biết làm thế nào để tìm hiểu đường dẫn tải là gì thay vì giả sử nó là không đổi trên các nền tảng. – Perry

1

yêu cầu (chuỗi) => true hoặc false

Ruby cố gắng tải thư viện có tên chuỗi, trả về true nếu thành công. Nếu tên tệp không giải quyết thành đường dẫn tuyệt đối, tên tệp sẽ được tìm kiếm trong các thư mục được liệt kê bằng $ :. Nếu tệp có phần mở rộng ".rb", tệp được tải dưới dạng tệp nguồn; nếu phần mở rộng là ".so", ".o" hoặc ".dll" hoặc bất kỳ tiện ích mở rộng thư viện được chia sẻ mặc định nào trên nền tảng hiện tại, Ruby tải thư viện được chia sẻ dưới dạng tiện ích mở rộng của Ruby. Nếu không, Ruby sẽ thêm ".rb", ".so", v.v. vào tên. Tên của tính năng được nạp sẽ được thêm vào mảng bằng $ :.

22

Ruby tìm tất cả các đường dẫn được chỉ định trong mảng $LOAD_PATH.

Bạn cũng có thể thêm một thư mục để tìm kiếm như vậy:

$LOAD_PATH.unshift File.expand_path('../path/from/this/file/to/another/directory', __FILE__) 
+0

Chính xác những gì tôi cần. Cảm ơn! – Kilhoffer

7

đường dẫn bổ sung có thể được xác định bằng cách thiết lập RUBYLIB biến môi trường

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