Как запустить .rb файл из IRB?

88

Я начинаю с Ruby on Rails. В настоящее время я просматриваю учебник, в котором говорится, что мне нужно запустить файл .rb из IRB, и это создаст файл .xml в моем текущем каталоге.

У меня вопрос: как запустить файл .rb в IRB?
И должен ли я находиться в каталоге, в котором находится этот файл .rb, когда я запускаю его в IRB?

Я пробовал следующее: просто набирал текст irbв командной строке в каталоге файла. Насколько я понимаю, начинается сессия IRB.
Затем я набрал, irb "filename.rb"который прошел, но ничего не создал в текущем каталоге, но, по крайней мере, не дал никаких ошибок.

Я также перепробовал массу других вещей, которые просто выдавали мне ошибки. Поэтому я не думаю, что смогу решить эту проблему самостоятельно, и поиск в Google совершенно не помог.

Я бегаю с Леопардом.

Катрина
источник

Ответы:

175

Вы можете «запустить» файл в irb, просто запросив или загрузив его.

$ irb
>> load './filename.rb'

Чтобы изменить текущий рабочий каталог в irb, вы можете использовать FileUtils :

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory
J -_- L
источник
3
чтобы потребовать его от irb, вам нужно предоставить полный путь, например: require '~/myrubystuff/coolstuff.rb' вместо just require 'coolstuff'
runlevel0
Я смог запросить только fileutilsпо имени, путь к каталогу не нужен. Я уверен, что это зависит от среды, и не всем нужно будет использовать квалифицированный путь.
volx757 09
5

Если вы хотите, чтобы ваш файл был загружен в сеансе irb, и вы используете Ruby 2+, вы можете загрузить файл в irb следующим образом:

irb -r ./the_name_of_your_file.rb

Это открывает сеанс irb с загруженным файлом.

Представьте, что у вас есть файл с таким классом:

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

Вы сможете использовать класс Example в сеансе irb .

Габриэль Лиденор
источник
это было то, что я действительно искал, большое спасибо!
томас
Это дает доступ только к функциям, а не к переменным, определенным в файле.
Радон Росборо
2

Мы можем просто создать файл .rb в каталоге, в котором вы в настоящее время работаете, с помощью любого текстового редактора и ввести весь код в нем, а затем использовать команду ruby filename.rbв терминале, а не в irb, тогда он покажет вывод в irb.

Шринивас
источник
4
Но, загрузив файл, вы можете получить доступ к определенным там переменным. Удобно при устранении неполадок или игре с библиотекой.
Соня Хэмилтон,
@Sreenivas Это было именно то, что я искал. Благодарность!
Джошуа Пинтер