| Module | ModuleExtensions::AutoloadTree |
| In: |
lib/module_extensions/autoload_tree.rb
|
| Copyright: | Copyright (c) 2004 Nicolas Despres. All rights reserved. |
| Author: | Nicolas Despres <polrop@lrde.epita.fr>. |
| License: | Gnu General Public License. |
| Revision: | $Id: /w/fey/ruby_ex/trunk/lib/module_extensions/autoload_tree.rb 53902 2007-01-13T11:33:32.044352Z ertai $ |
# File lib/module_extensions/autoload_tree.rb, line 9 def autoload_tree(dir, recursive=true, &block) pdir = Pathname.new(dir) pdir.each_entry do |p| next if p.to_s =~ /^\./ pfull = pdir + p if pfull.directory? and recursive name = p.to_s.capitalize! const_set(name, Module.new) unless const_defined?(name) const_get(name).autoload_tree(pfull, recursive, &block) elsif pfull.file? and p.to_s =~ /\.rb$/ autoload(name.to_sym, pfull.to_s) if name = block[p] end end end