创建gem包
来源:互联网 发布:如何自学数控编程3个月 编辑:程序博客网 时间:2024/05/20 04:30
接触ruby算下来也快两年了,一直都是写些业务代码,遇到技术难题在网上搜索答案,或者找一个相关的gem包,一般情况下都是使用别个大牛的gem包,自己从来没有打包过,最近有个需求,需要创建一个gem包,供一些公司的内部项目使用。
怎么创建一个gem包呢,google一下,gem的官方文档上居然有相关介绍,好吧,跟着这个学习一下这个过程。
简单gem包创建
在这个gem包里我们实现字符串转大小写的功能。
创建以下文件夹以及文件
注意:lib目录下必须有个和你gem名字一样的rb文件。
tree ..├── lib│ └── string_util.rb└── string_util.gemspec
编写两个文件的内容
string_util.rb
class StringUtil def self.up_case(str) str.upcase endendstring_util.gemspec
Gem::Specification.new do |s| s.name = 'string_util' s.version = '0.0.0' s.date = '2016-05-25' s.summary = "string_util!" s.description = "process string to upcase" s.authors = ["chenyafei"] s.email = 'chenyafei@163.com' s.files = ["lib/string_util.rb"] s.homepage = 'http://rubygems.org/gems/hola'end
编译并生成gem包
gem build string_util.gemspec WARNING: licenses is empty, but is recommended. Use a license abbreviation from:http://opensource.org/licenses/alphabeticalWARNING: See http://guides.rubygems.org/specification-reference/ for help Successfully built RubyGem Name: string_util Version: 0.0.0 File: string_util-0.0.0.gem忽略警告。
安装gem包
[chenyafei@develop string_util]$ gem install string_util-0.0.0.gem Successfully installed string_util-0.0.0Parsing documentation for string_util-0.0.0Installing ri documentation for string_util-0.0.0Done installing documentation for string_util after 0 secondsWARNING: Unable to pull data from 'http://ruby.taobao.org': bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)1 gem installed忽略警告。
测试gem包
1.9.3-p551 :001 > require('string_util') => true 1.9.3-p551 :002 > StringUtil => StringUtil 1.9.3-p551 :003 > StringUtil.up_case('abcd') => "ABCD"
哈哈,很简单吧,到这我们就完成了一个很简单的gem的制作,不过要注意的是在ruby 1.9.2之前到版本里面,需要先require 'rubygem',才能使用我们写的gem。
不过这个gem包太简单了,只有一个文件,怎么制作复杂的gem包呢,如果这个gem包里有多个文件,怎么做呢,我们再举个例子。
复杂gem包创建
在这个例子用我们实现一个区分参数类型的转大写的功能。
目录结构
$ tree.├── lib│ ├── string_util.rb│ └── util│ └── process.rb└── string_util.gemspec
这次目录里多个文件夹util和文件process.rb
代码
string_util.gemspec
Gem::Specification.new do |s| s.name = 'string_util' s.version = '0.0.1' s.date = '2016-05-25' s.summary = "string_util!" s.description = "process string to upcase" s.authors = ["chenyafei"] s.email = 'chenyafei@163.com' s.files = ["lib/string_util.rb", "lib/util/process.rb"] s.homepage = 'http://rubygems.org/gems/hola'end
lib/string_util.rb
require "util/process"class StringUtil def self.up_case(str) o = Util::Process.new(str) o.to_case endend
lib/util/process.rb
module Util class Process def initialize(str) @str = str end def to_case if(@str.is_a?(Class)) return 'error str is a Class!!!!' elsif(@str.is_a?(Fixnum)) return 'error str is a Number!!!!' elsif(@str.is_a?(String)) return @str.upcase else return 'error other Object!!!!' end end endend
编译并生成gem包
gem build string_util.gemspec WARNING: licenses is empty, but is recommended. Use a license abbreviation from:http://opensource.org/licenses/alphabeticalWARNING: See http://guides.rubygems.org/specification-reference/ for help Successfully built RubyGem Name: string_util Version: 0.0.1 File: string_util-0.0.1.gem
安装gem包
gem install string_util-0.0.1.gem Successfully installed string_util-0.0.1Parsing documentation for string_util-0.0.1Done installing documentation for string_util after 0 secondsWARNING: Unable to pull data from 'http://ruby.taobao.org': bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)1 gem installed
测试代码
1.9.3-p551 :001 > require('string_util') => true 1.9.3-p551 :002 > StringUtil.up_case(12) => "error str is a Number!!!!" 1.9.3-p551 :003 > StringUtil.up_case(String) => "error str is a Class!!!!" 1.9.3-p551 :004 > StringUtil.up_case('abds') => "ABDS"
0 0
- 创建gem包
- 如何创建自己的ruby gem包
- ruby创建自己的gem包
- 常用gem包
- gem包管理器讲解
- 创建自己的gem
- Ruby gem包的管理
- 制作自己的gem包
- ruby的omniauth gem包
- Ruby--gem包管理命令
- gem
- 创建你的第一个Gem
- 创建你的第一个gem
- ruby创建你的第一个Gem
- 使用ruby的gem安装gem包的SSL证书错误
- gem安装ruby包无法建立本地环境(failed to build gem native extension)
- 用来跟踪保存数据库更改的gem包paper_trail
- window7下安装ruby gem包之Mysql2实践
- 安装QT 5.6 与 VS 2015
- Mark and show mark tools
- yum安装软件时报错
- iOS开发中ARC与非ARC的混合编程
- java通过字符串调用方法,java反射应用实例
- 创建gem包
- 二分查找算法
- Gvim配置
- Tomcat运行报错:严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
- 递归下降分析程序构造方法
- ubuntu安装Eclipse和创建快捷方式
- 面试题001
- XCode真机调试APP时报dyld: Library not loaded: @rpath/XXX等错误
- oracle insert all 用法