取決於它是否是您希望人們在每個找到它的主機上使用的工具。還取決於該工具是否可以與公共回購共享。
如果它只是工作,而不用擔心是否已經安裝通過捆紮機寶石已經或沒有,你可以使用像從獨立腳本中的以下安裝寶石如果不存在(謹記系統對用戶紅寶石):
#!/usr/bin/env ruby
require 'rubygems'
def install_gem(name, version=Gem::Requirement.default)
begin
gem name, version
rescue LoadError
print "ruby gem '#{name}' not found, " <<
"would you like to install it (y/N)? : "
answer = gets
if answer[0].downcase.include? "y"
Gem.install name, version
else
exit(1)
end
end
end
# any of the following will work...
install_gem 'activesupport'
install_gem 'activesupport', '= 4.2.5'
install_gem 'activesupport', '~> 4.2.5'
require 'active_support/all'
...
哦感謝本 - 這聽起來像一個好主意 - 我其實是特別問是如何處理我的腳本依賴它使用其他環球新興市場(CF如何包裝自己腳本本身),包括在我的腳本開發過程中。或者這也許是你已經理解的? – Greg 2012-03-13 04:05:53
是的,我明白了。您可以將您的腳本放在您的gem的'lib'目錄中,然後在'your-gem.gemspec'文件中,您將能夠指定您的gem /腳本所依賴的其他gem,特定的(rspec,ruby-debug等)和運行時/生產特定的。 [詳細說明](http://docs.rubygems.org/read/chapter/20#dependencies)關於實際設置gemspec;它包含了Ruby和RubyGems的開箱即用功能。 – 2012-03-13 14:16:28