Как я могу перезагрузить скрипт в IRB?



Я пишу скрипт Ruby для использования в среде Rails, но я решил запустить его из irb, потому что перезагрузка консоли Rails может быть болью. Теперь время ожидания намного короче от irb, но меня беспокоит, что мне нужно перезапустить irb и требовать сценарий каждый раз, когда я делаю изменения. Есть ли более простой способ перезагрузки скрипта из irb?

Я нашел метод в этой теме, но это относится только к файлам gem, по-видимому. Мое заявление require выглядит так это

 require "#{File.expand_path(__FILE__)}/../lib/query"

EDIT: попробовав load, а не require, Я все еще не мог заставить его работать. Я не могу остановить эти ошибки.

ruby-1.9.2-p0 > load "#{File.expand_path(__FILE__)}/../lib/query.rb"
LoadError: no such file to load -- /Users/newuser/Dropbox/Sites/rails/hacknyc/(irb)/../lib/query.rb
93   4  

4 ответов:

в irb,File.expand_path(__FILE__)} будет возвращать "#{path you ran irb from}/(irb)". Которая создает путь, который на самом деле не существует. К счастью, все пути к файлам относятся к тому, где вы запускали irb в любом случае. Это означает, что все, что вам нужно, это:

load "lib/query.rb"

если вы хотите использовать __FILE__ в реальном файле это нормально, но не ожидайте, что он создаст допустимый путь в irb. Поскольку irb вообще не существует" файла", поэтому он вообще не может возвращать допустимый путь.

и __FILE__ будет работать нормально, если используется в файл, загруженный в irb через нагрузку или требуйте. Потому что именно для этого он и нужен.

вместо require попробуй load. Первый загружает исходный файл только один раз, а второй загружает его каждый раз, когда вы его вызываете.

по данным этой ссылке вам нужно загрузить файл и не забыть расширение.

вот более причудливая версия для использования тоже в эта ссылка номер 2 что может быть полезно для вас тоже.

вы можете попробовать хешировать, почему ваша консоль rails не работает для вас.

Я думаю load Это то, что вы ищете.

    Ничего не найдено.

Добавить ответ:
Отменить.