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是一门非常便捷高效的语言,愿您能够喜欢它~