所以你创建了一个ruby库.
你如何创建和发布rubygem?还有哪些常见的陷阱和陷阱与创建和发布rubygems有关?
有几种工具可以帮助您构建自己的宝石.hoe和newgem是最着名的,并且具有很多优良品质.但是,hoe将自己添加为对gem的依赖,而newgem已经成为一个非常大的工具,当我想快速创建和部署gem时,我觉得这个工具很笨重.
我最喜欢的工具是Tim Pease的Bones先生.它重量轻,功能强大,不会为项目添加依赖项.要使用它创建项目,只需bones
在命令行上运行,并为您构建一个框架,其中包含lib
代码bin
目录,工具目录和测试目录.配置在a中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先生拥有您期望的标准功能集:您可以使用它来打包库中的宝石和tarfile,以及在RubyForge上发布它并在那里部署您的文档.但它的杀手级功能是它能够在你的主目录中冻结它的骨架.运行时bones --freeze
,会将名为的目录.mrbones
复制到主目录中.你可以编辑那里的文件,为你的宝石制作一个骨架,它可以按你的工作方式工作,从那时起,当你运行骨骼来创建一个新宝石时,它将使用你的个人宝石骨架.您可以通过运行解冻Bones先生,bones --unfreeze
并且将备份您的骨架,并且将再次使用默认骨架.
(编者注:几个月前我写了一篇关于这个的博客文章,其中大部分是从中复制的.)