読者です 読者をやめる 読者になる 読者になる

Rubyでデフォルトでrequireさせる方法

QA@ITに投稿して回答をいただいたけどbundler使うケースで死んだので無理矢理対処。

  • やりたいこととしては、tappが便利すぎて死ぬけどrequire 'tapp'するのめんどい。
  • ruby -rtappすればいいけどbinとかどうすんの

QA@ITで上記の質問をしたら以下の回答が得られた
Ruby起動時にデフォルトでrequireさせるには

一旦これで解決したように見えたんだけど、bundler使っていてbundle execするとrequireしたいやつがbundler installされてないと死ぬ。

そこで無理矢理以下の方法で対処した。

  • requireさせたいものををlibディレクトリにコピー
  • RUBYOPTで-rを指定する

libディレクトリは以下で出てくる

ruby -rrbconfig -e 'p RbConfig.const_get(:CONFIG)["rubylibdir"]'

今回tappを使いたかったのでgem which tappで出てくる場所にあるlib以下を全部コピーした

で、.zshrcとかに以下を記述

export RUBYOPT="-rtapp"

ちょうきもいけどとりあえず解決。

こんな風にするとただでさえ消し忘れるtappがさらに消し忘れるけど、tappにはコマンドとしてのtappがあって、これを使うとtapp消し忘れがわかるからgitのpre-commitとかに仕掛ければいいよ。

git管理されてるリポジトリで実行する

tapp grep

tappちょうはかどる