亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

創建自定義的Ruby gem包的方法

2020-02-24 15:37:32
字體:
來源:轉載
供稿:網友

安裝gem包時ruby.html" target="_blank">ruby使用的默認源代碼是rubygems。由于國內的網絡,使用Ruby的gem安裝各種軟件包基本上是失敗的,本文為大家推薦創建自定義的Ruby gem包的方法,希望對你有幫助!

編寫一個最簡單的例子

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!"    end   end 

?


.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 simple hello world gem"    s.authors   = ["Nick Quaranto"]    s.email    = 'nick@quaran.to'    s.files    = ["lib/hola.rb"]    s.homepage  =     'http://rubygems.org/gems/hola'   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 https://rubygems.org/api/v1/api_key.yaml >   ~/.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    end       def hi     case @language     when :spanish      "hola mundo"     else      "hello world"     end    end   end 

?

lib/hola.rb

  % cat lib/hola.rb   class Hola    def self.hi(language = :english)     translator = Translator.new(language)     translator.hi    end   end      require '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 simple hello world gem"    s.authors   = ["Nick Quaranto"]    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文件夾

生成可執行文件,并且修改權限為可運行。

  % 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包的方法都有了了解了?想學習更多這方面的知識,可以將武林技術頻道收藏起來喲!?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情国产日韩精品一区18| 美女视频久久黄| 性亚洲最疯狂xxxx高清| 亚洲欧美自拍一区| 亚洲免费av电影| 久久精品91久久久久久再现| 91精品国产色综合久久不卡98口| 91在线直播亚洲| 日韩人体视频一二区| 91精品视频免费看| 欧美激情喷水视频| 久久精品91久久香蕉加勒比| 日韩在线高清视频| 尤物99国产成人精品视频| 欧美视频裸体精品| 久久国内精品一国内精品| 国产日本欧美视频| 久久91亚洲精品中文字幕奶水| 中文字幕av一区中文字幕天堂| 91麻豆国产精品| 国产欧美日韩高清| 日韩精品视频中文在线观看| 97精品在线观看| 欧美激情综合亚洲一二区| 久久久综合免费视频| 日韩免费中文字幕| 欧美自拍视频在线| 日韩在线观看网站| 亚洲人成电影网站色www| 欧美福利在线观看| 亚洲国产成人久久综合| 日韩欧美在线视频| 成人妇女淫片aaaa视频| 国产亚洲激情视频在线| 97香蕉超级碰碰久久免费的优势| 日韩欧美中文字幕在线播放| 亚洲精品一区久久久久久| 日韩中文第一页| 亚洲欧美激情在线视频| 久久久天堂国产精品女人| 久久91精品国产91久久久| 一区二区三区视频免费| 久久久这里只有精品视频| 久久这里只有精品视频首页| 中文字幕不卡在线视频极品| 粉嫩av一区二区三区免费野| 日韩欧美有码在线| 国产丝袜高跟一区| 日韩av电影中文字幕| 久久人人97超碰精品888| 久久久久久亚洲精品不卡| 在线国产精品播放| 日本成人精品在线| 久久视频这里只有精品| 欧美日韩亚洲网| 亚洲精品国产精品国自产在线| 欧美国产日韩一区| 黑人狂躁日本妞一区二区三区| 国产日韩欧美在线看| 2019亚洲日韩新视频| 992tv在线成人免费观看| 97视频免费在线看| 国产在线精品一区免费香蕉| 美女少妇精品视频| 日韩免费在线免费观看| 欧美大秀在线观看| 国产精品成人免费视频| 日韩中文字幕网址| 成人网页在线免费观看| 国产综合色香蕉精品| 日本午夜在线亚洲.国产| 欧美日韩国产第一页| 不卡av在线网站| 日韩精品一区二区三区第95| 久久精品一偷一偷国产| 亚洲美女精品成人在线视频| 亚洲国产精品va在看黑人| 国产日韩欧美另类| 亚洲护士老师的毛茸茸最新章节| 日本高清视频一区| 国模精品视频一区二区三区| 亚洲va久久久噜噜噜久久天堂| 国产免费成人av| 欧美自拍视频在线观看| 狠狠躁夜夜躁人人爽超碰91| 久久久免费高清电视剧观看| 国产日韩综合一区二区性色av| 国产日本欧美在线观看| 亚洲片在线资源| 亚洲色图色老头| 亚洲第一级黄色片| 一区二区亚洲欧洲国产日韩| 日本aⅴ大伊香蕉精品视频| 欧美黑人一区二区三区| 久久伊人色综合| 日韩av免费看网站| 精品国产91久久久久久| 日韩精品在线视频| 夜夜嗨av一区二区三区免费区| 国产在线一区二区三区| 秋霞av国产精品一区| 日本一本a高清免费不卡| 88xx成人精品| 日韩欧美精品网站| 亚洲аv电影天堂网| 久久久久久久电影一区| 中文字幕在线看视频国产欧美| 一区二区三区 在线观看视| 日韩av不卡电影| 成人黄色片在线| 国产成人精品综合| 国产欧美一区二区| 亚洲电影免费观看高清| 欧美午夜久久久| 亚洲久久久久久久久久久| 91免费福利视频| 蜜臀久久99精品久久久久久宅男| 狠狠躁18三区二区一区| 午夜精品福利电影| 青青久久av北条麻妃黑人| 成人精品视频在线| 国产成人亚洲综合| 国内精品免费午夜毛片| 精品久久久久久久中文字幕| 亚洲国产婷婷香蕉久久久久久| 亚洲天堂日韩电影| 在线观看中文字幕亚洲| 69久久夜色精品国产69| 亚洲护士老师的毛茸茸最新章节| 国产精品99导航| 国产在线观看不卡| 中文字幕日韩精品在线| 97超视频免费观看| 久久精品国产视频| 8x拔播拔播x8国产精品| 国产精品久久久久高潮| 亚洲精品网址在线观看| 亚洲欧洲高清在线| 国产成人精品电影| 久久久久久久一| 社区色欧美激情 | 欧美性视频网站| 久久久av亚洲男天堂| 国产精品美腿一区在线看| 亚洲深夜福利网站| 亚洲欧洲在线视频| 久久精品在线视频| 2019中文字幕免费视频| 国产精品午夜一区二区欲梦| 欧美在线视频免费播放| 成人夜晚看av| 亚洲乱码一区av黑人高潮| 久久精品影视伊人网| 欧美一区二区视频97| 中文.日本.精品| 在线色欧美三级视频| 日韩av123| 欧美床上激情在线观看| 色偷偷噜噜噜亚洲男人的天堂| 日韩专区中文字幕| 国产精品免费久久久久久| 中文字幕免费精品一区高清| 亚洲精品视频二区| 欧美精品电影免费在线观看|