首页 > 服务端语言 > Ruby 入门教程 > 52 Ruby 发布 Gem

Ruby 发布 Gem

之前学习了好几个 Gem,有没有好奇如何才能制作一个Gem呢,本章节会一步一步教大家发布一个自己的 Gem。

1. 注册 Gem

首先我们需要注册一个https://rubygems.org帐号。注册完成之后,您就拥有了属于自己的 RubyGems账号,别人就可以在你的主页上看到你发布的 Gem。

2. 生成 Gem 文件

我们发布 Gem 的时候要保证不要和已经存在的 Gem 重名,比如你的名字叫做小明,那你发布的 Gem最好叫做:my_gem_xiaoming007。这样能保证极大概率不会重名。

现在让我们执行命令来生成Gem文件。

$ bundle gem my_gem_duxiao

现在我们能看到生成的文件树状菜单是这样的。

$ tree .
.
└── my_gem_duxiao
    ├── Gemfile
    ├── README.md
    ├── Rakefile
    ├── bin
    │   ├── console
    │   └── setup
    ├── lib
    │   ├── my_gem_duxiao
    │   │   └── version.rb
    │   └── my_gem_duxiao.rb
    └── my_gem_duxiao.gemspec

3. 修改描述文件

让我们编辑 my_gem_duxiao.gemspec 这个文件,修改一些描述文件。

spec.summary       = %q{TODO: Write a short summary, because RubyGems requires one.}
spec.description   = %q{TODO: Write a longer description or delete this line.}

需要把 TODO 文字都去掉,要不然没法进行下一步操作。按照你自己想的修改一下 summary 和description。

代码尽量都放到 lib/目录下。

4. 本地生成你的 Gem

发布 Gem 要使用这一行命令:

gem build my_gem_duxiao.gemspec

命令行下显示内容:

WARNING:  licenses is empty, but is recommended.  Use a license abbreviation from:
http://opensource.org/licenses/alphabetical
WARNING:  See http://guides.rubygems.org/specification-reference/ for help
  Successfully built RubyGem
  Name: my_gem_duxiao
  Version: 0.1.0
  File: my_gem_duxiao-0.1.0.gem

然后我们会看到生成了 my_gem_duxiao-0.1.0.gem。这个就是我们想要的Gem。

5. 发布你的 Gem

gem push my_gem_duxiao-0.1.0.gem

命令行显示:

Enter your RubyGems.org credentials.
Don't have an account yet? Create one at https://rubygems.org/sign_up
   Email:

然后根据提示输入刚刚注册的 rubygems.org 用户名和密码就可以了。

上传完成之后,我们就可以在Gemfile里面使用gem 'my_gem_duxiao'来使用了!

之后我们可以将我们刚刚制作的的Gem给放到Github上进行版本管理,这里就不再赘述。

Tips :为了RubyGems社区的整洁,大家尽量不要发布一些没有用的Gems到线上去。

经验:

我们使用 Gemfile 来下载 Gem 的时候,尽量不要使用国外的 Gem 源,而使用国内的,这样下载速度会快很多,当然您如果在国外的服务器上使用 Gemfile,也要尽量使用国外的 Gem 源。

source 'https://rubygems.org/' # 修改source为:https://gems.ruby-china.com/
gem 'rails', '4.2.5'
...

国内的Gem源:https://gems.ruby-china.com/

国外的Gem源:https://rubygems.org/

修改 Gem 源的链接

6. 小结

本章节教大家如何一步一步创建自己的Gem。Ruby是一门非常便捷高效的语言,愿您能够喜欢它~

本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈