目录:
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
?
?