1. ホーム
  2. ruby

[解決済み] Ruby 1.9.2 で LOAD_PATH から "." が削除された理由と、その代替案は?

2022-04-27 17:46:14

質問

Ruby 1.9.2への最新のチェンジセットでは、カレントディレクトリが . の一部となります。 LOAD_PATH . と仮定しているRakefileが少なからずあります。 . の一部です。 LOAD_PATH プロジェクトパスに基づいているすべての require ステートメントに対して "no such file to load" と報告されました。このようなことをする特別な正当性がありましたか?

修正方法としては $: << "." しかし、信じられないほど手間がかかりそうで、そんなことはしたくありません。Rakefiles 1.9.2+と互換性を持たせるためには、どのような方法が望ましいでしょうか?

どのように解決するのですか?

セキュリティリスクと判断された。

絶対パスを使用することで回避することができます。

File.expand_path(__FILE__) et al

または

require './filename' (ironically).

を使用するか、または

require_relative 'filename'

またはquot;include"ディレクトリの追加

ruby -I . ...

または、irbを使用して同じ。

$irb -I .