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
#!/usr/bin/ruby def sayhello(name)
puts "#{name} says hello to you!"
end
创建vim bin/sayhello
#!/usr/bin/ruby
require 'sayhello'
param_num = 0
while param_num < ARGV.length
sayhello(ARGV[param_num])
param_num += 1
end
创建vim sayhello.spec
SPEC=Gem::Specification.new do |s|
s.name = 'sayhello'
s.version = '0.1.0'
s.files = 'lib/sayhello.rb'
s.executable = 'sayhello'
s.summary = 'This is an example!'
s.description = 'A sample to say hello.'
s.email = 'burningroy2011@gmail.com'
s.homepage = "<link>"
s.authors = ['Roy']
end
sayhello目录结构
$ tree .
.
|
|-----bin
| |---sayhello
|-----lib
| |---sayhello.rb
|-----sayhello.spec
执行build
$ gem build sayhello.spec
安装sayhello包
$ gem install sayhello-0.1..gem
Successfully installed sayhello-0.1.
gem installed
Installing ri documentation for sayhello-0.1....
Installing RDoc documentation for sayhello-0.1....
已经安装的gem位置
$ cd /var/lib/gems/1.9./gems
$ tree .
.----sayhello-0.1.
|
|-----bin
| |---sayhello
|-----lib
|---sayhello.rb
使用包进行测试
创建vim ~/dash.rb
#!/usr/bin/ruby require 'rubygems'
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。
Ruby - 创建自己的GEM的更多相关文章
- Ruby创建命令
Ruby创建命令
- ruby 编译安装,gem国内源ruby.taobao.org
centos6.6final 一.安装依赖包(使用默认CENTOS更新源): # yum install openssl* openssl-devel zlib-devel gcc gcc-c++ m ...
- ruby创建某些“关键字”方法别名的语法
begin和end是ruby的关键字,但是Range中也有名称为begin和end的实例方法.现在问题来了:怎么创建它们的别名方法? 如果用class Range;alias begin_x begi ...
- RubyGems系列之创建自己的gem
转载请注明来源:https://www.cnblogs.com/zhanggui/p/9720818.html 一. 前言 我们可以在rubygems.org中下载安装他人创建的gem.现在,我们尝试 ...
- 【Ruby】【改gem源镜像】【Win10 + Jruby-9.1.2.0 + Rails 5.1.3 + gem 2.6.4 】
参考地址:https://ruby-china.org/topics/33843 (1)> gem sources --add http://gems.ruby-china.org 遇到问题: ...
- (转)Ruby On Rails 推荐 Gem 列表
作者:尘缘,QQ:130775,来源:http://www.4wei.cn/archives/1002157 PHP的包管理Composer还在刚刚兴起的阶段,Ruby社区已经有很多成熟的Gem了,R ...
- ruby 制作自己的gem包
在ruby工程目录下新建一个文件:crowdSystem.gemspec.需要在lib目录下存在同一名称的ruby库文件:crowdSystem.rb
- warning insecure world writable dir ruby mode 040777,gem insstal sass error failed to build gem native extension
//1.删除原gem源 gem sources --remove https://rubygems.org/ //2.添加国内镜像 gem source -a https://gems.ruby-ch ...
- 关于解决ruby源码安装 gem install报错问题
因做redis集群需要安装ruby,源码安装过后gem install redis安装redis接口报错 解决方案: 确保主机安装zlib,没有安装执行 yum -y install zlib zli ...
随机推荐
- CodeForces - 462B Appleman and Card Game
是一道简单题 将字母从个数多到小排序 然后 再按题目算法得到最多 但是注意 数据类型声明 money要为long long #include <iostream> #include < ...
- [APIO2012] 派遣 dispatching
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4580 Solved: 2348 Description 在一个忍者的帮派里,一些忍者们被选中派遣给 ...
- input文本框的value属性在页面中不随输入的数据而变化
今天,在做试验遇到这么一个需求: 一个input文本框,输入值后将标签传到后台,在后台解析标签,发现value仍然是初值,不是我们改变后的值. 例如: <input name="&qu ...
- 毕业bg--hdu1881(01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1881 01 背包 先按发起人离开的时间从小到大排序 然后再套01背包的模板 #include <iost ...
- codeforces 873E(枚举+rmq)
题意 有n(n<=3000)个人参与acm比赛,每个人都有一个解题数,现在要决定拿金牌的人数cnt1,拿银牌的人数cnt2,拿铜牌的人数cnt3,各自对应一个解题数区间[d1,c1],[d2,c ...
- send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
转载:http://blog.csdn.net/csdnones/article/details/50717934 发送邮件: [root@iZ23whn33jnZ log]# echo '这是邮件标 ...
- Duplicate property mapping of contactPhone found in
启动的时候报Duplicate property mapping of contactPhone found in com....的错误,是因为在建立实体对象的时候,有字段重复了,有的是继承了父类的字 ...
- Android 项目导入常见错误
1.SDK版本号不正确应,你能够打开你项目中的project.properties文件,改动target=android-18(我这是18) ,将18改 为14(其它都能够),再改回18会又一次载入. ...
- oracle 正则查询json返回报文中某个字段的值
接口返回报文为json 格式,如下: {"body":{"businessinfo":{"c1rate":"25.00" ...
- Android签名机制之---签名验证过程具体解释
一.前言 今天是元旦,也是Single Dog的嚎叫之日,仅仅能写博客来祛除寂寞了,今天我们继续来看一下Android中的签名机制的姊妹篇:Android中是怎样验证一个Apk的签名. 在前一篇文章中 ...