1. 程式人生 > >RubyGems系列之建立自己的gem

RubyGems系列之建立自己的gem

轉載請註明來源:https://www.cnblogs.com/zhanggui/p/9720818.html

一. 前言

我們可以用rubygems.org中下載安裝他人建立的gem。現在,我們嘗試一下自己建立一個gem,然後釋出,供他人使用。

二. 製作gem

這裡開始建立一個zhola的gem,主要作用是輸出Hello world。首先建立一個如下tree的資料夾: tree 建立完成之後,在zhola.rb中填寫如下程式碼:

class Zhola
    def self.hi
        puts "Hello world!"
    end
end

然後設定一下gemspec檔案:

Gem::Specification.new do |s|
    s.name          = 'zhola'
    s.version       = '0.0.1'
    s.date          = '2018-09-28'
    s.summary       = 'Zhanggui first gem'
    s.description   = '第一次建立gem檔案'
    s.authors       = ["Zhanggui"]
    s.email         = '
[email protected]
' s.files = ["lib/zhola.rb"] s.homepage = 'http://rubygems.org/gems/zhola' s.license = 'MIT' end

這裡的homepage為即將釋出到的page。 然後在當前資料夾下執行build命令:

gem build zhola.gemspec

執行成功的結果為:

 Successfully built RubyGem
  Name: zhola
  Version: 0.0.1
  File: zhola-0.0.1.gem

執行成功之後,便會在資料夾中建立zhola-0.0.1.gem檔案。此時gem製作成功。

三. 安裝建立的gem

在剛剛建立的gem檔案目錄下執行命令:

gem install ./zhola-0.0.1.gem

輸出的結果為:

Successfully installed zhola-0.0.1
Parsing documentation for zhola-0.0.1
Done installing documentation for zhola after 0 seconds
1 gem installed

通過上述命令將剛才建立的gem安裝到本機。

四. 檢視是否安裝成功

開啟終端,然後使用irb命令進行測試:

zhola irb --simple-prompt --noecho
>> require "zhola"
>> Zhola.hi
Hello world!
>>

當終端輸出Hello world!,說明已經可以正常使用剛才建立的gem。

五. 將gem釋出到Rubygems.org

首先,需要註冊一個賬號,直接在https://rubygems.org/ 註冊即可,然後開啟終端,在終端輸入:

curl -u ***** https://rubygems.org/api/v1/api_key.yaml  # ***** 為你的使用者名稱

緊接著輸入密碼,回車之後便會得到一個api_key。 接著在gem資料夾中輸入下面的指令:

 gem push zhola-0.0.1.gem   # push後面為生成的gem名稱

push成功之後終端顯示:

Pushing gem to https://rubygems.org...
Successfully registered gem: zhola (0.0.1)

此時說明已經發布到rubygems成功,其他人直接使用:

gem install zhola

即可使用剛才釋出的gem。 該gem的homepage為:https://rubygems.org/gems/zhola 。

六. 總結

至此,我們就已經發布了一個gem到rubygems。如果覺得上面的這種方式比較麻煩,需要建立資料夾、建立gemspec等等,也可以直接使用bundle進行建立。這個後面有時間在介紹。