Używam IRB (interaktywnej konsoli Ruby), aby nauczyć się programować w Rubim. Jak załadować plik do konsoli, jeśli najpierw napiszę programy w edytorze tekstu?
Używam IRB (interaktywnej konsoli Ruby), aby nauczyć się programować w Rubim. Jak załadować plik do konsoli, jeśli najpierw napiszę programy w edytorze tekstu?
Odpowiedzi:
Jeśli potrzebujesz tylko załadować jeden plik do IRB, możesz go wywołać, irb -r ./your_file.rb
jeśli znajduje się w tym samym katalogu.
To automatycznie wymaga pliku i umożliwia natychmiastową pracę z nim.
rake irb
i robi to wszystko za mnie.
irb -r /foo/foo.rb
Używając Ruby 1.9.3 na Ubuntu 14.04, mogę ładować pliki z bieżącego katalogu do irb
następującego wiersza poleceń:
irb -I . -r foo.rb
gdzie foo.rb
jest plik, który chcę załadować z mojego bieżącego katalogu. Ta -I
opcja jest konieczna, aby dodać bieżący katalog ( .
) do ścieżki ładowania ruby, jak wyjaśniono na stronie podręcznika dla ruby. Dzięki temu możliwe jest require
pobieranie plików z bieżącego katalogu, co realizuje -r
opcja irb
.
Kluczowym elementem, który nie był dla mnie oczywisty, kiedy miałem ten problem, jest -I
opcja. Gdy to zrobisz, możesz wywołać require 'foo.rb'
z wewnątrz irb
dowolne pliki w bieżącym katalogu. Oczywiście możesz określić dowolny katalog, nie tylko .
za pomocą -I
opcji. Aby uwzględnić wiele katalogów na ścieżce ładowania, oddziel je dwukropkiem (:), np .:
irb -I foo/:bar/:baz/
Ta komenda doda katalogi foo
, bar
oraz baz
do ścieżki obciążenia Rubiego.
Ostatnią alternatywą jest użycie względnej lub bezwzględnej ścieżki do pliku podczas używania require
lub -r
wczytywania pliku:
irb -r ./foo.rb
lub od wewnątrz irb
:
> require './foo.rb'
Wpisz irb
I wtedy
require './ruby_file.rb'
Zakłada się, że plik ruby_file.rb znajduje się w tym samym katalogu. Odpowiednio wyreguluj.
require_relative
. Np. require "./lib/foo"
Robi to samo corequire_relative "lib/foo"
.rb
jest opcjonalne, możesz napisać require './ruby_file'. I checked in
ruby 1.9.3p551`
Dwie drogi:
source("filename.rb")
require("filename.rb")
require
który nie wydaje się, aby ponownie załadować skrypt (wszelkie modyfikacje oryginalnego źródła nie są odzwierciedlane w twojej sesji), podczas gdy source
wydaje się odzwierciedlać zmiany w oryginalnym skrypcie.
To zależy od twojego rubinu. Ruby 1.8 zawiera twoją aktualną ścieżkę, podczas gdy Ruby 1.9 nie. Oceń, $:
aby określić, czy Twoja ścieżka jest uwzględniona, czy nie. Więc w ruby 1.9 musisz użyć całej ścieżki, co jest zawsze bezpiecznym zakładem.
Następnie możesz użyć require
lub, load
aby dołączyć plik.
require
nie wymaga dodawania sufiksu pliku podczas próby jego znalezienia i uwzględni plik tylko raz. require
powinien być używany zamiast tego przez load
większość czasu.
Sprawdź Dodawanie katalogu do $ LOAD_PATH (Ruby), jeśli zamierzasz używać Ruby 1.8
Wpisz kody ruby w edytorze tekstu
Zapisz go z rozszerzeniem .rb (na przykład: demo.rb ).
W Linuksie otwórz terminal, a następnie zmień katalog na bieżącą lokalizację tego pliku (polecenie cd służy do zmiany katalogu).
Następnie wpisz irb i nazwę pliku (nie zapomnij dołączyć rozszerzenia (.rb)).
Na tym obrazku załadowałem prosty plik ruby, który wyświetla tylko "ruby".
Innym sposobem załadowania ścieżki do irb jest po prostu wpisanie wymagaj, a następnie przeciągnięcie i upuszczenie pliku do terminala. -Testowane przy użyciu Linux Mint.