免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
創(chuàng)建你的第一個Gem


By pilipala | Published: 2011/11/15

原文作者:John McAliley,原文地址,翻譯:Pilipala

你在Ruby世界看到到處都是Gem。他們幾乎是所有的Ruby應用程序的核心。我承認當我試著建立第一個Gem的時候,我有點戰(zhàn)戰(zhàn)兢兢。但我很快就發(fā)現(xiàn)了,這玩意簡單得要死。在這個博客系列中,我將涵蓋從頭開始創(chuàng)建一個Gem的基礎,然后轉移到更高級的主題,包括Gem生成工具和Rails引擎。首先,對于你們這些Ruby有新手,第一個問題是:什么是Gem?簡而言之,它是打包的Ruby代碼。在最低限度,Gem包括一個Ruby文件和一個gemspec。gemspec(Gem規(guī)范)描述Gem信息,RubyGems包管理器需要這些信息安裝Gem。

RubyGems包管理器可以下載,并安裝Gem到你的系統(tǒng),并允許你在其他Ruby程序中使用這些Gem。Ruby 1.9默認安裝RubyGems。如果你使用的是Ruby 1.9之前的版本,你可以在這里下載RubyGems。在Ruby 1.9之前版本的應用程序中使用RubyGems,你需要在你的應用程序,加入這一行 :

require 'rubygems'

Ruby 1.9中不需要這么做,因為RubyGems已經(jīng)被包含在Ruby 1.9中。

Gem規(guī)范(Gem Specification)

正如我在前面提到,Gem的規(guī)范描述了Gem。讓我們看看一個基本的gemspec文件:

  1. Gem::Specification.new do |s|  
  2.   s.name = %q{my_gem}  
  3.   s.version = "0.0.1"  
  4.   s.date = %q{2011-09-29}  
  5.   s.summary = %q{my_gem is an awesome gem}  
  6.   s.files = [  
  7.     "Gemfile",  
  8.     "Rakefile",  
  9.     "VERSION",  
  10.     "lib/my_gem.rb"  
  11.   ]  
  12.   s.require_paths = ["lib"]  
  13. end  

gemspec是一個相當簡單的文件,描述你的Gem的各個方面。在上面的例子gemspec中的文件中,我只列出必需的屬性。
前4個屬性是不言自明?!拔募睂傩灾辛谐霭ㄔ贕em中的所有文件。
“require_paths”屬性指定的目錄,其中包含Ruby文件應該被這個Gem所加載。gemspec所用到的完整屬性列表,請參考這里。

這是一些簡單的基礎知識,現(xiàn)在讓我們切入正題,尋找更有趣的東西。

從頭開始創(chuàng)建一個Gem

1、建立Gem的基本文件結構:

輸入shell指令,并創(chuàng)建Gem需要的目錄:

$ mkdir awesome_gem$ cd awesome_gem$ mkdir lib

就這樣!你需要為你的Gem和一個lib目錄來存放你的Ruby文件的根目錄。

2、創(chuàng)建的gemspec

我們將使用上一節(jié)gemspec文件作為模板。創(chuàng)建一個名為“awesome_gem.gemspec”在你的Gem的根目錄中。然后添加一些代碼,以成為一個有效的gemspec:

  1. Gem::Specification.new do |s|  
  2.   s.name = %q{awesome_gem}  
  3.   s.version = "0.0.0"  
  4.   s.date = %q{2011-09-29}  
  5.   s.summary = %q{awesome_gem is the best}  
  6.   s.files = [  
  7.     "lib/awesome_gem.rb"  
  8.   ]  
  9.   s.require_paths = ["lib"]  
  10. end  

這個文件包含了一個gemspec標準所需的屬性,并且顯示我們有一個“l(fā)ib”目錄。在lib目錄中的文件“awesome_gem.rb”將被用來保存這個Gem的Ruby代碼。

3、添加一些代碼

為了簡單起見,我們將只用一個Ruby文件在這個Gem里:/lib/awesome_gem.rb,你會看到這種結構類型在大多數(shù)你遇到的Gem中。 “l(fā)ib”內(nèi)的根文件通常會與Gem的名稱相匹配。本例中,“awesome_gem”和“/lib/awesome_gem.rb” 。

繼續(xù)創(chuàng)建這個文件,添加下面的代碼:

  1. module AwesomeGem  
  2.   class WhoIs  
  3.     def self.awesome?  
  4.       puts "YOU ARE AWESOME!!"  
  5.     end  
  6.   end  
  7. end  

這雖然不是什么改變世界的代碼,至少, awesome? 方法讓你感覺不錯。這個Gem將允許你在其他Ruby程序里面使用 WhoIs 的類方法awesome?。

正如我在第一部分中提到,RubyGems的將安裝Gem在你的應用程序中,并使用Gem中的類。

4、生成的Gem文件

現(xiàn)在,你有一些很棒的代碼,你將要創(chuàng)建一個Gem,所以你可以在另一個Ruby程序用這些代碼。RubyGems提供命令,讓你創(chuàng)建一個Gem。輸入下面命令在Gem的根目錄:

$ gem build awesome_gem.gemspec

此命令將建立Gem和輸出Gem文件,將包括版本號在文件名中。由于gemspec中版本屬性的值是“0.0.0”,Gem的文件將被命名為awesome_gem-0.0.0。
你應該看到下面的輸出和對一些缺少的屬性警告:

Successfully built RubyGemName: awesome_gemVersion: 0.0.0File: awesome_gem-0.0.0.gem

你可以忽略這些警告,繼續(xù)在系統(tǒng)上安裝這個Gem。請注意,Gem文件被創(chuàng)建在當前目錄中。

5、安裝Gem

現(xiàn)在,你有一個Gem文件,你可以使用RubyGems安裝這個Gem到你的計算機上。通常情況下,你安裝的Gem來源于外部,但不限于此。如果你有機會得到Gem文件,你可以通過指定Gem文件的位置將其安裝在本地。下面的命令在本地安裝awesome_gem.gem:

gem install awesome_gem.gemspec

你應該得到以下輸出:

Successfully installed awesome_gem-0.0.01 gem installedInstalling ri documentation for awesome_gem-0.0.0...Installing RDoc documentation for awesome_gem-0.0.0...

耶!你剛創(chuàng)建了Gem!這個Gem現(xiàn)在已經(jīng)安裝在你的系統(tǒng),并準備在另一個Ruby程序中使用。

6、Gem的另一個Ruby程序

創(chuàng)建一個新的Ruby文件將用來測試我們的Gem。讓我們叫它“be_awesome.rb”。你可以在你的系統(tǒng)中的任何位置創(chuàng)建此文件,然后添加下面的代碼,所以我們可以使用Gem中的“awesom?”類方法。用 require “awesome_gem”,RubyGems將能夠找到Gem,把這個類提供給你的程序。然后你只需要調用它。以下是代碼:

  1. require 'awesome_gem'  
  2. AwesomeGem::WhoIs.awesome?  

現(xiàn)在你可以運行Ruby程序和測試你新創(chuàng)建的Gem,看看你是如何awesome的。通過命令行輸入:

ruby be_awesome.rb

你應該看到在你的shell下面的輸出:

YOUR ARE AWESOME!

恭喜你,你只要在程序中使用你的新的Gem!雖然它還不值得放在GitHub上,跟朋友吹噓,但是, 你還是學會了如何從頭開始創(chuàng)建一個Gem,并在另一個程序中使用它?,F(xiàn)在,你可以繼續(xù)前進,追求更大的進步。

結論

雖然本教程是相當簡單,只涉及創(chuàng)建一個基本的Gem,我認為它對新的Gem開發(fā)者仍然很重要。

基礎知識給你一個進入高級的主題良好基礎。平時,我用Jeweler去創(chuàng)造Gem,這的確是一個功能強大的工具, 但我覺得手工從頭創(chuàng)建一個Gem之前就用這樣的生成工具,可能是有害的。

你需要了解如何構建一個Gem的最簡單的形式,才可以理解像Jeweler這樣的生成工具的背后是什么。雖然我建議在你第一次學習Gem開發(fā)時,手工從頭創(chuàng)建一個Gem。但是,當你理解了基礎知識,就沒什么理由拒絕使用生成器了。

生成器可以節(jié)省很多時間,因為他們給你一個很好的起始架構。本系列的下一個博客后,將有關Gem的開發(fā),以及更高級的主題,諸如:如何使用生成工具來開始你的Gem開發(fā)。以后的文章將解釋如何開發(fā)Ruby on Rails的Gem。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
如何創(chuàng)建自己的ruby gem包
gollum筆記
RubyGems系列之創(chuàng)建自己的gem
Windows redis集群搭建
RubyGems簡介
CentOS 5安裝ROR
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服