创建和发布自己的rubygem需要哪些步骤?

所以你创建了一个ruby库。

你如何创建和发布rubygem? 还有哪些常见的陷阱和陷阱与创建和发布rubygems有关?

有几种工具可以帮助您构建自己的gem。 hoe和newgem是最知名的,并且具有很多优良品质。 但是,hoe将自己添加为对gem的依赖,而newgem已经成为一个非常大的工具,当我想快速创建和部署gem时,我觉得这个工具很笨重。

我最喜欢的工具是Tim Pease的Bones先生 。 它重量轻,function强大,不会为项目添加依赖项。 要使用它创建项目,只需在命令行上运行bones ,然后为您构建一个框架,其中包含代码的lib目录,工具的bin目录和测试目录。 配置在Rakefile ,并且简洁明了。 这是几个月前我做的项目的配置:

 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) 

Bones先生拥有您期望的标准function集:您可以使用它来打包库中的gem和tarfile,以及在RubyForge上发布它并在那里部署您的文档。 但它的杀手级function是它能够在你的主目录中冻结它的骨架。 当您运行bones --freeze ,名为.mrbones的目录将复制到您的主目录中。 你可以编辑那里的文件,为你的gem制作一个骨架,它可以按你的工作方式工作,从那时起,当你运行骨骼来创建一个新的gem时,它将使用你的个人gem骨架。 您可以通过运行bones --unfreeze解冻Bones先生bones --unfreeze并且将备份您的骨架,并且将再次使用默认骨架。

(编者注:几个月前我写了一篇关于这个的博客文章,其中大部分是从中复制的。)

我建议github作为一个开始的地方,特别是对于开源项目。

并尝试谷歌搜索…我的第一个搜索结果…

您可能还想检查Hoe gem,它可以自动化gem创建过程。

请参阅: http : //nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe

我实际上写了一篇关于这个的教程,并且在我学习的时候写了它。 它更关注我写的游戏而不是图书馆。 此外,它假设您想通过rake而不是自己构建gem:

  • 第1部分介绍如何创建gem。
  • 第2部分介绍如何运行gem安装的二进制文件,并获取资源。

锄头不再将自己添加为依赖于rubygems 1.2。 它的rake任务集中在将rubygem部署到rubyforge上。 如果你只是想从github服务gem我认为有一些新的锄头耙任务工具来帮助。