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。

 

 

 

 

转载于:https://www.cnblogs.com/burningroy/p/3588767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值