我正在尝试使用捆绑器编写一个宝石(跟随ryan的轨道广播 - 245) 我按照瑞安描述的一切。我还在lib文件夹中添加了4个ruby文件,以了解如何使用不同的gem。
我认为它会自动要求将这些rb文件放在lib文件夹中。
但不幸的是,当我测试它时,它会抛出一个错误说
没有这样的文件加载lib / myclass.rb
这就是我的lorem.rb的样子。
require 'lorem/version'
require 'lorem/myclass'
Module Lorem
.....
end
我缺少什么?任何人都可以告诉宝石需要如何运作?
注意:我用回声来做它并且它有效。但当我使用bulder,gemspec和所有我根本不明白为什么它不加载文件。
我的宝石规格文件
# -*- encoding: utf-8 -*-
$:.push File.expand_path("../lib", __FILE__)
require "lorem/version"
Gem::Specification.new do |s|
s.name = "lorem"
s.version = Lorem::VERSION
s.authors = ["My Name"]
s.email = ["me@domain.com"]
s.homepage = ""
s.summary = %q{learing bundler gem}
s.description = %q{Learing bundler gem}
s.rubyforge_project = "lorem"
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
s.require_paths = ["lib"]
#s.add_development_dependency "rspec"
#s.add_development_dependency "supermodel"
end
提前致谢
答案 0 :(得分:1)
在您的gemspec中,尝试将$:.push File.expand_path("../lib", __FILE__)
替换为:
$:.unshift('lib')
答案 1 :(得分:0)
终于搞砸了。
lib = File.expand_path('../lib/', __FILE__)
$:.unshift lib unless $:.include?(lib)
并在
中提供以下内容Gem::Specification.new do |s|
...
s.files = Dir.glob("{bin,lib}/**/*")
...
end
我从http://yehudakatz.com/2010/04/02/using-gemspecs-as-intended/
得到了这个提示