RubyGems系列之创建自己的gem
转载请注明来源:
一. 前言
我们可以在rubygems.org中下载安装他人创建的gem。现在,我们尝试一下自己创建一个gem,然后发布,供他人使用。
二. 制作gem
这里开始创建一个zhola的gem,主要作用是输出hello world。首先创建一个如下tree的文件夹:
创建完成之后,在zhola.rb中填写如下代码:
class zhola def self.hi puts "hello world!" end end
然后设置一下gemspec文件:
gem::specification.new do |s| s.name = 'zhola' s.version = '0.0.1' s.date = '2018-09-28' s.summary = 'zhanggui first gem' s.description = '第一次创建gem文件' s.authors = ["zhanggui"] s.email = 'scottzg@126.com' s.files = ["lib/zhola.rb"] s.homepage = 'http://rubygems.org/gems/zhola' s.license = 'mit' end
这里的homepage为即将发布到的page。
然后在当前文件夹下执行build命令:
gem build zhola.gemspec
执行成功的结果为:
successfully built rubygem name: zhola version: 0.0.1 file: zhola-0.0.1.gem
执行成功之后,便会在文件夹中创建zhola-0.0.1.gem文件。此时gem制作成功。
三. 安装创建的gem
在刚刚创建的gem文件目录下执行命令:
gem install ./zhola-0.0.1.gem
输出的结果为:
successfully installed zhola-0.0.1 parsing documentation for zhola-0.0.1 done installing documentation for zhola after 0 seconds 1 gem installed
通过上述命令将刚才创建的gem安装到本机。
四. 查看是否安装成功
打开终端,然后使用irb命令进行测试:
zhola irb --simple-prompt --noecho >> require "zhola" >> zhola.hi hello world! >>
当终端输出hello world!,说明已经可以正常使用刚才创建的gem。
五. 将gem发布到rubygems.org
首先,需要注册一个账号,直接在https://rubygems.org/ 注册即可,然后打开终端,在终端输入:
curl -u ***** https://rubygems.org/api/v1/api_key.yaml # ***** 为你的用户名
紧接着输入密码,回车之后便会得到一个api_key。
接着在gem文件夹中输入下面的指令:
gem push zhola-0.0.1.gem # push后面为生成的gem名称
push成功之后终端显示:
pushing gem to https://rubygems.org... successfully registered gem: zhola (0.0.1)
此时说明已经发布到rubygems成功,其他人直接使用:
gem install zhola
即可使用刚才发布的gem。 该gem的homepage为:https://rubygems.org/gems/zhola 。
六. 总结
至此,我们就已经发布了一个gem到rubygems。如果觉得上面的这种方式比较麻烦,需要创建文件夹、创建gemspec等等,也可以直接使用bundle进行创建。这个后面有时间在介绍。
上一篇: 微信小程序 页面跳转传参的介绍
下一篇: webpack2+React使用详解
推荐阅读
-
AndroidStudio小技巧之创建自己的buildType
-
JS组件系列之MVVM组件构建自己的Vue组件
-
荐 JavaScript之闭包,给自己的Js一场重生(系列七)
-
死磕 java线程系列之创建线程的8种方式
-
大数据调错系列之:自己总结的myeclipse连接hadoop会出现的问题
-
python面试题之如何在Python中创建自己的包
-
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
-
RubyGems系列之创建自己的gem
-
最佳实践系列(二)-- 聊聊 PHP 私有组件以及如何创建自己的 PHP 组件
-
Equinox OSGi系列之四 创建自己的OSGi应用项目