Ruby: Require a file again if it is changed
You can use load
instead of require
. This will load the file regardless of whether it was already loaded before. Note that with load
you need to specify the .rb
extension which is optional with require
. So require "path/to/myconfig"
becomes load "path/to/myconfig.rb"
.
Note that this will not undefine anything defined by the previous config. So if the config is changed from $verbose = true; $debug = true
to $verbose = false
then $verbose
will be false
but $debug
will still be true
after reloading the config.
Of course you'll need to put the load
statement somewhere where it will be executed every time the config file should be reloaded (i.e. inside some method or hook).