2012-02-27 10 views

Odpowiedz

61

To zależy od platformy i jak Ruby został skompilowany, więc nie ma „ten” Odpowiedź na to pytanie. Można dowiedzieć się, uruchamiając:

ruby -e 'puts $:' 

Generalnie jednak, masz standardowe, witryny i ścieżek sprzedawca Ruby bibliotecznych, w tym łuku, wersję i ogólnym katalogu pod siebie.

+3

Jest „the” odpowiedź. Zmienna $: lub $ LOAD_PATH rzeczywiście podaje pełną listę przeszukiwanych miejsc. Sam zauważyłeś prosty i czysty sposób na wydrukowanie tego ... – Perry

+2

Ah. Zależy od tego, jak czytasz pytanie: istnieje "odpowiedź" na pytanie, gdzie ta rubin wygląda, ale zmieni się, jeśli uruchomisz inną Ruby lub na innej platformie. np .: MRI 1.8.7 i REE używają różnych ścieżek, lub Darwin i MRI Linuksa używają subtelnie różnych ścieżek. Nie byłem pewien, który z nich, więc czułem się bardziej komfortowo z tą odpowiedzią. –

+2

To prawda mało, choć Zgaduję pytającego po prostu chciał wiedzieć, w jaki sposób dowiedzieć się, co ścieżka obciążenie było zamiast zakładając, że była stała na różnych platformach. – Perry

1

require (string) => true lub false

Ruby próbuje załadować biblioteki nazwie ciąg, zwracając true, jeśli sukces. Jeśli nazwa pliku nie zostanie przekształcona w ścieżkę bezwzględną, zostanie przeszukana w katalogach podanych w $ :. Jeśli plik ma rozszerzenie ".rb", jest on ładowany jako plik źródłowy; jeżeli przedłużenie to „.so”, „.o” lub „.dll”, lub cokolwiek domyślnym rozszerzeniem biblioteki dzielone jest na obecnej platformie, Ruby ładuje bibliotekę współdzieloną jako rozszerzenie Ruby. W przeciwnym razie, Ruby próbuje dodać ".rb", ".so" i tak dalej do nazwy. Nazwa załadowanego obiektu jest dodawana do tablicy w $ :.

22

Ruby wygląda we wszystkich ścieżek określonych w tablicy $LOAD_PATH.

Można również dodać katalog do wyszukiwania tak:

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

Dokładnie to, czego potrzebowałem. Dzięki! – Kilhoffer

7

dodatkowe ścieżki może być określony przez ustawienie zmiennej środowiska RUBYLIB

Powiązane problemy