发布一个自己的 gem

来源:互联网 发布:淘宝压缩羽绒服 编辑:程序博客网 时间:2024/06/04 18:12

上篇文章提到了 rvm 那是 ruby 的版本管理工具。ruby 的包管理工具使用最多的是 gem,因为工作中用到了 gem 所以把 gem 的发布流程总结下。

1、注册账号

这里写图片描述
注册地址:https://rubygems.org/sign_in
注册之后才能在后面提交 gem。账号注册完后会受到一份邮件,激活下就可以了。

2、创建 gem 工程

2.1、所谓创建 gem 工程只是把gem需要的文件组织下就可以了。可以按照官网自己创建,也可以用 bundler 创建。这里为了方便就用 bundler 直接创建了。

这里写图片描述
bundler gem mygem

bundler会创建pkg,setup等文件,这里根据自己的需要进行了改造和移动。
- bin 是二进制执行文件的位置,这里是把 rb 后缀移除的ruby文件
- lib 是源代码的位置。
- test 测试文件地址
- slt_xcodeproj_helper.gemspec 是 gem 个配置文件有人也叫它说明书。

2.2、编写 spec 文件

spec 文件是 gem 的核心配置文件,他描述了版本号,文件位置,可执行文件等。这是我编写的一个示例文件。
这里写图片描述

spec 实际是一个 ruby 文件,因此可以使用 ruby 的语法。

# coding: utf-8lib = File.expand_path('../lib', __FILE__)$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)require 'slt_xcodeproj_helper/version' 

第一行表示编码方式,防止乱码
第二行和第三行加载 lib 中的 ruby 源文件。
第四行是引入版本的 ruby 文件,通过这个获取版本号。

spec.name          = "slt_xcodeproj_helper"spec.version       = SltXcodeprojHelper::VERSIONspec.authors       = ["LiuShulong"]spec.email         = ["bigfish_liu@126.com"]

这几行是gem作者版本号登记本信息,根据实际情况填写就可以了。name是gem的名字,对外发布的名字,观察了多个gem的命名方式,都是小写加_或者-。version 是版本号,发布后在改版如果没有意外都要改版本号,撤销需要使用 gem yank 命令。authors 是个数组可以填写多个。email 一般填写联系邮箱。

spec.summary       = %q{sltset xcode settings}spec.description   = %q{a commandline to sltset xcode project settings}spec.homepage      = "https://github.com/LiuShulong/slt_xcodeproj_helper.git"spec.license       = "MIT"

summary 和 description 填写项目的描述。homepage 我这直接用的项目地址。license 根据自己的情况填写。

 spec.files         = `git ls-files -z`.split("\x0").reject do |f|    f.match(%r{^(test|spec|features)/})  endspec.bindir        = "bin"spec.executables   = "sltset"spec.require_paths = ["lib"]

files 表示 gem 包含的文件列表。除了默认的这种还有很多写法。本质是用 ruby 表示的文件列表。bindir 二进制文件夹名称。executables 二进制文件夹下可执行文件名称。这个必须是 ruby 文件。require_paths 表示启动的时候会把这个path加到 load_path 里。

 spec.add_development_dependency "bundler", "~> 1.14" spec.add_development_dependency "rake", "~> 10.0" spec.add_development_dependency "minitest", "~> 5.0" spec.add_development_dependency "xcodeproj",'~> 0'

项目的依赖。如果缺少这些依赖会报错。建议带上版本号。

3、编译 gem

gem build slt_xcodeproj_helper.gemspec
build 后面跟的是 gem 的名称。这时候会根据版本号生成一个压缩文件slt_xcodeproj_helper-0.1.0.gem。这个gem就是后面要发布的压缩文件。

4、提交gem

为了避免奇怪的问题,可以先把自己的gem提交到github上,然后执行下面的命令。
gem push slt_xcodeproj_helper-0.1.0.gem
如果是第一次会提示输入邮箱和密码,按照1注册的输入就可以了。

5、测试

gem install slt_xcodeproj_helper
查看是否与预期一致。
这里写图片描述

这里写图片描述

6、资料

如果创建自己的 gem

demo地址

0 0
原创粉丝点击