query: tag:reload

もともとSinatraではRack::Reloaderが上手く機能しないのでshotgunを使おうという流れだったのですが、諸般の事情でshotgunを使えない状況になったため、本腰を入れてRack::Reloaderを使えるようにする方法を調べました。

結論として、以下のようにすれば使えました。

config.ru

ruby>>
configure :development do
class Sinatra::Reloader < Rack::Reloader
def safe_load(file, mtime, stderr = $stderr)
::Sinatra::Application.reset!
use_in_file_templates! file
stderr.puts "#{self.class}: reseting routes"
super
end
end
use Sinatra::Reloader
end
<<--

reset!を呼び出した後use_in_file_templates!を呼ぶ事で、in-fileテンプレートをもう一度読み込んでいます。

posted by genki genki on Mon 12 Oct 2009 at 02:26 with 0 comments