Bundler的发布有多大改变?有没有可以用作基地的模板?什么是最佳实践?什么是构造红宝石的现代方式?
回答
,我发现一些有用的帖子:
- http://chneukirchen.github.com/rps/
- http://tomayko.com/writings/require-rubygems-antipattern
- http://yehudakatz.com/2009/07/24/rubygems-good-practice/
- http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices
编辑(2012-01-10):一个优秀的全面指导宝石最好的pra ctices是RubyGems Guides。我强烈建议现在从这里开始。
总结要点:
- 使用基本
lib/gem.rb
和lib/gem/
结构代码。 - 将
bin
中的任何可执行文件,data
中的任何数据文件以及test
或spec
中的测试。 - 请勿
require
或依赖加载路径以外的文件。 (VERSION
档案往往似乎生活在宝石奇怪的地方。) - 不要
require 'rubygems'
。不要篡改$LOAD_PATH
。 - 如果你发现自己写作
require File.join(__FILE__, 'foo', 'bar')
,那么你做错了。
当写脂肪(二进制)宝石结构通常是这样的:
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/
Telemachus的建议很好。如果你遵循它,你的宝石将被设置为与打包机很好地玩。
你也可以尝试使用珠宝商。它是生成宝石骨架的宝石。它吐出的默认框架符合Telemachus提到的所有约定,并且还会执行一些很好的事情,比如添加您最喜欢的测试框架或创建GitHub存储库。
珠宝商是有用的,并提供了一个轻量级的介绍耙。谢谢你这个britt。 – KomodoDave 2012-12-03 14:05:02
这rubygems guide提供对珠宝的结构信息,然后进入有关的细节应该包括哪些内容在您的gemspec
您可能会发现它更容易使用bundler创造宝石为您的文件夹结构:
bundle gem <gem_name>
- 1. 什么是'等'红宝石的宝石?
- 2. 是什么!做红宝石?
- 3. 什么是“?”在红宝石
- 4. 什么是在红宝石
- 5. 什么是最好的使用 - 红宝石宝石或红宝石插件
- 6. 什么是红宝石网址的最佳方式?
- 7. 什么是最好的红宝石api?
- 8. 什么是 “对” 的红宝石
- 9. 红宝石中的|| =是什么?
- 10. 用于红宝石的是什么?
- 11. 什么是最好的方式来调整代码阅读的红宝石
- 12. 红宝石和酿造配方有什么区别?
- 13. 红宝石为什么0 || 1是0
- 14. 重构难看的红宝石代码
- 15. 重现红宝石
- 16. 重构我的红宝石叽叽喳喳宝石代码
- 17. 空的正则表达式匹配红宝石是什么?
- 18. 红宝石中的这种格式是什么?
- 19. 格式红宝石
- 20. 替代“=”的红宝石方法
- 21. 这个反衬红宝石代码是什么意思?
- 22. 红宝石宝石和红宝石之间的体系结构不匹配?
- 23. 重构红宝石辅助方法
- 24. Twitter的红宝石宝石
- 25. 红宝石串结构
- 26. 红宝石重构cheatsheet?
- 27. 红宝石EVAL重构
- 28. 为什么红宝石的方法有自身的方法
- 29. 在红宝石中组织32个项目的最佳方式是什么?
- 30. 从红宝石访问Google日历的最佳方式是什么?
也有兴趣! – Arkan 2010-07-22 09:07:53