当前位置: 代码迷 >> Ruby/Rails >> rubygems.org guides 通译二(什么是一个gem)
  详细解决方案

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

热度:223   发布时间:2016-04-29 02:22:26.0
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.gemspecGem::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

?

?