Ruby gem文件路径

时间:2011-04-15 21:51:24

标签: ruby

所以我在这里有点假,我正在使用宝石内部的示例,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 examples目录之外工作...为什么?即使我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"

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

1 个答案:

答案 0 :(得分:0)

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

如果您已安装gem,并且已加载RubyGems,那么您应该只能说require "amqp"并且它将是适当的。

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