1. ymmtmdk

    Posted

    ymmtmdk
Changes in title
+いちいちbundle execしたくない 決定版
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,41 @@
+
+# はじめに
+Gemfileを使ってgemを管理してるプロジェクトで、日常的にbundle exec 何々ってやってて、alias be='bundle exec'とかしてるけど、beすら打つのが面倒、って状況よくありますよね。
+
+# 結論から
+RubyGems >= 2.2.0であれば環境変数で```RUBYGEMS_GEMDEPS=-```とすればbundle execを省略してもGemfile(もしくはgem.deps.rb)を読んでくれる。
+
+# 以下蛇足
+
+rvm環境を作り直してて、bundle exec省く設定どうするんだっけとググると、
+.rvm/hooks/after_cd_bundlerとbundle install --binstubsを組み合わせる方法が出てくる。
+ところがこれやってると、bundlerからhttps://github.com/mpapis/rubygems-bundler 使えって言われた。
+
+早速見に行くと一番上に、
+> Generally, this gem is not needed on RubyGems >= 2.2.0. Simply set the RUBYGEMS_GEMDEPS environment variable to either the path of your Gemfile or - to auto-discover in parent directories.
+
+てあった。
+
+RUBYGEMS_GEMDEPSをググる。
+
+> RubyGems can check for gem dependencies files (gem.deps.rb or Gemfile) when rubygems executables are started and uses the found dependencies. This means rake will work similar to bundle exec rake. To enable this set the RUBYGEMS_GEMDEPS environment variable to the location of your dependencies file.
+
+http://blog.rubygems.org/2013/12/26/2.2.0-released.html
+
+> If you set it to be RUBYGEMS_GEMDEPS=- (minus sign), it will look for a gemfile in the current directory (and deeper directories too, I think).
+
+http://www.reddit.com/r/ruby/comments/1trfxf/rubygems_220_released/
+
+ということで2013/12/26あたりに導入された機能らしい。日本語情報はびっくりするほどなかった。
+
+早速試してみる。
+
+```
+gem -v
+echo "puts 'hello gemfile.'" > Gemfile
+ruby -e '' # なんもでない
+RUBYGEMS_GEMDEPS=- ruby -e '' # hello gemfile.てでるから読まれてる
+```
+
+ということで、どうやら読まれているらしいという結論に至る。RubyGemsの機能なのでrvmとかrbenvに依存しない、と思う。
+s