我正在创造我期望成为红宝石的东西。任何人都有关于将简单库或插件转换为 gem 的教程的良好链接?另外,特别是,Ruby 使用什么过程来允许 require 查找 gem?这似乎不仅仅是将文件放在 gem 路径中(或者我的配置搞砸了?)。
谢谢
手动执行此操作实际上并不难。假设您有一个whatever.rb
想要作为 gem 分发的库。
lib
并复制一份whatever.rb
in lib/whatever.rb
。whatever.gemspec
,并在其中放入以下内容,并填写适当的值:
Gem::Specification.new do |spec|
spec.name = 'the-name-of-your-gem'
spec.version ='0.0.1'
# this is important - it specifies which files to include in the gem.
spec.files = ["lib/whatever.rb"]
# optional, but useful to your users
spec.summary = "A more longwinded description of your gem"
spec.author = 'Your Name'
spec.email = 'you@yourdomain.com'
spec.homepage = 'http://www.yourpage.com'
# you did document with RDoc, right?
spec.has_rdoc = true
# if you have a ruby forge project
spec.rubyforge_project = 'your-project-name-on-rubyforge'
# if you have any dependencies on other gems, list them thusly
spec.add_dependency('hpricot')
spec.add_dependency('log4r', '>= 1.0.5')
end
gem build
命令:% gem build 不管什么.gemspec 成功构建 RubyGem 名称:您的宝石的名称 版本:0.0.1 文件:the-name-of-your-gem-0.0.1.gem %
gem install the-name-of-your-gem-0.0.1.gem
您可以通过使用在脚本中使用您的库来进行本地测试,只需在顶部执行以下操作:
require 'rubygems' # puts gem libraries in the require path
require 'whatever' # loads your library
有关gemspec
文件中各种设置的更多信息,请查看GemSpec 参考。
就个人而言,我也经常使用 rubygems 来打包可执行脚本,并且发现它非常方便。
这里有一个来自 Dr Nic 的旧的,它使用 newgem。这现在可能有点过时了。
最近,我们得到了 gemify,它似乎建立在上述之上。这是一个关于那个的帖子
就路径而言,一旦您执行gem install <some-useful-stuff>
并且您的要求代码已经执行require 'rubygems'
或者您设置了 RUBYOPT=-rubygems (仅适用于 Windows 吗?我不确定),那么后续的执行require
也将在 gems 目录中搜索合适的图书馆。
还有更明确(但已弃用)的require_gem
命令,现在只是 plain gem
,它允许您指定版本号。