创建和发布自己的rubygem需要采取什么步骤?
因此,我们已经创建了一个ruby库。
我们如何创建和发布rubygem?与创建和发布红宝石有关的常见陷阱和陷阱有哪些?
解决方案
我建议将github作为起点,特别是对于开源项目。
并尝试Google搜索...对我来说是第一个搜索结果...
- http://www.5dollarwhitebox.org/drupal/creating_a_rubygem_package
我们可能还需要签出Hoe gem,它可以自动执行宝石创建过程。
参见:http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
有几种工具可以构建自己的宝石。 hoe和newgem是最著名的,并且有很多优良品质。但是,hoe将自身添加为gem的依赖项,并且newgem已成为一个非常大的工具,当我想快速创建和部署gem时,我发现这很笨拙。
我最喜欢的工具是Tim Pease的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 = '[email protected]' PROJ.url = 'friend-feed.rubyforge.org' PROJ.rubyforge_name = 'friend-feed' PROJ.dependencies = ['json'] PROJ.version = FriendFeed::VERSION PROJ.exclude = %w(.git pkg)
Bones先生具有我们所期望的标准功能集:我们可以使用它来打包库中的gem和tarfile,以及将其发布到RubyForge上并在其中部署文档。但是,其杀手级功能是能够将其框架冻结在主目录中。当我们运行" bones --freeze"时,一个名为" .mrbones"的目录将被复制到主目录中。我们可以在其中编辑文件,以按照工作方式为宝石制作骨架,然后,当我们运行骨骼以创建新宝石时,它将使用个人宝石骨架。我们可以通过运行bones --unfreeze
来解冻Bones先生,骨架将被备份,并且默认的骨架将被再次使用。
(编者注:几个月前,我写了一篇有关此的博客文章,其中大部分是从中复制的。)
我实际上为此编写了一个教程,并且在学习时就写了它。它比图书馆更专注于我编写的游戏。此外,它假设我们要通过耙子来构建gem,而不是自己构建:
- 第1部分介绍如何创建gem。
- 第2部分介绍了如何运行gem所安装的二进制文件并获取资源。
rub不再像rubygems 1.2那样将自身添加为依赖项。它的耙任务集中在将rubygem部署到rubyforge。如果我们只想从github提供宝石,我认为这里提供了一些新的式耙任务工具来提供帮助。