创建和发布自己的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我认为有一些新的锄头耙任务工具来帮助。