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

时间:2008-09-23 10:15:04

标签: ruby rubygems

所以你创建了一个ruby库。

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

6 个答案:

答案 0 :(得分:6)

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

我最喜欢的工具是Tim Pease的Mr Bones。它重量轻,功能强大,不会为项目添加依赖项。要使用它创建项目,只需在命令行上运行bones <my_project_name>,然后为您构建一个框架,并为您的代码添加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先生拥有您期望的标准功能集:您可以使用它来打包库中的宝石和tarfile,以及在RubyForge上发布它并在那里部署您的文档。但它的杀手级功能是它能够在你的主目录中冻结它的骨架。运行bones --freeze时,会将名为.mrbones的目录复制到您的主目录中。你可以编辑那里的文件,为你的宝石制作一个骨架,它可以按你的工作方式工作,从那时起,当你运行骨骼来创建一个新宝石时,它将使用你的个人宝石骨架。您可以通过运行bones --unfreeze来解冻Bones先生,并且将备份您的骨架,并且将再次使用默认骨架。

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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

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

答案 3 :(得分:3)

您可能还想签出Hoe gem,它可以自动化宝石创建过程。

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

答案 4 :(得分:1)

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

  • Part 1关于如何创建宝石。
  • Part 2关于如何运行gem安装的二进制文件,并获取资源。

答案 5 :(得分:1)

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