2017-02-15 43 views
0

我使用bundler创建了gem,并根据文档建议将所有ruby文件放入'/ lib'。 但我有一个问题,搭建后的宝石,其“Rake构建”命令并安装(创业板安装PKG/GEM),因为我不能用它:在宝石中的要求不起作用

LoadError: cannot load such file -- mygem/client

这是导致因为在主文件我尝试需要 'mygem/client.rb' 这是在LIB/mygem/client.rb ,它是不工作:/

这是我gemspec:

# coding: utf-8 
lib = File.expand_path('../lib', __FILE__) 
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 
require 'diggy/version' 

Gem::Specification.new do |spec| 
    spec.name   = "diggy" 
    spec.version  = Diggy::VERSION 
    spec.authors  = [""] 
    spec.email   = [""] 

    spec.summary  = %q{: Write a short summary, because Rubygems requires one.} 
    spec.description = %q{: Write a longer description or delete this line.} 
    spec.homepage  = "" 

    # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host' 
    # to allow pushing to a single host or delete this section to allow pushing to any host. 
    if spec.respond_to?(:metadata) 
    spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'" 
    else 
    raise "RubyGems 2.0 or newer is required to protect against " \ 
     "public gem pushes." 
    end 

    spec.files   = `git ls-files -z`.split("\x0") 
    spec.bindir  = "exe" 
    spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } 
    spec.require_paths = ["lib"] 

    spec.add_development_dependency "bundler", "~> 1.14" 
    spec.add_development_dependency "rake", "~> 10.0" 
end 
+0

您可以添加命令'gem contents mygem'(本例中为'gem contents diggy')的结果,以及'git status'(从您的gems开发目录中)。 – matt

回答

0

假设你的主文件名为mygem.rb,并在lib f年纪大了,你应该能够要求的文件lib/mygem/client.rb有:

require 'mygem/client' 

注意,我没有使用.rb扩展。