私はコマンドラインユーティリティである人の宝石のフォークを取り組んでいます。ここでは、ディレクトリ構造の概要は次のとおりです。Gem開発ワークフロー
bin/
bin/foo
lib/
lib/foo.rb
lib/foo/bar.rb (etc)
それをテストするために、私は、通常、このような何か:
cd bin/
./foo <args>
をしかし、それは希望のように私は(任意のディレクトリからそれを使用することができるようにしたいです一度インストールしてください)。私の質問は、毎回私のシステムに宝石をインストールすることなくこれを達成することが可能かどうかです。
私の最初の試みは、私のPATH上にあるfooスクリプトへのシンボリックリンクを作成することでしたが、File.dirname(__FILE__)
はシンボリックリンクが作成された場所を参照するため、スクリプトのrequire 'foo'
行が乱れます。
一般的な方法はありますか?
(おっと、ここfoo
スクリプトから該当する行があります)
#!/usr/bin/env ruby
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
require 'rubygems'
require 'foo'
(EDIT)
私は(すなわちrake test
、など)のライブラリをテストする通常の方法を知っています - - 私は特に、すべての変更(可能な場合)でgemを再インストールせずに、任意のディレクトリからスクリプトを使用することに興味があります。
テストのために、rspec/test :: unit/cucumber/etcがあります。一度それらのテストが "緑色"であるならば、宝石をインストールし、あなた自身をテストしてください。あなたの方法を主張すれば、シンボリックリンクではなく、パスにファイルの場所を追加することができます。 – Jakobinsky
(デニスの答えにコメントを参照) – mportiz08
@ mportiz08あなたはこれを行う方法を見つけましたか? – blackjid