Ecogem
- プライベートな gem のインストールを楽にする gem
何で作ったか
- gem のソースを GitHub に置いて、Bundler でインストールする
- Bundler ではネストされた Git ソースを解決できない
- インストールしたい gem が依存する gem も GitHub に置きたいけどダメ
- 自前で Rubygems のサーバー立てるか、Gemfury でホスト?
- 認証がイケてない (SSH でやりたい)
- Rubygems が Git ソースに対応するか、Bundler が深い依存関係も解決してくれるまで気長に待つ?
- 自分でツール作ろう (なんかもう似たようなのありそうだけど)
こういう感じのもの
Gemfile を Ecogemfile にリネームして、ecogem install
を実行しま~す。
アプリケーションの Ecogemfile:
source 'https://rubygems.org'
gem 'gem-a', git: 'git@github.com:me/gem-a.git'
gem 'rake'
gem-a の Ecogemfile:
source 'https://rubygems.org'
gem 'gem-b', git: 'git@github.com:me/gem-b.git'
gemspec
gem-b の Ecogemfile:
source 'https://rubygems.org'
gemspec
すると、Ecogem が git を fetch してきて、ローカルの git ソースを参照する Gemfile を生成してくれる。ついでに bundle install
もしてくれる。
生成された Gemfile:
require "ecogem"
source "https://rubygems.org/"
gem "gem-b", path: Ecogem.git_path("git@github.com:me/gem-b.git master")
gem "gem-a", path: Ecogem.git_path("git@github.com:me/gem-a.git master")
gem "rake"
これで少し楽になった~。