创建和发布自己的rubygem需要采取什么步骤?

时间:2020-03-06 14:35:27  来源:igfitidea点击:

因此,我们已经创建了一个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提供宝石,我认为这里提供了一些新的式耙任务工具来提供帮助。