一不小心就跟
Godfat 寫的議題衝突,不過沒關係,我是走輕鬆簡單取向的。這次要講的就是如何將自己寫的程式包成 Ruby GEM,本文的參考自 JavaEye 上面的
创建自己的ruby Gems,程式也是來自
計算民國跟學年度的 Plugin的範例。
結構
要建立一個 GEM Package,首先要先搞清楚結構。因為我們是走極簡路線的,所以現在一開始連 unit-test 都不要 test。將你的 GEM Package 設定為下面的結構。
-----gem.spec
|
--README
|
--lib/
裡面 lib 就是放所有程式的所在。
結構檔
根目錄下面有 gem.spec,跟 README 兩個檔案。其中 gem.spec 是描述 GEM Package 的結構檔,也是最重要的檔案,裡面記載了這個 GEM Package 絕大多數的資訊。可以說學會了寫這個檔案,就學會了打包 GEM Package。這裡要講的是其實 gem.spec 檔名是我隨便取的,檔名不限定,而且他的格式可以使用 ruby 或是 YAML 語法的,這裡先使用 Ruby 語法。
require 'rubygems'
SPEC=Gem::Specification.new do |s|
s.name="Taiwan_Year"
s.version='0.01'
s.author='thegiive'
s.email="thegiive at gmail dot com"
s.homepage="http://lightyror.thegiive.net/"
s.platform=Gem::Platform::RUBY
s.summary="為台灣學年度跟民國所寫的Plugin"
condidates =Dir.glob("{bin,lib,docs,test}/**/*")
s.files=condidates.delete_if do |item|
item.include?("CVS")|| item.include?("rdoc")
end
s.require_path="lib"
s.has_rdoc=false
s.extra_rdoc_files=["README"]
end
裡面
- s.name 就是這個 gem 的名稱,也是他打包出來的檔名,也就是說這個 gem package 會叫做 Taiwan_Year-0.01.gem。
- s.version 部分 godfat 有解釋過,盡量從 0.0.1 而不是從 0.0.0 開始寫起。
- s.summary 就是當你打入 gem list 出現的簡單文字,安裝了本 gem ,按下 gem list 這裡會出現
sources (0.0.1)
This package provides download sources for remote gem installation
Taiwan_Year (0.01)
為台灣的學年度跟民國寫的 Plugin
vim-ruby (2006.07.11)
Ruby configuration files for Vim. Run 'vim-ruby-install.rb' to
complete installation.
這樣的情況。
再來就是 README ,就是打入一些information進去摟。
放入程式
最後把程式放入到 lib 底下,這裡是使用
計算民國跟學年度的 Plugin的範例,把他放入 lib/year.rb 檔案裡面
class Time
def roc_year
self.year - 1911
end
def student_year
if self.month < 7
self.roc_year - 1
else
self.roc_year
end
end
end
打包 gem
當程式都放好後,開始打包 gem 了。我們這裡使用 gem build 指令來打包
gem build gem.spec
這裡面的 gem.spec 就是你剛剛寫的結構檔的檔名。成功了之後,你就會發現我們已經產生了一個 Taiwan_Year-0.01.gem。
安裝 gem
要安裝這個剛打包好的 gem 就是直接打
gem i TaiwanYear-0.01.gem
即可。
使用 gem
要使用剛剛安裝好的 gem package ,首先要 require 'rubygems' ,告訴程式這個是使用 gem 的程式。
其次要搞清楚程式檔名,像我雖然 GEM Package 叫做 TaiwanYear ,但是我的程式其實是放在 lib/year.rb 底下的,所以使用上還是得必須 require 'year' 。
解決方式很簡單,當我們放入程式到 lib 裡面的時候,請將程式名稱取的跟 GEM Package 名字相同即可。像是當初在打包時,我們就將程式放在 lib/TaiwanYear.rb 底下,以後使用上就可以這樣使用。
require 'rubygems'
require 'TaiwanYear'
puts Time.now.roc_year
如此,我們已經學會如何打包 gem 了。
分享到:
相关推荐
【Unity资源】Gem Shader.unitypackage分流
file-tail 为rubygem所需要的一个工具,一般是用gem install file-tail下载,该file-tail适用于ruby版本为1.8.5,rubygem版本为1.2.0
本章介绍了gem5完整系统仿真模式的一组简单配置脚本。这些脚本是允许Linux引导的一组简单的工作脚本。这些脚本不是准备用于体系结构研究的完整脚本集。但是,它们是编写自己的脚本的良好起点。 完整系统模式的配置...
thin.gem eventmachine.gem for windows
CPU 2006 在 Gem5 中的应用 CPU 2006 是一款广泛使用的测试工具,旨在评估计算机系统的性能。Gem5 是一个开源的全系统架构模拟器,能够模拟各种计算机系统架构。将 CPU 2006 集成到 Gem5 中,可以对计算机系统的...
通用简易数据访问组件Gem.Data,非ORM,无需配置,直接编写SQL语句操作数据。支持多种数据库Access、MySql、SqlServer等。注意事项:开发环境为Visual Studio 2012,数据库为ACCESS,使用.net 4.0开发。
SECS/GEM/GEM300的测试模拟器,某公司流出版本,好用无BUG,功能支持好用,不想其他SECS Driver每次都要编辑交互指令。
SECS/GEM开发的源代码,运行稳定7*24小时,代码风格非常好,简单易懂
command:gem
版本为:rails-2.3.8.gem 可使用指令安装:gem install rails-2.3.8.gem
gem5提供了四种基于解释的CPU模型:简单的单CPI CPU; 有序CPU的详细模型和无序CPU的详细模型。 这些CPU模型使用通用的高级ISA描述。 此外,gem5具有基于KVM的CPU,该CPU使用虚拟化来加速仿真。 2、完全集成的GPU...
本软件专门用于gem系列血气分析仪(gem3000.gem3500,gem4000)用串口连接电脑传输测试结果,样本数据处理,并自定义打印分析报告单。
gem5仿真器的介绍与说明,并且指导该如何运行gem5仿真器
SECS GEM Solution
ruby资源文件,ruby rdoc.gem文件,离线ruby文件包
PLC的SECS/GEM通讯白皮书 采取分布式结构设计。 单个服务器瘫痪,立即切换到新的其他服务器分担连接,实现无丢失服务 超高并发处理,单服务器可达上百的连接数量。 快速、稳定可靠,您的选择不会有错。 ...
环球GEM接口协议。This document supports UPS+ 2.0.x and higher and Fuzion 1.0.x and higher
deprecated-2.0.1.gem 下载
redis-3.0.0.gem redis-3.0.0.gem redis-3.0.0.gem redis-3.0.0.gem redis-3.0.0.gem
JngHightSpeedSecs_SECSGEM_SECS_SECS源代码_SECS,GEM源代码_GEM.zip