linux-Ruby - запускайте приложение ruby ​​как команду - PullRequest
0 голосов
/ 01 августа 2010

Я хочу запустить lib файлов ruby ​​из командной строки из любой точки командной строки.У меня есть программа Main.rb, которая создает экземпляры классов из других файлов ruby.

Я храню путь к классам моей библиотеки в .zshrc.Затем я запускаю Main.rb, но он не может загрузить необходимые файлы ruby ​​(файлы в моей папке lib) и выдает эту ошибку:

`require': no such file to load -- Data.rb (LoadError)

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

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 01 августа 2010

Ruby ищет каталоги в переменной $ LOAD_PATH, чтобы попытаться найти файлы, которые вы импортируете, с помощью оператора 'require'. У вас есть несколько вариантов:

  1. переместить ваши файлы в каталог в списке $ LOAD_PATH
  2. укажите Ruby путь к вашим библиотекам в вашем требовании:

    require '/home/mydir/myproject/lib/Data.rb'

  3. измените $ LOAD_PATH в Main.rb, чтобы включить ваш каталог lib

  4. передать Ruby аргумент командной строки, добавив каталог lib в $ LOAD_PATH с параметром -I:

    ruby ​​-I / home / mydir / myproject / lib Main.rb

0 голосов
/ 03 августа 2010

Как правило, вам нужно изменить

 require 'abc'

к относительному пути, как

 require File.dirname(__FILE__) + "/abc"

или используйте (мое) require_relative на 1,9

 require_relative 'abc'

GL. -r

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...