gemがシステム内にあるにも関わらずbundle installが失敗する理由

前回の記事に関する指摘を@さんから頂いたので、こちらに書きます。

bundlerでインストール出来るのはrubygemsやGitHubに存在するgemだけで、それ以外の場所にあるgemは基本的に扱えません。
前回、bundle installの時にエラーが返っていたのはmecab-rubyというgemがrubygemsにもGitHubにも存在しないからです。

pathを指定しない場合のbundle installでは、まず最初にシステム内にgemがあるかを確認した後に、システム内にはないgemをrubygemsやGitHubからインストールします。
pathを指定しなかった時にbundlerのエラーが返ってこなかったのはそのせいです。

本来、Gemfileにはbundlerで扱える、rubygemsとGitHubに存在するgemのみ書くべきだそうです。
mecab-rubyのような未登録gemはbundlerを介さず、gemを利用したいファイルでrequireするそうです。
うーむ、知りませんでした......。