经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Ruby » 查看文章
RubyGems系列之创建自己的gem
来源:cnblogs  作者:zhanggui  时间:2018/9/30 11:02:00  对本文有异议

转载请注明来源:https://www.cnblogs.com/zhanggui/p/9720818.html

一. 前言

我们可以在rubygems.org中下载安装他人创建的gem。现在,我们尝试一下自己创建一个gem,然后发布,供他人使用。

二. 制作gem

这里开始创建一个zhola的gem,主要作用是输出Hello world。首先创建一个如下tree的文件夹:
tree
创建完成之后,在zhola.rb中填写如下代码:

  1. class Zhola
  2. def self.hi
  3. puts "Hello world!"
  4. end
  5. end

然后设置一下gemspec文件:

  1. Gem::Specification.new do |s|
  2. s.name = 'zhola'
  3. s.version = '0.0.1'
  4. s.date = '2018-09-28'
  5. s.summary = 'Zhanggui first gem'
  6. s.description = '第一次创建gem文件'
  7. s.authors = ["Zhanggui"]
  8. s.email = 'scottzg@126.com'
  9. s.files = ["lib/zhola.rb"]
  10. s.homepage = 'http://rubygems.org/gems/zhola'
  11. s.license = 'MIT'
  12. end

这里的homepage为即将发布到的page。
然后在当前文件夹下执行build命令:

  1. gem build zhola.gemspec

执行成功的结果为:

  1. Successfully built RubyGem
  2. Name: zhola
  3. Version: 0.0.1
  4. File: zhola-0.0.1.gem

执行成功之后,便会在文件夹中创建zhola-0.0.1.gem文件。此时gem制作成功。

三. 安装创建的gem

在刚刚创建的gem文件目录下执行命令:

  1. gem install ./zhola-0.0.1.gem

输出的结果为:

  1. Successfully installed zhola-0.0.1
  2. Parsing documentation for zhola-0.0.1
  3. Done installing documentation for zhola after 0 seconds
  4. 1 gem installed

通过上述命令将刚才创建的gem安装到本机。

四. 查看是否安装成功

打开终端,然后使用irb命令进行测试:

  1. zhola irb --simple-prompt --noecho
  2. >> require "zhola"
  3. >> Zhola.hi
  4. Hello world!
  5. >>

当终端输出Hello world!,说明已经可以正常使用刚才创建的gem。

五. 将gem发布到Rubygems.org

首先,需要注册一个账号,直接在https://rubygems.org/ 注册即可,然后打开终端,在终端输入:

  1. curl -u ***** https://rubygems.org/api/v1/api_key.yaml # ***** 为你的用户名

紧接着输入密码,回车之后便会得到一个api_key。
接着在gem文件夹中输入下面的指令:

  1. gem push zhola-0.0.1.gem # push后面为生成的gem名称

push成功之后终端显示:

  1. Pushing gem to https://rubygems.org...
  2. Successfully registered gem: zhola (0.0.1)

此时说明已经发布到rubygems成功,其他人直接使用:

  1. gem install zhola

即可使用刚才发布的gem。 该gem的homepage为:https://rubygems.org/gems/zhola 。

六. 总结

至此,我们就已经发布了一个gem到rubygems。如果觉得上面的这种方式比较麻烦,需要创建文件夹、创建gemspec等等,也可以直接使用bundle进行创建。这个后面有时间在介绍。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号