> -----Original Message-----
> From: Robert Klemme [mailto:bob.news / gmx.net] 
> Sent: Tuesday, November 22, 2005 9:57 AM
> To: ruby-talk ML
> Subject: Re: There must be a better way -- requiring multiple files
> 
> 
> Stefan Lang wrote:
> > On Tuesday 22 November 2005 16:37, Robert Klemme wrote:
> > [...]
> >> Dir[File.join(__FILE__, "..", "..", "lib", "**", 
> "*.rb")].each {|l| 
> >> require l}
> > [..]
> >
> > A side note:
> >
> > I have come to the conclusion that the following syntax makes more 
> > sense for Dir[]/Dir.glob:
> >
> >   Dir["#{__FILE__}/../../lib/**/*.rb"]
> >
> > (In other words, File.join doesn't make sense here.)
> >
> > Why?
> >
> > 1) In my opinion, it is more readable
> 
> Yeah, probably.
> 
> > 2) After reading dir.c in Ruby's sources, I would say
> >    that it is at least as portable as the File.join variant.
> >    Others more familiar with the Ruby source already said
> >    that Ruby uses slashes internally on all platforms.
> 
> I'm a bit wary to rely on such knowledge about internals.  I 
> prefer to stick with the interfaces.
> 
> But then again it might be a bit too much formalism in this 
> case - and especially for one shot scripts.
> 
> > 3) It's more efficient.
> 
> Yep, guess so.
> 
> Interesting points raised nevertheless.
> 
> Kind regards
> 
>     robert

Could Kernel#require be modified to understand '*' (non-recursive) and
'**' (recursive)?  Then you could do:

require "net/*"  # require all .rb files under the net directory
require "net/**" # Same, but recursive

I seem to recall this being proposed in the past, but I can't remember
the arguments against it.

Regards,

Dan