如何创建自己的ruby gem包

Python014

如何创建自己的ruby gem包,第1张

1. 建好如下文件夹

注意:lib目录下必须有个和你gem名字一样的rb文件。

[ruby] view plaincopy

$ cd hola

$ tree

.

├── hola.gemspec

└── lib

└── hola.rb

2. 编写代码

. hola.rb

[ruby] view plaincopy

% cat lib/hola.rb

class Hola

def self.hi

puts "Hello world!"

end

end

.hola.gemspec

[ruby] view plaincopy

% 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 = '[email protected]'

s.files = ["lib/hola.rb"]

s.homepage=

'http://dghuamiao.com'

end

这里面可以设置很多属性。我会专门写篇文章介绍。

上面字段的意思,比较简单。相信大家都能理解。

3.编译生成gem

[ruby] view plaincopy

% 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.测试使用

[ruby] view plaincopy

% irb

>>require 'hola'

=>true

>>Hola.hi

Hello world!

注意:在ruby 1.9.2之前到版本里面,需要先require 'rubygem',才能使用我们写的gem.

RubyGems是一个用于Ruby的包管理工具,虽然并未包含在Ruby的发行版中,但是可以认为是事实上Ruby世界中标准的发布Ruby程序和库的工具,可以很方便的管理gem之间的依赖性。

如果你是在进行Open Source的Ruby程序开发,可以直接通过Rubyforge来发布gem。不过如果是自己的私有项目,可能就需要自己搭建一个Web server来进行gem的发布了。如果系统中已经安装了RubyGems的话,通过gem server (gem help server看看用法)就可以启动一个简单的gem发布的server。不过很可能的,你已经有一个Web Server在系统环境中了(如Apache Web Server),这个时候就通过以下的几个步骤可以完成把这个Web Server改造成为一个gem distribution server:

(请注意最后的一个点,表示当前目录)。

这一命令会对gems子目录中的所有gem建立一个索引文件yaml,并存放在dist目录下,以便可以通过gem install命令安装时查找。

最后,Enjoy yourself!