Ruby - 建立本身的GEM

Log 1 建立本身的gemvim

背景:好奇gem包的用法,首先搞清楚什么是gem包。那咱们就先来建立一个本身的gem包。ruby

时间:2014-3-8测试

环境:Ubuntu + Ruby 1.9.3ui

记录:Royspa


 

 

建立目录结构code

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

建立vim lib/sayhello.rbblog

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

建立vim bin/sayhelloip

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.specci

 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目录结构io

$ 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。

相关文章
相关标签/搜索