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.rdoc
和 awesome_gem.gemspec
,在 lib/awesome_gem/
中编写代码并在 specs/
中添加 RSpec 测试。
准备好发布后,更新ChangeLog.rdoc
文件,运行rake spec
和rake 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 方法?