2011-04-15 192 views
0

所以我在这里是一个虚拟,我使用的是一个宝石内的例子,the AMQP gem for ruby here on github,我已经拉回购,并且在一个例子文件(this one)中它有几行像这样:红宝石文件路径

$LOAD_PATH.unshift File.expand_path("../../../../lib", __FILE__) 

require "amqp" 

# [...] 

加载路径指向this directory。所以我的问题主要是这样的,当我安装了gem时,我尝试使用ruby甚至IRB运行文件。当引用这些lib文件时,它不会在gems示例目录之外工作...为什么?即使当我require "amqp"

任何想法将不胜感激。


更新如果有两个宝石或者是冲突的,例如图书馆,该库链接,我想知道:

https://github.com/ruby-amqp/amqp 

,因为我不想,我只是很困惑”知道这是否是一样的宝石“AMQP”,我怎么能知道的,.gemspecGemfile是我也不清楚,似乎有其他的东西,如:

custom_gem "amq-client", :git => "git://github.com/ruby-amqp/amq-client.git", :branch => "master" 
custom_gem "amq-protocol", :git => "git://github.com/ruby-amqp/amq-protocol.git", :branch => "master" 

而在.gemspec是具有:

s.add_dependency "amq-client" 

任何帮助,帮助我了解,这将是如此真棒!

回答

0

想必它包含了这一行,因此您可以直接从源代码树运行示例文件,而无需安装gem。

如果你已经安装好了gem,并且你已经加载了rubygems,那么你应该只能说require "amqp",它会被适当的要求。

请注意,您需要加载RubyGems以便require "amqp"加载AMQP gem;您需要在源文件的开头执行require "rubygems",或者使用-rubygems启动Ruby,或者设置RUBYOPT环境变量export RUBYOPT=rubygems。有关更多信息,请参阅the RubyGems manual