我正在研究一个命令行实用程序的某人的宝石分支。这里的目录结构的总体概述:Gem开发工作流程
bin/
bin/foo
lib/
lib/foo.rb
lib/foo/bar.rb (etc)
为了测试它,我常做这样的事情:
cd bin/
./foo <args>
但我希望能够用它从任何目录(像它会一次安装)。我的问题是,如果可以实现这一点,而无需每次在我的系统上安装gem。
我在这第一次尝试创建符号链接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'
(EDIT)
我所知道的测试库的正常方式(即rake test
等) - - 我特别感兴趣的是使用任何目录中的脚本,而不必在每次更改时重新安装gem(如果可能)。
为了测试你有rspec/test :: unit/cucumber/etc。一旦这些测试是“绿色”,安装宝石并测试你自己。如果你坚持自己的方式,可以将文件的位置添加到路径中,而不是符号链接。 – Jakobinsky
(看丹尼斯的回答评论) – mportiz08
@ mportiz08你们每个人都找到了一种方法来做到这一点? – blackjid