2010-07-22 51 views

回答

36

,我发现一些有用的帖子:

编辑(2012-01-10):一个优秀的全面指导宝石最好的pra ctices是RubyGems Guides。我强烈建议现在从这里开始。

总结要点:

  • 使用基本lib/gem.rblib/gem/结构代码。
  • bin中的任何可执行文件,data中的任何数据文件以及testspec中的测试。
  • 请勿require或依赖加载路径以外的文件。 (VERSION档案往往似乎生活在宝石奇怪的地方。)
  • 不要require 'rubygems'。不要篡改$LOAD_PATH
  • 如果你发现自己写作require File.join(__FILE__, 'foo', 'bar'),那么你做错了。
4

当写脂肪(二进制)宝石结构通常是这样的:

lib/1.8/binary.so

lib/1.9/binary.so

lib/my_gem.rb(该文件简单地选择其binary.so取决于红宝石版本加载)

对于原生扩展:

lib/ext/my_gem/my_sources.*

lib/my_gem.rb

我也通常把一个version.rb文件位置:

lib/my_gem/version.rb

,它仅包含类似:

module MyGem 
    VERSION = "0.1.0" 
end 

此外,国际海事组织,不要”不要放任何.rb文件您希望人们用来加载宝石的文件在lib/目录中。而是把所有的辅助文件都放在lib/my_gem/

4

Telemachus的建议很好。如果你遵循它,你的宝石将被设置为与打包机很好地玩。

你也可以尝试使用珠宝商。它是生成宝石骨架的宝石。它吐出的默认框架符合Telemachus提到的所有约定,并且还会执行一些很好的事情,比如添加您最喜欢的测试框架或创建GitHub存储库。

+0

珠宝商是有用的,并提供了一个轻量级的介绍耙。谢谢你这个britt。 – KomodoDave 2012-12-03 14:05:02

5

它的使用bundler最简单的方法:

bundle gem <gem_name> 

你甚至可以用它从父目录的现有项目。

+2

这是为什么downvoted?我认为这是最好的方法,并创建一个良好的默认结构。 – amoebe 2014-05-30 12:24:41

3

rubygems guide提供对珠宝的结构信息,然后进入有关的细节应该包括哪些内容在您的gemspec

您可能会发现它更容易使用bundler创造宝石为您的文件夹结构:

bundle gem <gem_name>