16

所以你已经创建了一个 ruby​​ 库。

您如何创建和发布您的 ruby​​gem?创建和发布红宝石有哪些常见的陷阱和陷阱?

4

6 回答 6

6

有几种工具可以帮助您构建自己的 gem。hoenewgem是最有名的,并且有很多好的品质。然而,hoe 将自己作为依赖项添加到您的 gem 中,并且 newgem 已成为一个非常大的工具,当我想快速创建和部署 gem 时,我发现它很笨重。

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

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)

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

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

于 2008-09-23T18:40:05.237 回答
3

我推荐github作为起点,尤其是对于开源项目。

于 2008-09-23T11:22:09.563 回答
3

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

于 2008-09-23T11:26:46.497 回答
3

您可能还想查看 Hoe gem,它可以自动完成 gem 创建过程。

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

于 2008-09-23T11:31:03.630 回答
1

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

于 2008-09-27T20:32:43.957 回答
1

hoe 不再像关闭 ruby​​gems 1.2 那样将自身添加为依赖项。它的 rake 任务集中在将 ruby​​gem 部署到 ruby​​forge 上。如果您只是想从 github 提供 gem,我认为有一些新的 hoe-esque rake 任务工具可以提供帮助。

于 2008-12-30T04:30:04.433 回答