Как передать местный камень в ruby? - PullRequest
7 голосов
/ 22 июня 2011

Я кладу немного рубинового кода в драгоценный камень. Я хочу сослаться на код в гем в другой код. Поэтому в Gemfile я указываю имя, версию и локальный путь для гема. Как:

gem 'gemname','0.x', :path => 'RELATIVE_PATH_TO_GEM_FILE'

После установки пакета вижу

Using gemname (0.x) from source at RELATIVE_PATH_TO_GEM_FILE

Но когда я запускаю код, он не может найти код в геме. LOAD_PATH показывает ABSOLUTE_PATH_TO_GEM_FILE / lib.

Не удивительно, что он не может найти код, есть только файл gem под ABSOLUTE_PATH_TO_GEM_FILE. это не распаковано. Так что нет каталога lib.

если я установлю этот gem-файл в мою систему, то все будет работать нормально. Я вижу, что файл gem был распакован в файлы исходного кода. Но мой вопрос, может ли он как-то напрямую ссылаться на локальный файл gem?

Ответы [ 2 ]

7 голосов
/ 22 июня 2011

Нет, вы не можете напрямую обращаться к файлу .gem.

В вашей терминологии вам необходимо использовать "распакованный" гем.

:path => '/foo/bar/'

, где /foo/bar/ это каталог (gem) с lib/ и т. д.

1 голос
/ 01 июля 2011

Мы сделали локальное (не общесистемное) расположение драгоценных камней.Мы устанавливаем эти переменные среды:

GEM_HOME=/path/to/rubygems-1.3.4
RUBYLIB=/path/to/rubygems-1.3.4/lib/

Устанавливая их, мы можем затем сделать 'gem install ...', чтобы поместить встроенный гем в этот каталог, и ruby ​​знает, где их найти.

...