自己創(chuàng)建Gem包

分2部分

  1. gem包開發(fā)
  2. 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ù)更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市揍障,隨后出現(xiàn)的幾起案子目养,更是在濱河造成了極大的恐慌,老刑警劉巖毒嫡,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癌蚁,死亡現(xiàn)場離奇詭異,居然都是意外死亡兜畸,警方通過查閱死者的電腦和手機努释,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咬摇,“玉大人伐蒂,你說我怎么就攤上這事「嘏簦” “怎么了逸邦?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵恩沛,是天一觀的道長。 經(jīng)常有香客問我缕减,道長雷客,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任桥狡,我火速辦了婚禮佛纫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘总放。我一直安慰自己呈宇,他們只是感情好,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布局雄。 她就那樣靜靜地躺著甥啄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炬搭。 梳的紋絲不亂的頭發(fā)上蜈漓,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音宫盔,去河邊找鬼融虽。 笑死,一個胖子當著我的面吹牛灼芭,可吹牛的內(nèi)容都是我干的有额。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼彼绷,長吁一口氣:“原來是場噩夢啊……” “哼巍佑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寄悯,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤萤衰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后猜旬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脆栋,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年洒擦,在試婚紗的時候發(fā)現(xiàn)自己被綠了椿争。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡秘遏,死狀恐怖丘薛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邦危,我是刑警寧澤洋侨,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布舍扰,位于F島的核電站,受9級特大地震影響希坚,放射性物質(zhì)發(fā)生泄漏边苹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一裁僧、第九天 我趴在偏房一處隱蔽的房頂上張望个束。 院中可真熱鬧,春花似錦聊疲、人聲如沸茬底。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阱表。三九已至,卻和暖如春贡珊,著一層夾襖步出監(jiān)牢的瞬間最爬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工门岔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爱致,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓寒随,卻偏偏與公主長得像糠悯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牢裳,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 說明本次redis集群安裝在rhel6.8 64位機器上逢防,redis版本為3.2.8,redis的gem文件版本為...
    讀或?qū)?/span>閱讀 14,752評論 3 9
  • CocoaPods 是什么蒲讯? CocoaPods 是一個負責管理 iOS 項目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,684評論 3 51
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理灰署,服務發(fā)現(xiàn)判帮,斷路器,智...
    卡卡羅2017閱讀 134,665評論 18 139
  • 一溉箕、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,746評論 0 10
  • 散發(fā)你滿滿的正能量吧晦墙!堅持就是勝利,朝目標邁進肴茄!
    談遷閱讀 114評論 0 0