38549


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

### やりたいこと

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

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

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

### 知っていること

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

### 質問

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


CC BY-SA 3.0
2017-10-02T02:58:45.040
38355
2017-10-09T13:41:37.010
754
question
ruby irb
rails console のように、ライブラリをロードした状態で irb をスタートするには？


irbなら、カレントディレクトリに.irbrcを用意することで、起動時に自動的にロードして実行されるので、ここに必要なrequireなどを書いておくのはどうでしょう？

詳しくは、  
<https://docs.ruby-lang.org/ja/2.4.0/library/irb.html>  
の「irb のカスタマイズ」などを参照してください。


CC BY-SA 3.0
2017-10-08T13:16:31.923
38534
2017-10-08T13:16:31.923
7900
38355
answer


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

[code]

    bundle gem gem_name
    
[/code]

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

[code]

    bundle console
    
[/code]

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

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

[code]

    require 'irb'
    require 'hoge'
    require 'fuga'
    
    IRB.start
    
[/code]

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

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


CC BY-SA 3.0
2017-10-09T13:41:37.010
38549
2017-10-09T13:41:37.010
5793
38355
answer