rubygems.org guides 翻译二(什么是一个gem)

目录:

1.结构化你的gem

2.gemspec

 

1.架构化你的gem

每一个gem都有自己的名字/版本/平台(platform)。举个例子,rake这个gem的版本是0.8.7(2009年5月),平台是ruby,意味着你可以在任何平台的ruby上运行。

平台的基础是CPU架构,操作系统类型和操作系统版本。

 

gem help platform

在一个gem里面包括三部分,code,文档和gemspec

 

每个gem的功能也许不同,但是他们都得遵循相同的标准结构。

freewill/
├── bin/
│   └── freewill
├── lib/
│   └── freewill.rb
├── test/
│   └── test_freewill.rb
├── README
├── Rakefile
└── freewill.gemspec
  • lib目录下方的是gem的原代码
  • test或者spec目录下放的是测试文件,依赖于作者使用的而是那个测试框架
  • gem通常包含一个Rakefile,通常用于自动测试,生成代码,执行任务等工作。
  • gem通常还包含一个扩展的bin目录,当该gem安装后会被自动加载到用户的PATH目录。
  • 文档通常位于README文件和代码注释中,当你安装一个gem后,文档也会自动为你生成。大多数gem包含RDoc文档,但是也有一些使用YARD的。
  • 最后一块是gemspec,包含一个gem的具体信息。gem文件,测试信息,平台,版本号,作者邮箱/姓名等。

2.gemspec

gemspec包含了该gem的具体信息。

% cat freewill.gemspec
Gem::Specification.new do |s|
  s.name        = 'freewill'
  s.version     = '1.0.0'
  s.summary     = "Freewill!"
  s.description = "I will choose Freewill!"
  s.authors     = ["Nick Quaranto"]
  s.email       = '[email protected]'
  s.homepage    = 'http://example.com/freewill'
  s.files       = ["lib/freewill.rb", ...]
end

 

 

 

你可能感兴趣的:(gem)