分2部分
- gem包開發(fā)
- gem包發(fā)布及引用
1. gem包開發(fā)
1-1. 創(chuàng)建gem包項目
bundler gem xxxx
1-2. 進入gem包項目晚树,改修.gemspec文件躲株。
1-2-1. 填寫替換其中的summary钙勃、description漩怎。這2處的TODO: 必須去掉糊秆,否則不能編譯
spec.summary = %q{TODO: Write a short summary, because Rubygems requires one.}
spec.description = %q{TODO: Write a longer description or delete this line.}
1-2-2. 替換或清空homepage鹏往。必須填寫或者清空,否則發(fā)布到rubygems.org時會無法通過
spec.homepage = "TODO: Put your gem's website or public repo URL here."
1-2-3. 屏蔽下面代碼(respond_to部分)覆旱。必須填寫有效域名或者屏蔽蘸朋,否則發(fā)布到rubygems.org時會無法通過
if spec.respond_to?(:metadata)
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
else
raise "RubyGems 2.0 or newer is required to protect against " \
"public gem pushes."
end
1-2-4. 添加依賴包。參照下面格式添加
spec.add_development_dependency "bundler", "~> 1.15"
spec.add_development_dependency "rake", "~> 10.0"
1-3. 開發(fā)自己的gem包代碼
1-3-1. 引入自定義class文件
新gem默認為類型為module扣唱,如果需要引入class藕坯,可以將class文件直接放入lib/xxxx目錄下,并在lib/xxxx.rb入口文件引入:
require "yyyy"
1-3-2. 如果需要將包名與引入class名同步噪沙,則需要將以下2處位置進行修改:
lib/xxxx.rb 入口中的'module'改為'class'
lib/xxxx/version.rb中的'module'改為'class'
1-4. 編譯gem
rake build
1-5. 安裝gem(相當于先編譯炼彪,后安裝)
rake install
1-6. 測試gem
bin/console
或者
irb
進入ruby控制臺,然后引入gem
require 'xxxx'
引入后即可執(zhí)行g(shù)em中的方法進行測試
2. gem包發(fā)布正歼、安裝及引用
2-1. 本地安裝引用
2-1-1. 如果已經(jīng)編譯成gem文件辐马,則可直接單獨使用命令安裝
gem install --local xxxx
2-1-2. 如果是gem文件夾,則可放到項目的vendor/gems目錄下局义,然后在Gemfile中增加:
gem 'xxxx', path: 'vendor/gems/xxxx'
這樣在bundle install時喜爷,就能直接安裝
2-2. 通過rubygems安裝
2-2-1. 注冊rubygems
訪問https://rubygems.org,并注冊
2-2-2. 發(fā)布自己的gems旭咽,在gem項目目錄下贞奋,執(zhí)行以下命令
gem push pkg/xxxx-0.1.0.gem
等待更新完即可通過rubygems.org進行外網(wǎng)安裝,至于同步到其他鏡像則由鏡像同步頻率來決定穷绵。
2-3. rubygems上gem包刪除
gem yank xxxx -v 0.1.0
刪除后rubygems.org上將找不到該版本
2-4. rubygems上gem包更新
2-4-1. 每次更新必須更換版本號,即改修lib/xxxx/version.rb中的版本號
2-4-2. 重復版本號不允許重復發(fā)布特愿,就算已經(jīng)刪除仲墨,也是不允許的
*** 今后如有補充會繼續(xù)更新