自分で書いて .irbrc に入れることができます:
新しい辛さ
module Kernel
def reload(lib)
if old = $LOADED_FEATURES.find{|path| path=~/#{Regexp.escape lib}(\.rb)?\z/ }
load old
else
require lib
end
end
end
数分経過したため、破棄されました
module Kernel
# Untested
def reload(lib)
if File.exist?(lib)
load lib
else
lib = "#{lib}.rb" unless File.extname(lib)=='.rb'
$:.each do |dir|
path = File.join(dir,lib)
return load(path) if File.exist?(path)
end
end
end
end
RubyGems をサポートしたい場合は、古いバージョンをより堅牢にする必要があります。
これらのソリューションのいずれかの問題の 1 つは、問題のファイルを強制的にリロードしますが、そのファイルが他のファイルを呼び出すrequire
場合 (通常は gem の場合)、それらのファイルがリロードされないことです。
これを回避するのは本当に醜いでしょう。同様に、おそらく手動で$LOADED_FEATURES
配列に到達し、gem の名前に関連していると思われるすべてのパスを取り除きます。身震い