所以你已经创建了一个 ruby 库。
您如何创建和发布您的 rubygem?创建和发布红宝石有哪些常见的陷阱和陷阱?
有几种工具可以帮助您构建自己的 gem。hoe和newgem是最有名的,并且有很多好的品质。然而,hoe 将自己作为依赖项添加到您的 gem 中,并且 newgem 已成为一个非常大的工具,当我想快速创建和部署 gem 时,我发现它很笨重。
我最喜欢的工具是Tim Pease 的Mr Bones。它是轻量级的、功能强大的,并且不会向您的项目添加依赖项。要使用它创建一个项目,您只需bones <my_project_name>
在命令行上运行,并为您构建一个框架,其中包含一个lib
代码目录、一个bin
工具目录和一个测试目录。配置在aRakefile
中,简洁明了。这是我几个月前做的一个项目的配置:
load 'tasks/setup.rb'
ensure_in_path 'lib'
require 'friend-feed'
task :default => 'test'
PROJ.name = 'friend-feed'
PROJ.authors = 'Clinton R. Nixon'
PROJ.email = 'crnixon@gmail.com'
PROJ.url = 'friend-feed.rubyforge.org'
PROJ.rubyforge_name = 'friend-feed'
PROJ.dependencies = ['json']
PROJ.version = FriendFeed::VERSION
PROJ.exclude = %w(.git pkg)
Mr Bones 具有您所期望的标准功能集:您可以使用它来打包库的 gem 和 tar 文件,以及在 RubyForge 上发布它并在那里部署您的文档。但是,它的杀手级功能是能够将其骨架冻结在您的主目录中。当你运行时bones --freeze
,一个名为的目录.mrbones
被复制到你的主目录中。您可以在其中编辑文件,为您的 gem 制作一个按照您的工作方式工作的骨架,从那时起,当您运行骨骼创建新 gem 时,它将使用您的个人 gem 骨架。您可以通过运行解冻骨头先生bones --unfreeze
,您的骨架将被备份,并且将再次使用默认骨架。
(编者按:几个月前我写了一篇关于此的博客文章,其中大部分内容是从中复制的。)
我推荐github作为起点,尤其是对于开源项目。
并尝试谷歌搜索......我的第一个搜索结果......
您可能还想查看 Hoe gem,它可以自动完成 gem 创建过程。
请参阅: http: //nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
hoe 不再像关闭 rubygems 1.2 那样将自身添加为依赖项。它的 rake 任务集中在将 rubygem 部署到 rubyforge 上。如果您只是想从 github 提供 gem,我认为有一些新的 hoe-esque rake 任务工具可以提供帮助。