Ruby - IRB または PRY での変更を含むファイルをリロードするにはどうすればよいですか?
概要
irbでファイルをリロードしたい。ファイル prime.rb には次のコードが含まれています。
def is_prime? num
(2..num-1).each do |div_by|
if num % div_by == 0
return false
end
end
true
end
require_relative を使用してファイルを要求できます。
irb(main):001> require_relative 'prime'
=> true
irb(main):002> is_prime? 10
=> false
irb(main):003> is_prime? 11
=> true
prime.rb に変更を加えた場合、ファイルをリロードするにはどうすればよいですか?私が試してみました:
irb(main):004> require_relative 'prime'
=> false
同じ動作が pry でも発生します。
解決策
rb ファイルへの相対パスを指定して Kernel#load を試してください。
irb> load './path/to/prime.rb'
Kernel#require はソース ファイルを 1 回だけロードしますが、Kernel#load は呼び出すたびにソース ファイルをロードします。
参照 https://stackoverflow.com/a/4633535/4950680