【问题标题】:require error in ruby gemruby gem 中需要错误
【发布时间】:2015-09-12 17:27:23
【问题描述】:

我正在开发一个 Ruby gem,但我遇到了一个奇怪的错误。我之前已经发布了这个gem,没有太多麻烦。我添加了一些方法/重构了一些代码,并希望发布后续版本(从 1.1 到 1.2)。

作为参考,宝石的名称是Intervallum,(拉丁语中的“间隔”一词)。

我遇到了一直困扰我的“要求”错误。

文件夹树是:

.
├── Gemfile
├── LICENSE
├── README.md
├── intervallum-[version].gem
├── intervallum.gemspec
└── lib
    ├── intervallum
    │   ├── module.scroll.rb
    │   └── module.spell.rb
    └── intervallum.rb

lib/intervallum.rb 中,我尝试了Dir.globDir['./lib/intervallum/*']require '../intervallum/lib/intervallum/module.spell.rb',每一个都发生了什么:

在本地,在gem build intervallum.gemspecgem install intervallum-[version].gem 之后,我启动了irbrequire intervallum,它工作正常。

  • 推送到 RubyGems
  • 删除本地副本
  • 从 RG 安装
  • 在 irb 中加载我收到加载错误或找不到帮助类的类

我不确定为什么会一直发生这种情况,或者我是否遗漏了为什么会一直发生这种情况,但任何建议都将不胜感激。

【问题讨论】:

    标签: ruby gem require


    【解决方案1】:

    问题是您在打包时没有将这些文件包含在 gem 中。您的 gemspec 指定只有 lib/intervallum.rb 文件将包含在 gem 中:

    s.files   = ["./lib/intervallum.rb"]
    

    更改该行以包含 lib 中的所有文件。包含 gemspec 也是一个好主意。

    s.files = Dir['lib/**/*', 'intervallum.gemspec']
    

    【讨论】:

    • 今天早上要上班...想通了完全相同的事情...谢谢
    猜你喜欢
    • 2015-12-08
    • 2012-06-17
    • 2016-09-02
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多