lib/volt/server/forking_server.rb in volt-0.9.1.pre2 vs lib/volt/server/forking_server.rb in volt-0.9.1.pre3

- old
+ new

@@ -140,30 +140,42 @@ puts "Stop Child Error: #{e.inspect}" end end end - def reload - Volt.logger.log_with_color('file changed, sending reload', :light_blue) + def reload(changed_files) + # only reload the server code if a non-view file was changed + server_code_changed = changed_files.any? {|path| File.extname(path) == '.rb' } + + msg = 'file changed, reloading' + if server_code_changed + msg << ' server and' + end + msg << ' client...' + + Volt.logger.log_with_color(msg, :light_blue) + begin SocketConnectionHandler.send_message_all(nil, 'reload') rescue => e Volt.logger.error("Reload dispatch error: ") Volt.logger.error(e) end - @child_lock.with_write_lock do - stop_child - start_child + if server_code_changed + @child_lock.with_write_lock do + stop_child + start_child + end end end def start_change_listener # Setup the listeners for file changes @listener = Listen.to("#{@server.app_path}/") do |modified, added, removed| Thread.new do # Run the reload in a new thread - reload + reload(modified + added + removed) end end @listener.start end \ No newline at end of file