2011-03-24 9 views
11

Rails ma przydatne polecenie rails console, które pobiera wszystkie niezbędne dane, a następnie możemy wchodzić w interakcje z projektem szyn w irb. Czy istnieje taka sama technika dla projektu Ruby (zbudowany na języku Ruby)? Dzięki tej sztuczce mogę grać z projektem Ruby w irb bez żadnych obaw dotyczących ładowania bibliotek, modułów, klas, plików i tak dalej. Dziękiautomatycznie ładuje środowisko projektu do irb

Odpowiedz

14

Twój projekt powinien mieć jeden plik, który ładuje środowisko. Zakładając, że twój projekt znajduje się w lib/project.rb, to po prostu:

$ irb -Ilib -rproject 
1

Z jednego z moich projektów:

# Creates an IRB console useful for debugging experiments 
# Loads up the environment for the condition passed 
def console 
    File.open("./tmp/irb-setup.rb", 'w') do |f| 
    f.puts "# Initializes the environment for IRb." 
    f.puts "Code to initialize your project here" 
    f.puts "$: << '#{File.expand_path(".")}/'" #handle load path  
    end 
    irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb' 
    # require your code 
    libs = " -r irb/completion" 
    libs << " -r #{File.dirname(__FILE__) + "/base"}" 
    libs << " -r ./tmp/irb-setup.rb" # require the config file you just wrote 
    puts "Loading #{@options.env} environment..." 
    exec "#{irb} #{libs} --simple-prompt" 
end 

Sztuką jest, aby skonstruować IRB polecenie autorequire cały kod potrzebujesz. Potrzebowałem również konfiguracji, więc dodaję magię pisania pliku, który potrzebuję w IRb.

+0

Proszę wyjaśnić, gdzie umieścić tę funkcję w projekcie i jak się z nią połączyć. – megas

+0

Ten rodzaj zależy od tego, jak zorganizowany jest twój projekt. Mam plik, który zawiera narzędzie wiersza poleceń, które robi takie rzeczy jak generatory, serwery, uruchamianie kodu itp. Ale jeśli umieścisz plik 'console.rb' i na końcu po prostu dodaj' console', to powinno działać, kiedy uruchom go za pomocą 'ruby console.rb' powinno działać. Będziesz musiał dostosować go do swoich potrzeb, próbowałem wskazać gdzie. –

0

W moim przypadku mój skrypt inicjalizacyjny był w bieżącym katalogu roboczym. Poniższy pracował dla mnie.

irb -r ./setup.rb 
Powiązane problemy