編寫乙個最簡單的例子
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檔案的相應行中...