Guest User

Untitled

a guest
Feb 20th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. # ==== Parameters
  2. # file<String>:: The file to reload.
  3. def reload(file)
  4. remove_classes_in_file(file) { |f| load_file(f) }
  5. end
  6.  
  7. # Reload the router to regenerate all routes.
  8. def reload_router!
  9. if File.file?(router_file = Merb.dir_for(:router) / Merb.glob_for(:router))
  10. Merb::Router.reset!
  11. reload router_file
  12. end
  13. end
  14.  
  15. # ==== Parameters
  16. # file<String>:: The file to remove classes for.
  17. # &block:: A block to call with the file that has been removed.
  18. def remove_classes_in_file(file, &block)
  19. Merb.klass_hashes.each {|x| x.protect_keys!}
  20. if klasses = LOADED_CLASSES.delete(file)
  21. klasses.each { |klass| remove_constant(klass) unless klass.to_s =~ /Router/ }
  22. end
  23. yield file if block_given?
  24. Merb.klass_hashes.each {|x| x.unprotect_keys!}
  25. end
Add Comment
Please, Sign In to add comment