【RubyMine】デバッグ時、requireで怒られたときの対処法(小ネタ)
RubyMine小ネタです。
Byebugを無視した罰当たり
本日チェリー本でByebugを覚えました。
「覚えたからって関係ねえ、Byebugを使用せずに私はRubyMineでデバッグをやるんだ」とデバッグを試みたところ、デバッガが異常終了してしまいました。これは罰当たりか...?
Uncaught exception: cannot load such file -- ./lib/effects /Users/username/RubymineProjects/ruby-book/lib/word_synth.rb:1:in `require' /Users/username/RubymineProjects/ruby-book/lib/word_synth.rb:1:in `<top (required)>'
原因はデバッグの構成
コマンドラインから通常通り実行していた際は、以下のrequireで問題なく動いていました。
require './lib/effects'
これを以下のように書き換えてあげるとうまく実行できるようになります。つまりシェルからの実行時と、Rubymineのデバッガでは相対パスの基準点がずれているわけです。
require './effects'
ではカレントディレクトリがどこで決まっているかというと、画面右上のプルダウンをクリックすると展開されるので... その中のEdit Configrationsを押すと、各ファイルごとの設定をみることができます。
上図内赤枠の「Working Directory」が相対パスの基準点になるので、
- このパスを書き換える
もしくは
- 実行ファイルのrequireのパスを書き換える
ことで、デバッグ実行が正しくできるようになりました。
以上小ネタでした〜。