通过Bundler从git repo使用ruby gem

时间:2013-04-20 14:34:26

标签: ruby git gem bundler

我使用bundler创建了一个自定义gem,并在git repo中检查它。

custom_gem.rb

require "custom_gem/version"
require "custom_gem/custom_class"

module CustomGem
  # Your code goes here...
end

custom_class.rb

require 'typhoeus'

module CustomGem

  class CustomClass

    def self.custom_method
       #do stuff with typhoeus
    end

  end

end

将其作为依赖项添加到另一个项目并通过bundler安装。

gem 'custom_gem', :git => 'git@bitbucket.org:dir/repo.git'

之后我尝试通过调用

来使用它
CustomGem::CustomClass.custom_method

我收到以下错误:

未初始化的常量CustomGem :: CustomClass

有什么建议吗?

可能是一件小事,但刚开始使用红宝石,所以任何建议都会很棒。

2 个答案:

答案 0 :(得分:1)

要检查两件事:

  1. 运行Bundle install时会发生什么(gem是否已列为已安装?)
  2. 您是否正确地需要宝石(需要'custom_gem')? Rails在那里有点神奇,但我不确定你是否在使用rails应用程序。

答案 1 :(得分:1)

文件custom_gem.rb应位于 lib / custom_gem.rb 中,文件custom_class.rb应位于 lib / custom_gem / custom_class.rb

lib/custom_gem/custom_class.rb
\_/ \________________________/
 |             |
 |              \_ comes from your code: `require "custom_gem/custom_class"`
 |
 |
  \_ comes from custom_gem.gempsec (the line `s.require_paths = ["lib"]`)

有关加载路径,文件层次结构和命名的更多信息,请查看此gem guide