2011-07-12 10 views
2

私はコマンドラインユーティリティである人の宝石のフォークを取り組んでいます。ここでは、ディレクトリ構造の概要は次のとおりです。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を再インストールせずに、任意のディレクトリからスクリプトを使用することに興味があります。

+0

テストのために、rspec/test :: unit/cucumber/etcがあります。一度それらのテストが "緑色"であるならば、宝石をインストールし、あなた自身をテストしてください。あなたの方法を主張すれば、シンボリックリンクではなく、パスにファイルの場所を追加することができます。 – Jakobinsky

+0

(デニスの答えにコメントを参照) – mportiz08

+0

@ mportiz08あなたはこれを行う方法を見つけましたか? – blackjid

答えて

0

私が調べたほとんどすべての宝石に、ある種のレーキファイルがあります。その場合、あなたは、宝石のルートに行き、そして行く:

タスクのリストについては
rake test 

、使用:

rake -T 

(これはあなたが明らかに、最初の場所でrakeをインストールしていると仮定し:gem install rakeもしそうでない場合)

また、多くの宝石には、宝石の特徴もあります。この場合は、bundlerを使用して、適用可能な依存関係(特に、テストスイートと開発関連の宝石)をインストールすることができます。

+1

私はRakeとBundlerに精通していますが、単体テストの実行には興味がありません - 私はコマンドラインスクリプトを実際に使用した後で、具体的にはgemをインストールせずにどのディレクトリからでも使用する方法です増分変更後(可能な場合)。 – mportiz08

関連する問題