好的,正如@ tim-moore所问,我会在新问题上发帖。
好的,所以我想用bundle制作gem。 Pry扩展gem要求gem以 pry - 开头,如上所述here。 我用过:
bundle gem pry-name
但搞砸了我的文件结构
create pry-name/pry-name.gemspec
create pry-name/lib/pry/name.rb
create pry-name/lib/pry/name/version.rb
如您所见,它创建了 lib / pry 目录。我知道创建这样的结构是宝石的风格,但现在我撬不能自动加载这个宝石
my question的一个解决方案是:
创建仅包含
的pry-name.rbrequire 'pry/name'
在我完成这个并构建gem之后,我开始撬开: 出现此消息:
require 'pry-name' # Failed, saying: Pry is not a module
我正在创建类似这样的命令:
Pry::Commands.create_command "name-of-command" do
# my code goes here
end
并且,当ruby找到Pry::Commands.
时,它需要来自 lib 目录,而不是来自Pry gem。
这个错误是什么意思。为什么它不起作用。如何使其工作时记住gem和pry的要求(pry gem从pry-
开始,gem会在有人使用-
时创建另一个目录(例如:gem pry-name
将pry/name
{{1}} 1}})
答案 0 :(得分:2)
新创建的宝石中module Pry
所在的位置,将其更改为:class Pry
。由于Pry
已经定义(作为类),因此您无法将其重新定义/重新打开为模块。