Ruby: 如何编写一个 gem?

162

我想为 Ruby 编写一个包并将其制作成 gem。
有哪些工具、步骤和陷阱?
是否有任何有助于您学习如何完成此操作的好教程、视频等?

3个回答

217

Rubygems.org的指南是编写自己的gem包的最佳资源之一。

如果你在你的应用中使用Bundler,你可能想看一下Ryan Bigg的指南,使用Bundler开发RubyGem创建带有Bundler的gem的Railscast

如果你对辅助编写gem的工具感兴趣:

一些教程/指南:

  • Ruby Gem Recipe - 使用Bundler和Jeweler创建gem的介绍指南
  • 如何构建并在gemcutter上托管ruby gem - 使用echoe和gemcutter的教程
  • 关于Gemspecs的真相 - 介绍gemspecs并提供处理它们的技巧
  • 使用RubyGems打包 - Jeweler的快速入门指南
  • 制作gem工具评述 - James Adam - 评价帮助构建gems的工具(hoe、newgem、echoe、gemhub、jeweler、gem this)
  • 从命令行使用Gemcutter的Api
  • 使用Bundler创建新的Gem - 示例Rakefile - 用于部署和发布gem的实用rakefile
  • 写一个Gem吧
  • 如何使用Bundler、测试驱动开发、Travis CI和Coveralls构建Ruby Gem

  • 6
    你不需要开始编写一个gem,只需编写一些代码、编写一些测试,按照自己的需求使用它,一旦你对它满意,就可以使用 gem this 生成相关的Rakefile。
    如果你遵循其他gems的方法(有一个lib目录,避免以与其他gems冲突的方式命名文件,尽可能编写一些测试,有一个readme),这会有所帮助,但这并非必要。
    一旦你有了想要分享的东西,请将其放在 github 上,并将其推送到 gemcutter
    不要过度思考,不要使用hoe或其他过度工具,享受编程,不要做任何我不会做的事情。

    6

    这是我通常创建和发布Gems的方法:

    1. 注册 https://github.com
    2. 注册 https://rubygems.org
    3. $ gem install ore rubygems-tasks rdoc rspec
    4. $ mine awesome_gem
    5. 切换到 awesome_gem/ 目录,编辑 README.rdocawesome_gem.gemspec 文件,在 lib/awesome_gem/ 中编写代码,并在 specs/ 中添加 RSpec 测试。
    6. 当你准备好发布时,更新 ChangeLog.rdoc 文件,运行 rake specrake rerdoc,打开 html/index.html 并检查有无拼写错误。
    7. rake release
    8. (可选)提交新的优秀 Gem 的链接和说明到 http://rubyflow.com

    坐下来,享受你的第一个 Gem 带来的荣耀吧。 :)


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接