RubyGems是一个库和程序的标准化打包以及安装框架,它使定位、安装、升级和卸载Ruby包变的很容易。rails以及它的大部分插件都是以gem形式发布的。下面简单描述创建ruby Gems的过程的可行性。
第一步,写Gems规范文件
如:编写xx..gemspec :
require 'rubygems'
SPEC=Gem::Specification.new do |s|
s.name="Stack"
s.version='0.01'
s.author='dennis zane'
s.email="[email protected]"
s.homepage="http://www.rubyeye.net"
s.platform=Gem::Platform::RUBY
s.summary="xxx "
condidates =Dir.glob("{bin,lib,docs,test}/**/*") //要打包的文件s.files=condidates.delete_if do |item|
item.include?("CVS")|| item.include?("rdoc")
end
s.require_path="lib"
s.autorequire='stack,stacklike'
s.test_file="test/ts_stack.rb"
s.has_rdoc=false
s.extra_rdoc_files=["README"]
end
规范文件也是ruby程序(也可以用YAML描述),设置了这个gem的主要关键信息:名称、作者信息、平台,下面的files 数组过滤掉了cvs和rdoc文件,require_path和auto_require让你指定了require_gem装入gem时会被添加到$LOAS_PATH(ruby查找库的路径)中的目录(也就是我们源代码存放的lib),auto_require指定了装载的文件名,如果没有 rdoc,则设置has_rdoc为false,附带文档就是README。
第二步:添加测试和文档(非必要)
第三步:生成gem包
gem build xx..gemspec
将生成一个gem文件,将这个文件共享只要下载这个文件,执行:
gem install xx.0.01.gem