Друзья, нужна помощь. Есть приложение (app.rb):
| Код | # encoding: utf-8
require 'sinatra' require 'sinatra/reloader' require 'data_mapper'
class App < Sinatra::Base
configure do enable :static, :logging, :inline_templates disable :sessions, :run, :dump_errors, :raise_errors, :reload end
configure :development do enable :dump_errors, :raise_errors, :reload
register Sinatra::Reloader Dir.glob('./{lib,model}/*.rb').each { |file| also_reload file } end
DataMapper.setup(:default, 'mysql://vrp2:vrp@localhost/vrp2')
Dir.glob('./{lib,model}/*.rb').each { |file| require file }
get '/' do erb :index end
end
|
Как видите, само приложение - всего 3 строки, остальное конфиги... Очень хочется (хоть меня и убеждают, что это не нужно), вынести эти конфиги в отдельный файл, чтобы не мозолил глаза. Создал файл bootstrap.rb со следующим содержанием:
| Код | # encoding: utf-8
require 'sinatra' require 'sinatra/reloader' require 'data_mapper'
class Sinatra::Base
configure do enable :static, :logging, :inline_templates disable :sessions, :run, :dump_errors, :raise_errors, :reload end
configure :development do enable :dump_errors, :raise_errors, :reload
register Sinatra::Reloader Dir.glob('./{lib,model}/*.rb').each { |file| also_reload file } end
DataMapper.setup(:default, 'mysql://vrp2:vrp@localhost/vrp2')
Dir.glob('./{lib,model}/*.rb').each { |file| require file }
end
|
Само приложение (app.rb) теперь выглядит так:
| Код | # encoding: utf-8
require './bootstrap.rb'
class App < Sinatra::Base
get '/' do erb :index end
end
|
Вроде все хорошо, кроме одного - при обновлении самого приложения (app.rb) не происходит перезапуск сервера, т.е. не срабатывает Sinatra::Reloader. Если же меняю файлы в директориях lib или model - срабатывает перезапуск thin. Добавление строки also_reload './app.rb' ничего не дает.
Подскажите plz, как реализовать задуманное правильно? Что сделать, чтобы thin перезапускался при изменении любого файла? |