首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要在内部使用不同名称的宝石

需要在内部使用不同名称的宝石
EN

Stack Overflow用户
提问于 2014-03-18 16:44:19
回答 1查看 723关注 0票数 2

我写了一个小创业板,我决定在内部使用一个与外部不同的名称,即我的创业板的名称是google-search,但是文件结构是

代码语言:javascript
运行
复制
google-search
  |-lib
    |-google
      |-search
      |-search.rb

要使用pry加载代码,我只需执行以下操作

代码语言:javascript
运行
复制
bundle exec pry -r ./lib/google/search

在谷歌搜索目录里。

我现在已经将我的新创业板包括在我的项目中,我试图要求和使用它,但由于某些原因,我无法做到。

我试过:

代码语言:javascript
运行
复制
[1] pry(main)> require 'google/search'
=> false
[2] pry(main)> require 'google'
LoadError: cannot load such file -- google
from (pry):7:in `require'
[3] pry(main)> require 'google-search'
LoadError: cannot load such file -- google-search
from (pry):8:in `require'

我应该改变内部结构还是必须做其他的事情?我真的很喜欢要求"google/search“的想法,但是如果我必须改变它,那也没关系。这是怎么回事?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 16:54:45

require 'google/search'对你的宝石是正确的

false的返回值意味着google/search.rb找到了您的创业板库文件google/search.rb,但是已经解析并加载了它。只有当库尚未加载时,它才会返回true

参考资料:http://www.ruby-doc.org/core-2.1.1/Kernel.html#method-i-require

有可能需求找到了一个冲突的文件--在与google/search.rb匹配的创业板搜索路径中的任何内容,理论上都可以加载,除了将.../gemname/lib添加到搜索路径之外,创业板名称本身并不相关。gem有可能相互声明文件名,这就驱动了一些约定,比如将主库文件命名为gem,但是只要其中一个合理地直接和/或唯一地从另一个派生,使用不同的名称应该是可以的。

对于一个名为google-search的gem,关于Rubygems的建议说用户应该期望使用您想要的需求,所以您在这里遵循常规的Ruby约定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22485709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档