如何創建自己的ruby gem包
編寫一個最簡單的例子
1. 建好如下文件夾
注意:lib目錄下必須有個和你gem名字一樣的rb文件。
[ruby] view plaincopy
- $cdhola
- $tree
- .
- ├──hola.gemspec
- └──lib
- └──hola.rb
2. 編寫代碼
. hola.rb
[ruby] view plaincopy- %catlib/hola.rb
- classHola
- defself.hi
- puts"Helloworld!"
- end
- end
.hola.gemspec [ruby] view plaincopy
- %cathola.gemspec
- Gem::Specification.newdo|s|
- s.name="hola"
- s.version="0.0.0"
- s.date="2010-04-28"
- s.summary="Hola!"
- s.description="Asimplehelloworldgem"
- s.authors=["NickQuaranto"]
- s.email="nick@quaran.to"
- s.files=["lib/hola.rb"]
- s.homepage=
- "http://rubygems.org/gems/hola"
- end
這裡面可以設置很多屬性。我會專門寫篇文章介紹。
上面欄位的意思,比較簡單。相信大家都能理解。
3.編譯生成gem
[ruby] view plaincopy
- %gembuildhola.gemspec
- SuccessfullybuiltRubyGem
- Name:hola
- Version:0.0.0
- File:hola-0.0.0.gem
- %geminstall./hola-0.0.0.gem
- Successfullyinstalledhola-0.0.0
- 1geminstalled
4.測試使用 [ruby] view plaincopy
- %irb
- >>require"hola"
- =>true
- >>Hola.hi
- Helloworld!
注意:在ruby 1.9.2之前到版本裡面,需要先require "rubygem",才能使用我們寫的gem.
5.發布到rubygems網站
[ruby] view plaincopy- $curl-utomhttps://rubygems.org/api/v1/api_key.yaml>
- ~/.gem/credentials
- Enterhostpasswordforuser"tom":
設定完之後發布 [ruby] view plaincopy
- %gempushhola-0.0.0.gem
- PushinggemtoRubyGems.org...
- Successfullyregisteredgem:hola(0.0.0)
發布成功。
這樣任何一個人都可以使用你寫的gem了。
稍微複雜的rubygem例子
上面的例子只有一個ruby文件,一般gem應該沒有這麼簡單的。
下面說下有多個ruby文件該怎麼寫。
1. 目錄結構
多了個hola目錄和translator.rb文件
[ruby] view plaincopy- %tree
- .
- ├──hola.gemspec
- └──lib
- ├──hola
- │└──translator.rb
- └──hola.rb
2. 代碼
lib/hola/translator.rb
[ruby] view plaincopy
- %catlib/hola/translator.rb
- classHola::Translator
- definitialize(language)
- @language=language
- end
- defhi
- case@language
- when:spanish
- "holamundo"
- else
- "helloworld"
- end
- end
- end
lib/hola.rb
[ruby] view plaincopy
- %catlib/hola.rb
- classHola
- defself.hi(language=:english)
- translator=Translator.new(language)
- translator.hi
- end
- end
- require"hola/translator"
.hola.gemspec
[ruby] view plaincopy- %cathola.gemspec
- Gem::Specification.newdo|s|
- s.name="hola"
- s.version="0.0.0"
- s.date="2010-04-28"
- s.summary="Hola!"
- s.description="Asimplehelloworldgem"
- s.authors=["NickQuaranto"]
- s.email="nick@quaran.to"
- s.files=["lib/hola.rb","lib/hola/translator.rb"]
- s.homepage=
- "http://rubygems.org/gems/hola"
- end
紅色是和上面不一樣的地方。
其他步驟和上面一樣了。很簡單吧!
最後說下怎麼寫個 gem包含可執行文件的例子。
這個也很簡單。像rake就是典型的包含可執行文件的gem.
1. 在剛才工程目錄下建個bin文件夾
生成可執行文件,並且修改許可權為可運行。
[ruby] view plaincopy
- %mkdirbin
- %touchbin/hola
- %chmoda+xbin/hola
2. 修改可執行文件內容bin/hola[ruby] view plaincopy
- #!/usr/bin/envruby
- require"hola"
- putsHola.hi(ARGV[0])
測試下[ruby] view plaincopy
- %ruby-Ilib./bin/hola
- helloworld
- %ruby-Ilib./bin/holaspanish
- holamundo
3 .最後修改gemspec[ruby] view plaincopy
- %head-4hola.gemspec
- Gem::Specification.newdo|s|
- s.name="hola"
- s.version="0.0.1"
- s.executables<<"hola"
其他就和上面一樣了。很簡單吧。
推薦閱讀:
※人活著不容易,別把自己太虧欠(句句入心)
※如何催促自己的朋友還錢?
※?認識自己性格的能力測試!
※對自己的決定不說後悔
※南瓜營養功效好,但千萬別和它一起吃,小心是損害自己的健康!
TAG:自己 |