Я работаю над форком чьего-то драгоценного камня, который является утилитой командной строки.Вот общий обзор структуры каталогов:
bin/
bin/foo
lib/
lib/foo.rb
lib/foo/bar.rb (etc)
Чтобы проверить это, я обычно делаю что-то вроде этого:
cd bin/
./foo <args>
Но я хочу иметь возможность использовать его из любого каталога(как это было бы когда-то установлено).Мой вопрос заключается в том, возможно ли достичь этого, не устанавливая гем в моей системе каждый раз.
Моя первая попытка состояла в том, чтобы создать символическую ссылку на скрипт foo, который был в моем PATH, но это портитстрока require 'foo'
в скрипте, поскольку File.dirname(__FILE__)
теперь относится к тому, где была создана символическая ссылка.
Есть ли общий способ сделать это?
(О, и вот соответствующийстроки из скрипта foo
)
#!/usr/bin/env ruby
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
require 'rubygems'
require 'foo'
(РЕДАКТИРОВАТЬ)
Мне известны обычные способы тестирования библиотеки (например, rake test
и т. д.) - яЯ особенно заинтересован в использовании скрипта из любого каталога без переустановки гема при каждом изменении (если возможно).