rails console のように、ライブラリをロードした状態で irb をスタートするには?

投稿者: Anonymous

今 ruby を用いて開発しています。

やりたいこと

rails console のように、今現在開発しているライブラリを読み込みながら、 irb (というよりインタラクティブな repl) を起動したいと考えました。

もう少し詳細に説明すると:

  • lib/ 以下の特定のファイルを require しながら irb を起動したい。 (特定のファイル指定が難しいのならば、 lib/ 以下すべて require でも問題ない)

知っていること

  • irb 起動時に -I によって、LOAD_PATH に指定ディレクトリを追加しながら irb を起動できる。しかしこれだけでは、手動でほしいクラスがあるファイルを require する必要があり、これを毎回毎回行うのは手間だと考えている。

質問

ruby で irb のような、インタラクティブな実行環境を、今開発しているファイルたちを require した状態で立ち上げることはできますか?

解決

bundlerを使ってgemにしてしまうのがいいです。コマンドラインで

bundle gem gem_name

としてひな形を作り、その中にライブラリのコードを置いてください。依存するライブラリがある場合は、gem_name.gemspecに記載します。そうすると、

bundle console

で必要なgemを読み込んだ状態でirbが起動します。

アドホックな方法としては

require 'irb'
require 'hoge'
require 'fuga'

IRB.start

というスクリプトを実行する方法もあります。

.irbrcにrequireを書くという回答がついていますがこれはあまり良くないです。カレントディレクトリの.irbrcが読まれるのはホームディレクトリの.irbrcが無い場合です。この方法で解決する場合、今後ホームディレクトリに.irbrcを作れなくなりますので、IRBの設定を変えたくなった場合、あちこちにある.irbrcに個別に設定を書いていかなければなりません。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *