婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 創建自定義的Ruby gem包的教程

創建自定義的Ruby gem包的教程

熱門標簽:中牟外呼系統違法嗎 征服者企業地圖標注 柯城手機地圖如何做地圖標注 淮安自動外呼系統供應商 AI電銷機器人 線路 外呼線路從哪里出來的 巫師3地圖標注魔力之所 漯河電銷 天津外呼系統怎么收費

編寫一個最簡單的例子

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包管理器的用法及用bundler來管理多版本的gem
  • Ruby中的gem包管理的使用及gem源搭建教程
  • Ruby包管理器gem常用命令
  • ruby執行周期性任務的三種gem介紹
  • Ruby環境下安裝使用bundler來管理多版本的gem

標簽:河池 克拉瑪依 南昌 大慶 內江 甘孜 棗莊 西雙版納

巨人網絡通訊聲明:本文標題《創建自定義的Ruby gem包的教程》,本文關鍵詞  創建,自定義,的,Ruby,gem,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《創建自定義的Ruby gem包的教程》相關的同類信息!
  • 本頁收集關于創建自定義的Ruby gem包的教程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 长武县| 平阳县| 海宁市| 牡丹江市| 沅江市| 洱源县| 靖州| 北辰区| 阿瓦提县| 遂川县| 巴楚县| 新巴尔虎右旗| 旺苍县| 高安市| 错那县| 思南县| 东城区| 册亨县| 嘉义市| 五大连池市| 泾阳县| 芒康县| 白山市| 卢龙县| 湘乡市| 乌海市| 即墨市| 凌源市| 岚皋县| 甘孜县| 甘泉县| 荥阳市| 南皮县| 西贡区| 射阳县| 昂仁县| 西林县| 双牌县| 南和县| 岐山县| 宁河县|