def load_file(file, reload = false)
Merb.logger.verbose! "#{reload ? "re" : ""}loading #{file}"
if !Merb::Config[:fork_for_class_load]
if FILES_LOADED[file]
FILES_LOADED[file].each {|lf| $LOADED_FEATURES.delete(lf)}
end
klasses = ObjectSpace.classes.dup
files_loaded = $LOADED_FEATURES.dup
end
if reload
$LOADED_FEATURES.delete(file) if reload
end
begin
require file
rescue SyntaxError => e
Merb.logger.error "Cannot load #{file} because of syntax error: #{e.message}"
ensure
if Merb::Config[:reload_classes]
MTIMES[file] = File.mtime(file)
end
end
unless Merb::Config[:fork_for_class_load]
LOADED_CLASSES[file] = ObjectSpace.classes - klasses
FILES_LOADED[file] = $LOADED_FEATURES - files_loaded
end
nil
end