公開のmonorepoでbundler頼みでgemをインストールする

忘れちゃうのでメモ。

やりたいこと

  • コードを分離したい。アプリの中に直接埋もれさせるのではなく、ある程度の汎用性を持たせて切り出しておきたい
  • コードを分離するたびにリポジトリを増やしたくない
  • rubygems.orgにいちいち公開したくない
    • してもいいんだけど、単に仕事で使いたいだけ x 公開するアカウントの管理とか面倒

Gemfileでmonorepo内の特定のパス以下のgemをインストールする

以下の書き方を見つけた。

Bundler: How to install gems from git repositories

gem 'cf-copilot',
  git: 'https://github.com/cloudfoundry/copilot',
  glob: 'sdk/ruby/*.gemspec'

branch とか tag とかの指定の例はよく見るんだけど、欲しいのは一緒くたになったリポジトリの中の gem を特定する方法で、glob が使えることが確認できた。

git "https://github.com/rails/rails.git" do
  gem "activesupport"
  gem "actionpack"
end

これは使ったことないんだけど、上の機能がオートで適用されるならいいなと思う。

More