如何建立自己的ruby gem包

2021-06-02 21:06:08 字數 3867 閱讀 9681

編寫乙個最簡單的例子

1. 建好如下資料夾

注意:lib目錄下必須有個和你gem名字一樣的rb檔案。

$ cd hola

$ tree

.├── hola.gemspec

└── lib

└── hola.rb

2. 編寫**

. hola.rb

% cat lib/hola.rb

class hola

def self.hi

puts "hello world!"

endend

.hola.gemspec

% cat hola.gemspec

gem::specification.new do |s|

s.name = 'hola'

s.version = '0.0.0'

s.date = '2010-04-28'

s.summary = "hola!"

s.description = "a ****** hello world gem"

s.authors = ["nick quaranto"]

s.email = '[email protected]'

s.files = ["lib/hola.rb"]

s.homepage =

''end

這裡面可以設定很多屬性。我會專門寫篇文章介紹。

上面欄位的意思,比較簡單。相信大家都能理解。

3.編譯生成gem

% gem build hola.gemspec

successfully built rubygem

name: hola

version: 0.0.0

file: hola-0.0.0.gem

% gem install ./hola-0.0.0.gem

successfully installed hola-0.0.0

1 gem installed

4.測試使用

% irb

>> require 'hola'

=> true

>> hola.hi

hello world!

注意:在ruby 1.9.2之前到版本裡面,需要先require 'rubygem',才能使用我們寫的gem.

5.發布到rubygems**

$ curl -u tom  >

~/.gem/credentials

enter host password for user 'tom':

設定完之後發布

% gem push hola-0.0.0.gem

pushing gem to rubygems.org...

successfully registered gem: hola (0.0.0)

發布成功。

這樣任何乙個人都可以使用你寫的gem了。

稍微複雜的rubygem例子

上面的例子只有乙個ruby檔案,一般gem應該沒有這麼簡單的。

下面說下有多個ruby檔案該怎麼寫。

1. 目錄結構

多了個hola目錄和translator.rb檔案

% tree

.├── hola.gemspec

└── lib

├── hola

│ └── translator.rb

└── hola.rb

2. **

lib/hola/translator.rb

% cat  lib/hola/translator.rb

class hola::translator

def initialize(language)

@language = language

enddef hi

case @language

when :spanish

"hola mundo"

else

"hello world"

endend

end

lib/hola.rb
% cat lib/hola.rb

class hola

def self.hi(language = :english)

translator = translator.new(language)

translator.hi

endendrequire 'hola/translator'

.hola.gemspec

% cat hola.gemspec

gem::specification.new do |s|

s.name = 'hola'

s.version = '0.0.0'

s.date = '2010-04-28'

s.summary = "hola!"

s.description = "a ****** hello world gem"

s.authors = ["nick quaranto"]

s.email = '[email protected]'

s.files = ["lib/hola.rb", "lib/hola/translator.rb"]

s.homepage =

''end

紅色是和上面不一樣的地方。

其他步驟和上面一樣了。很簡單吧!

最後說下怎麼寫個 gem包含可執行檔案的例子。

這個也很簡單。像rake就是典型的包含可執行檔案的gem.

1. 在剛才工程目錄下建個bin資料夾

生成可執行檔案,並且修改許可權為可執行。

% mkdir bin

% touch bin/hola

% chmod a+x bin/hola

2. 修改可執行檔案內容

bin/hola

#!/usr/bin/env ruby

require 'hola'

puts hola.hi(argv[0])

測試下

% ruby -ilib ./bin/hola

hello world

% ruby -ilib ./bin/hola spanish

hola mundo

3 .最後修改gemspec

% head -4 hola.gemspec

gem::specification.new do |s|

s.name = 'hola'

s.version = '0.0.1'

s.executables << 'hola'

其他就和上面一樣了。很簡單吧。

Ruby gem包的管理

1.配置好gemfile gemfile中可以定義專案中必須要安裝的包以及相應的版本號,這樣就可以避免不同的安裝包以及版本之間的差異帶來的問題。source gem rake gem fuubar gem fuubar cucumber 0.0.18 gem rb fsevent require f...

建立發布自己的npm包

首先在npm 上註冊乙個賬號,這個賬號之後會用到。註冊完畢,回到我們的電腦。windows直接cmd到命令列 輸入以下命令,會提示輸入使用者名稱 密碼 郵箱,這些都是註冊時填寫過的。輸入以下命令,會提示配置包的相關資訊,名稱版本等等,都是包的基本配置資訊 配置完畢開始寫自己的包內 建立乙個index...

建立屬於自己的NPM包

這一步很簡單,只需訪問npm官網建立乙個賬號 在執行這一步前,先給自己的第乙個npm取乙個名字,命名需要注意以下規範 1 不要與已存在的其他npm包重名 2 包名不能出現大寫 3 不能混淆作者身份 4 符合npm標準,不能有冒犯性的命名,或是別人的商標名 5 在package.json檔案的相應行中...