Я использую 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.