Ruby - 创建自己的GEM

Log 1 创建自己的gem

背景:好奇gem包的用法,首先搞清楚什么是gem包。那我们就先来创建一个自己的gem包。

时间:2014-3-8

环境:Ubuntu + Ruby 1.9.3

记录:Roy


 

 

创建目录结构

$ cd ~;mkdir -p codes/ruby/sayhello
$ cd codes/ruby/sayhello
$ mkdir bin
$ mkdir lib

创建vim lib/sayhello.rb

1 #!/usr/bin/ruby
2 
3 def sayhello(name)
4     puts "#{name} says hello to you!"
5 end

创建vim bin/sayhello

1 #!/usr/bin/ruby
2 require 'sayhello'
3 param_num = 0
4 while param_num < ARGV.length
5     sayhello(ARGV[param_num])
6     param_num += 1
7 end

创建vim sayhello.spec

 1 SPEC=Gem::Specification.new do |s|
 2     s.name = 'sayhello'
 3     s.version = '0.1.0'
 4     s.files = 'lib/sayhello.rb'
 5     s.executable = 'sayhello'
 6     s.summary = 'This is an example!'
 7     s.description = 'A sample to say hello.'
 8     s.email = 'burningroy2011@gmail.com'
 9     s.homepage = "<link>"
10     s.authors = ['Roy']
11 end

sayhello目录结构

$ tree .
.
|
|-----bin
|      |---sayhello
|-----lib
|      |---sayhello.rb
|-----sayhello.spec

执行build

$ gem build sayhello.spec

安装sayhello包

$ gem install sayhello-0.1.0.gem
Successfully installed sayhello-0.1.0
1 gem installed
Installing ri documentation for sayhello-0.1.0...
Installing RDoc documentation for sayhello-0.1.0...

已经安装的gem位置

$ cd /var/lib/gems/1.9.1/gems
$ tree .
.----sayhello-0.1.0
        |
        |-----bin
        |     |---sayhello
        |-----lib
              |---sayhello.rb

使用包进行测试

创建vim ~/dash.rb

1 #!/usr/bin/ruby
2 
3 require 'rubygems'
4 load Gem.bin_path('sayhello','sayhello')

执行~/dash.rb(注意打开执行权限)

$ ~/dash.rb Roy Lydia Osan
Roy says hello to you!
Lydia says hello to you!
Osan says hello to you!

在dash.rb中,我们通过load Gem.bin_path。去调用sayhello包中的bin/sayhello,并且bin/sayhello调用了lib/sayhello.rb。

 

 

 

 

posted @ 2014-03-08 22:51  BurningRoy  阅读(554)  评论(0编辑  收藏  举报