LoginSignup
4
4

More than 5 years have passed since last update.

プライベートな gem のインストーラ作りました~

Last updated at Posted at 2015-01-13

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"

これで少し楽になった~。

リンク

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4