宝石开发工作流程

时间:2011-07-12 19:19:34

标签: ruby unix rubygems workflow

我正在研究某人宝石的分支,这是一个命令行工具。以下是目录结构的概述:

bin/
bin/foo

lib/
lib/foo.rb
lib/foo/bar.rb (etc)

为了测试它,我通常做这样的事情:

cd bin/
./foo <args>

但我希望能够在任何目录中使用它(就像它曾经安装过的那样)。我的问题是,如果每次都不在我的系统上安装gem就可以实现这一点。

我的第一次尝试是创建一个指向我的PATH上的foo脚本的符号链接,但这与脚本中的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等) - 我特别感兴趣的是使用任何目录中的脚本而不用每次更改重新安装gem(如果可能的话)

1 个答案:

答案 0 :(得分:0)

在我看过的几乎所有宝石中,都有某种rakefile。在这种情况下,您转到gem的根目录,然后转到:

rake test

要获取任务列表,请使用:

rake -T

(这假设您首先安装了rake,显然:gem install rake,如果没有。)

此外,许多gem还具有gemfile。在这种情况下,您可以使用bundler来安装适用的依赖项(特别是测试套件和与开发相关的gems)。