Hi, is there any preferred way to load/require all the fiels in a
directory?
For example, my main file does:
require “header.rb”
and file “header.rb” must load all the related files contained in
“headers/” directory. I do the following in “header.rb”:
headers_path = File.dirname(FILE) + ‘/headers’
Dir.chdir(headers_path)
Dir["*.rb"].each do |file|
require “#{headers_path}/#{file}”
end
Is it enought ok or can it receive some Ruby’s magic? XD
Thanks for any suggestion.
I’ve never seen anything else
Iñaki Baz C. wrote:
Dir.chdir(headers_path) Dir["*.rb"].each do |file|
require “#{headers_path}/#{file}”
end
Is it enought ok or can it receive some Ruby’s magic? XD
Thanks for any suggestion.
You do use Ruby magic here ;-). The only thing I would suggest is that
if you do not have to set the current directory to headers_path for some
other reason, use this variation:
Dir[File.join(File.dirname(FILE), ‘headers’, “*.rb”)].each do
|file|
require file
end
Gennady.
On Apr 29, 11:33 am, “ara.t.howard” [email protected] wrote:
glob = File.join( File.dirname(FILE), ‘headers’, ‘*.rb’ )
Dir.glob(glob){|lib| require lib}
is a bit shorter…
I seem to recall proposals for allowing something like “require header/
*” ala Java’s import (maybe I brought it up myself?) but I can’t
remember what the arguments against it were.
Dan
On Apr 29, 2008, at 2:58 AM, Iñaki Baz C. wrote:
headers_path = File.dirname(FILE) + ‘/headers’
Dir.chdir(headers_path)
Dir[“*.rb”].each do |file|
require “#{headers_path}/#{file}”
end
Is it enought ok or can it receive some Ruby’s magic? XD
glob = File.join( File.dirname(FILE), ‘headers’, ‘*.rb’ )
Dir.glob(glob){|lib| require lib}
is a bit shorter…
a @ http://codeforpeople.com/
El Martes, 29 de Abril de 2008, Gennady B.
escribió:
You do use Ruby magic here ;-). The only thing I would suggest is that if
you do not have to set the current directory to headers_path for some other
reason, use this variation:
Dir[File.join(File.dirname(FILE), ‘headers’, “*.rb”)].each do |file|
require file
end
The problem is that I need to load before some specifi files because
have
modules that others files require:
headers_path = File.dirname(FILE) + ‘/headers’
Dir.chdir(headers_path)
require “#{headers_path}/header.rb”
require “#{headers_path}/modules.rb”
Dir[“hdr_*.rb”].each do |file|
require “#{headers_path}/#{file}”
end
But ok, thanks a lot for all your suggestions
Iñaki Baz C. [email protected] wrote:
Dir[“*.rb”].each do |file|
require “#{headers_path}/#{file}”
end
Is it enought ok or can it receive some Ruby’s magic?
If you say
$: << theDirectory
then you can just require the files by name, I believe… m.