Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ==== Parameters
- # file<String>:: The file to reload.
- def reload(file)
- remove_classes_in_file(file) { |f| load_file(f) }
- end
- # Reload the router to regenerate all routes.
- def reload_router!
- if File.file?(router_file = Merb.dir_for(:router) / Merb.glob_for(:router))
- Merb::Router.reset!
- reload router_file
- end
- end
- # ==== Parameters
- # file<String>:: The file to remove classes for.
- # &block:: A block to call with the file that has been removed.
- def remove_classes_in_file(file, &block)
- Merb.klass_hashes.each {|x| x.protect_keys!}
- if klasses = LOADED_CLASSES.delete(file)
- klasses.each { |klass| remove_constant(klass) unless klass.to_s =~ /Router/ }
- end
- yield file if block_given?
- Merb.klass_hashes.each {|x| x.unprotect_keys!}
- end
Add Comment
Please, Sign In to add comment