Sooey

2011-05-08 23:00:07 +0900

RubyGems.orgには登録しないプライベートなgemを作った場合、Railsプロジェクトからはどのように利用するか。

まず、Railsプロジェクトのvendor/gems以下にpkg/foo-1.0.0.gemを、展開する。

$ cd /path/to/some_rails_project
$ gem unpack /path/to/foo-1.0.0.gem --target vendor/gems
$ ls vendor/gems
foo-1.0.0

次にGemfileに以下のようなエントリを追加する(:pathが相対パスだった場合は、Gemfileのあるパスが起点となる)。

gem 'foo', :path => 'vendor/gems/foo-1.0.0'

この状態でbundleすれば、あとはbundler*.gemspecファイルを参照して上手いことやってくれる。

$ bundle

gemを展開したvendor/gems/foo-1.0.0ディレクトリ内に*.gemspecファイルが存在しない場合は、以下のようにバージョンを明示する必要があるみたい。

gem 'foo', '= 1.0.0', :path => 'vendor/gems/foo-1.0.0'

参考:ruby on rails - How do I vendorize gems for Rails3/Bundler - Stack Overflow