Ruby有着便捷强大的Gem包管理机制,作为五十年后人类使用最多的编程语言,有必要提前普及一下Ruby Gem的编写制作教程,帮助大家更好的使用Ruby,使用Gem,最好也能让Ruby的Gem库更加丰富,社区能够更加活跃。那么如何从零开始制作和发布自己的Gem呢?一起来动手操作一下。
制作和发布Ruby Gem包一共分如下几个步骤:
- 在RubyGems上注册帐号(如果你只想在本地或团队内部使用你的Gem,可以跳过这一步)
- 编写和打包Gem(gem build xxx.gemspec)
- 测试Gem(mang自mu信者可以跳过这一步)
- 发布Gem(gem push xxx)
1. 注册RubyGems帐号
RubyGems.ORG 是一个大型的Gems仓库,你可以现在就加入它,贡献你的Gem。这一步想必无需多说,注册完成之后,你就拥有了属于自己的RubyGems帐号,别人就可以看到你的主页和你发布的Gems。
注册完成之后,你还需要将你的crendentials保存到本地,方便后续直接在命令行使用gem命令。运行
1 | curl -u 你的用户名 https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials |
2. 编写和打包Gem
编写Gem
我们这次要发布的Gem叫做template_chorder,你也可以改名成任意你想要的名字。首先我们创建一个工程目录,我的目录名叫做GemTemplate,其中包含如下内容:
其中,template.gemspec是项目的描述文件,gem build命令会基于这个文件进行打包。
template.gemspec内容如下:
1 |
|
其中s.name就是将来这个包发布出去的名字。默认的,我们需要将工程的主代码放在lib目录里面,这是ruby的约定。我们的Gem只包含一个很简单的功能,只需要放置全部代码在一个文件当中即可。
lib/template.rb的代码如下:
1 | class Template |
就是这么简单。
打包Gem
在工程的根目录,运行
1 | gem build template.gemspec |
工程根目录将会产生一个 template_chorder-0.0.0.gem文件。
就是这么简单。
3. 测试Gem
对于刚刚生成的template_chorder-0.0.0.gem,运行
1 | gem install template_chorder-0.0.0.gem |
来安装它。
安装好以后,就可以在irb解释器中引入和运行它了。完整的过程如下:
疑问
这里其实是有点疑问的,就是为什么gem的名字叫做template_chorder,而在irb中引入的却是template。确实,如果gem包中的文件取名不严谨的话,可能会与其他包产生冲突。至于如何消除冲突,请君自己先思考下。
卸载Gem包,运行 gem uninstall template_chorder
2. 发布Gem
制作好这样一个不负责任的Gem包以后,就可以厚颜无耻地在RubyGems上发布它。但是为了社区的环境卫生清洁,尽量还是不要发布那些粗制滥造的包,就以此为戒吧。
发布Gem包,运行 gem push template_chorder-0.0.0.gem
,如果第1步当中的帐号注册和保存
crendentials文件都没有问题,那么包就可以发布出去了。
本文的包发布在:https://rubygems.org/gems/template_chorder
希望能够对你有所帮助。