Pry不是一个模块

时间:2013-11-10 12:14:24

标签: ruby gem pry

好的,正如@ 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的一个解决方案是:

  

创建仅包含require 'pry/name'

的pry-name.rb

在我完成这个并构建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-namepry/name {{1}} 1}})

1 个答案:

答案 0 :(得分:2)

新创建的宝石中module Pry所在的位置,将其更改为:class Pry。由于Pry已经定义(作为类),因此您无法将其重新定义/重新打开为模块。