写在前面
在 iOS 开发过程中,不可避免会接触到 CocoaPods。CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器,帮你优雅的管理扩展项目。想到自己搭建私有 spec repo,来托管私有 pod 的 podspec。
Gem in a box
gem 开发管理过程中,自然也少不了自建私有托管平台的需求。
Google 查到有一个开源项目 Gem in a box,而且我们公司也是用的这个开源项目搭建的托管 gem 平台,当然需要研究学习一番。
首先必须去逛逛 GitHub,找到开源源码,然后找文档、教程,实操一下。
实操记录,托管平台自然要分为 server 和 client 两端。
SERVER 文档
安装 geminabox
gem install geminabox
Home 目录下创建 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 的学习分享
参考
Rack Explained For Ruby Developers
writing-a-small-web-service-with-ruby-rack-and-functional-programming