Ruby 發(fā)布 Gem
之前學(xué)習(xí)了好幾個(gè) Gem,有沒有好奇如何才能制作一個(gè)Gem呢,本章節(jié)會(huì)一步一步教大家發(fā)布一個(gè)自己的 Gem。
1. 注冊 Gem
首先我們需要注冊一個(gè)https://rubygems.org帳號(hào)。注冊完成之后,您就擁有了屬于自己的 RubyGems賬號(hào),別人就可以在你的主頁上看到你發(fā)布的 Gem。
2. 生成 Gem 文件
我們發(fā)布 Gem 的時(shí)候要保證不要和已經(jīng)存在的 Gem 重名,比如你的名字叫做小明,那你發(fā)布的 Gem最好叫做:my_gem_xiaoming007。這樣能保證極大概率不會(huì)重名。
現(xiàn)在讓我們執(zhí)行命令來生成Gem文件。
$ bundle gem my_gem_duxiao
現(xiàn)在我們能看到生成的文件樹狀菜單是這樣的。
$ 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 這個(gè)文件,修改一些描述文件。
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 文字都去掉,要不然沒法進(jìn)行下一步操作。按照你自己想的修改一下 summary 和description。
代碼盡量都放到 lib/目錄下。
4. 本地生成你的 Gem
發(fā)布 Gem 要使用這一行命令:
gem build my_gem_duxiao.gemspec
命令行下顯示內(nèi)容:
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
然后我們會(huì)看到生成了 my_gem_duxiao-0.1.0.gem。這個(gè)就是我們想要的Gem。
5. 發(fā)布你的 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:
然后根據(jù)提示輸入剛剛注冊的 rubygems.org 用戶名和密碼就可以了。
上傳完成之后,我們就可以在Gemfile里面使用gem 'my_gem_duxiao'
來使用了!
之后我們可以將我們剛剛制作的的Gem給放到Github上進(jìn)行版本管理,這里就不再贅述。
Tips:為了RubyGems社區(qū)的整潔,大家盡量不要發(fā)布一些沒有用的Gems到線上去。
經(jīng)驗(yàn):
我們使用 Gemfile 來下載 Gem 的時(shí)候,盡量不要使用國外的 Gem 源,而使用國內(nèi)的,這樣下載速度會(huì)快很多,當(dāng)然您如果在國外的服務(wù)器上使用 Gemfile,也要盡量使用國外的 Gem 源。
source 'https://rubygems.org/' # 修改source為:https://gems.ruby-china.com/
gem 'rails', '4.2.5'
...
國內(nèi)的Gem源:https://gems.ruby-china.com/
國外的Gem源:https://rubygems.org/
修改 Gem 源的鏈接。
6. 小結(jié)
本章節(jié)教大家如何一步一步創(chuàng)建自己的Gem。Ruby是一門非常便捷高效的語言,愿您能夠喜歡它~