在 iOS 开发过程中,不可避免会接触到 CocoaPods。CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器,帮你优雅的管理扩展项目。想到自己搭建私有 spec repo,来托管私有 pod 的 podspec。
gem 开发管理过程中,自然也少不了自建私有托管平台的需求。
Google 查到有一个开源项目 Gem in a box [1],而且我们公司也是用的这个开源项目搭建的托管 gem 平台,当然需要研究学习一番。
首先必须去逛逛 GitHub,找到开源源码[2],然后找文档、教程,实操一下。
实操记录,托管平台自然要分为 server 和 client 两端。
SERVER 文档

安装 geminabox
gem install geminaboxHome 目录下创建 config.ru 文件

最后,使用 passenger,thin,unicorn 等等,随你便。
gem install rack
gem install thin
rackup config.ru
浏览器打开 http://127.0.0.1:9292/

CLIENT 文档

Gem,写一个吧,将自己写的 gem 上传上去。
gem install geminabox
gem inabox gleksayhi-0.0.1.gem # 需要输入 host,http://127.0.0.1:9292可以参考 gem inabox 文档
gem inabox --help
上传指定 gem 到指定 host
gem inabox gleksayhi-0.0.1.gem -g http://127.0.0.1:9292
最终,再看一下浏览器展示

另外,也可以使用页面中 Upload Another Gem 进行可视化上传 gem。
最后挖两个坑
gem 托管上传鉴权问题
rack、passenger、thin、unicorn 的学习分享
参考资料
[1]http://tomlea.co.uk/posts/gem-in-a-box/
[2]https://github.com/geminabox/geminabox
[3]https://github.com/rack/rack
[4]https://www.rubyguides.com/2018/09/rack-middleware/
[5]https://thoughtbot.com/upcase/videos/rack
[6]https://levelup.gitconnected.com/writing-a-small-web-service-with-ruby-rack-and-functional-programming-a16f802a19c0
关注我的小小公众号