加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何从源加载gem?

发布时间:2020-12-17 04:19:45 所属栏目:百科 来源:网络整理
导读:我有git克隆了一个来自 Github的回购,现在我想试验它,因为我想在代码周围捣乱它.我已经创建了一个文件test.rb,它应该加载这个gem,但我想加载我本地检出的版本,这是正确的方法吗? 现在我只是使用了一堆“require_relative’the_gem_name / lib / file’”,这
我有git克隆了一个来自 Github的回购,现在我想试验它,因为我想在代码周围捣乱它.我已经创建了一个文件test.rb,它应该加载这个gem,但我想加载我本地检出的版本,这是正确的方法吗?

现在我只是使用了一堆“require_relative’the_gem_name / lib / file’”,这感觉不对.

解决方法

当你需要’foo’Rub Ruby检查加载路径中的所有目录以查找文件foo.rb并加载它找到的第一个目录.如果找不到名为foo.rb的文件,并且您没有使用Rubygems,则会引发LoadError.

如果您正在使用Rubygems(可能是因为它包含在Ruby 1.9中),那么不是立即引发LoadError,而是搜索所有已安装的Gems以查看是否包含文件foo.rb.如果找到这样的Gem,则将其添加到加载路径并加载文件.

如果要确保使用特定版本的库,可以自己操作加载路径.通常这不是推荐的东西,但这是你想要做的那种情况.

有两种方法可以将目录添加到加载路径.首先,您可以使用$LOAD_PATH(或$:)全局变量在实际代码中执行此操作:

$LOAD_PATH.unshift '/path/to/the/gems/lib/'
require 'the_gem'

请注意,您通常要添加gem的lib目录,而不是gem的顶级目录(实际上这可能因实际Gem而异,并且可能需要添加多个目录,但lib是常态).

另一种方法是使用-I命令行切换到ruby可执行文件:

$ruby -I/path/to/the/gems/lib/ test.rb

这种方式可能会更清晰一些,因为通常您不希望从代码内部搞乱加载路径,但如果您只是测试库,那么它可能并不重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读