Ruby:如何写一个 gem? [关闭]

Posted

技术标签:

【中文标题】Ruby:如何写一个 gem? [关闭]【英文标题】:Ruby : How to write a gem? [closed] 【发布时间】:2011-01-12 18:23:18 【问题描述】:

我想为 Ruby 编写一个包并将其作为 gem 提供。 有哪些工具、步骤和陷阱? 是否有任何好的教程、截屏视频等可以帮助您学习如何做到这一点?

【问题讨论】:

【参考方案1】:

Rubygems.org's Guides 是编写自己的 gem 的最佳资源之一。

如果您在应用中使用Bundler,您可能需要查看Ryan Bigg 的Developing a RubyGem using Bundler 和Railscast on creating gems with Bundler 指南。

如果您对帮助您编写 gem 的工具感兴趣:

Jeweler - 用于创建和管理 Rubygem 项目的自以为是的工具。还有一个Gemcutter and Jeweler Railscast。 Hoe - 来自 seattlrb 的人。 gem-this 添加了一堆有用的 rake 任务。

一些教程/指南:

Creating Your First Gem Using bundler and rvm to build a rubygem - 使用 bundler 和 rvm 创建 gem Gem Packaging: Best Practices Ruby Gem Recipe - 使用捆绑器和珠宝商创建宝石的介绍指南 How to build a ruby gem and host it on gemcutter - 使用 echoe 和 gemcutter 的教程 The Truth About Gemspecs - 查看 gemspecs 和处理它们的技巧 Packaging with RubyGems - 珠宝商快速入门指南 gem that - James Adam - 评论有助于构建 gem 的工具(hoe、newgem、echo、gemhub、jeweler、gem this) Using Gemcutter's Api from the Commandline New Gem with Bundler – Sample Rakefile - 用于部署和发布 gem 的有用 rakefile Let's Write a Gem How To Build A Ruby Gem With Bundler, Test-Driven Development, Travis CI And Coveralls, Oh My!

【讨论】:

gem build 由 RubyGems 本身提供。所有 Gemcutter gem(很快,RubyGems 正确)都允许您使用 API 推送 RubyGem。 gemcutter.org/pages/gem_docsgemcutter.org/pages/api_docs 谢谢,我已经编辑了回复。【参考方案2】:

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

    注册https://github.com 注册https://rubygems.org $ gem install ore rubygems-tasks rdoc rspec $ mine awesome_gem cd awesome_gem/ 并编辑 README.rdocawesome_gem.gemspec,在 lib/awesome_gem/ 中编写代码并在 specs/ 中添加 RSpec 测试。 准备好发布后,更新ChangeLog.rdoc 文件,运行rake specrake rerdoc,打开html/index.html 并仔细检查是否有任何拼写错误。 rake release (可选)向http://rubyflow.com 提交您的新真棒宝石的链接和说明

坐下来享受您的第一颗宝石的荣耀。 :)

【讨论】:

【参考方案3】:

您无需开始编写 gem,只需编写一些代码,编写一些测试,随心所欲地使用它,一旦您对它感到满意,使用 gem this 生成相关的 Rakefile。

如果你坚持使用其他 gem 所采用的方法(有一个 lib 目录,避免以可能与其他 gem 冲突的方式命名文件,如果可以的话写一些测试,有一个自述文件),这会有所帮助,但这不是必需的。

一旦您有想要分享的内容,请将其放在github 并推送至gemcutter。

不要想太多,不要使用锄头或其他矫枉过正的工具,玩得开心,不要做任何我不会做的事情。

【讨论】:

以上是关于Ruby:如何写一个 gem? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

bundler vs RVM vs gems vs RubyGems vs gemsets vs system ruby​​ [关闭]

如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法?

Ruby:如何安装特定版本的 ruby​​ gem?

如何升级我的本地自定义 gem“my_gem”的 ruby​​ 版本

ruby ide的gem包如何安装

如何使用 jira-ruby gem 将转换更改为 ruby​​ 中的问题?