【发布时间】:2008-09-23 10:15:03
【问题描述】:
所以你已经创建了一个 ruby 库。
您如何创建和发布您的 rubygem?在创建和发布 rubygem 方面有哪些常见的陷阱和陷阱?
【问题讨论】:
所以你已经创建了一个 ruby 库。
您如何创建和发布您的 rubygem?在创建和发布 rubygem 方面有哪些常见的陷阱和陷阱?
【问题讨论】:
有多种工具可帮助您构建自己的 gem。 hoe 和 newgem 是最有名的,并且有很多好的品质。但是,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)
Mr Bones 具有您期望的标准功能集:您可以使用它来打包库的 gem 和 tar 文件,以及在 RubyForge 上发布它并在那里部署您的文档。但是,它的杀手级功能是能够将其骨架冻结在您的主目录中。当您运行bones --freeze 时,名为.mrbones 的目录将复制到您的主目录中。您可以在其中编辑文件,为您的宝石制作一个按照您的工作方式工作的骨架,从那时起,当您运行骨骼来创建新宝石时,它将使用您的个人宝石骨架。您可以通过运行bones --unfreeze 来解冻 Mr Bones,您的骨架将被备份,并且将再次使用默认骨架。
(编者按:几个月前我写了一篇关于此的博客文章,其中大部分内容是从中复制的。)
【讨论】:
我推荐github 作为起点,尤其是对于开源项目。
【讨论】:
也可以尝试谷歌搜索...我的第一个搜索结果...
【讨论】:
您可能还想查看 Hoe gem,它可以自动完成 gem 创建过程。
见:http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
【讨论】:
hoe 不再像关闭 rubygems 1.2 那样将自身添加为依赖项。它的 rake 任务集中在将 rubygem 部署到 rubyforge 上。如果您只想从 github 提供 gem,我认为有一些新的 hoe-esque rake 任务工具可以提供帮助。
【讨论】: