Я использую IRB (интерактивную рубиновую консоль), чтобы научиться программировать на Ruby. Как мне загрузить файл в консоль, если я сначала пишу свои программы в текстовом редакторе?
Я использую IRB (интерактивную рубиновую консоль), чтобы научиться программировать на Ruby. Как мне загрузить файл в консоль, если я сначала пишу свои программы в текстовом редакторе?
Ответы:
Если вам нужно загрузить только один файл в IRB, вы можете вызвать его, irb -r ./your_file.rb
если он находится в том же каталоге.
Это автоматически требует наличия файла и позволяет сразу же работать с ним.
rake irb
и он все делал за меня.
irb -r /foo/foo.rb
Используя ruby 1.9.3 в Ubuntu 14.04, я могу загружать файлы из текущего каталога в irb
следующую командную строку:
irb -I . -r foo.rb
где foo.rb
находится файл, который я хочу загрузить из моего текущего каталога. Эта -I
опция необходима для добавления текущего каталога ( .
) к пути загрузки ruby, как описано на странице руководства ruby. Это делает возможным require
файлы из текущего каталога, что и выполняет -r
опция irb
.
Ключевой момент, который не был очевиден для меня, когда у меня была эта проблема, - это -I
вариант. Как только вы это сделаете, вы можете вызвать require 'foo.rb'
изнутри irb
любые файлы в текущем каталоге. И, конечно же, вы можете указать любой каталог, который хотите, а не только .
с -I
опцией. Чтобы включить несколько каталогов в путь загрузки, разделите их двоеточием (:), например:
irb -I foo/:bar/:baz/
Эта команда добавит каталоги foo
, bar
и baz
на пути загрузки рубина.
Последняя альтернатива - использовать относительный или абсолютный путь к файлу при использовании require
или -r
загрузке файла:
irb -r ./foo.rb
или изнутри irb
:
> require './foo.rb'
Печатать irb
А потом
require './ruby_file.rb'
Предполагается, что ruby_file.rb находится в том же каталоге. Отрегулируйте соответственно.
require_relative
. Например , require "./lib/foo"
делает то же самоеrequire_relative "lib/foo"
.rb
необязательно, вы можете написать require './ruby_file'. I checked in
ruby 1.9.3p551`
Два пути:
source("filename.rb")
require("filename.rb")
require
это, похоже, не для перезагрузки скрипта (любые изменения исходного источника не отражаются в вашем сеансе), но, source
похоже, отражает изменения в исходном скрипте.
Это зависит от вашего рубина. Ruby 1.8 включает ваш текущий путь, а Ruby 1.9 - нет. Оцените, $:
включен ли ваш путь или нет. Таким образом, в Ruby 1.9 вы должны использовать весь путь, что всегда безопасно.
Затем вы можете использовать require
или load
для включения файла.
require
не требует, чтобы вы добавляли суффикс файла при попытке его найти, и будет включать файл только один раз. require
следует использовать вместо него load
большую часть времени.
Ознакомьтесь с разделом Добавление каталога в $ LOAD_PATH (Ruby), если вы собираетесь использовать ruby 1.8.
Введите коды рубина в текстовом редакторе
Сохраните его с расширением .rb (например: demo.rb ).
В Linux откройте свой терминал, затем смените каталог на текущее расположение этого файла (для изменения каталога используется команда cd).
После этого введите irb и ваше имя файла (не забудьте указать расширение (.rb)).
В этом изображении я загрузил простой файл ruby, который печатает только «ruby».
Другой способ загрузить путь в irb - просто набрать требуемый файл и перетащить его в терминал. 🙂 - протестировано с использованием Linux Mint.