Reputation: 5329
Files structure:
folderA/
- folder1/
- file1.rb
- file2.rb
- folder2/
- folder1/
- file1.rb
- folder2/
- file1.rb
- file1.rb
- file2.rb
With code below i can iterate only on folderA/file1.rb
and folderA/file2.rb
# EDITTED
Dir.glob('folderA/*.rb') do |file|
puts file
end
Is it possible to iterate over all .rb
files (including subfolders) within only using glob
(without Dir.foreach(dir)..if..)?
P.S. Ruby v.1.8.6
Upvotes: 9
Views: 7037
Reputation: 21
This should work:
Source here: http://ruby-doc.org/stdlib-1.9.3/libdoc/find/rdoc/Find.html
require 'find'
Find.find('spec/') do |rspec_file|
next if FileTest.directory?(rspec_file)
if /.*\.rb/.match(File.basename(rspec_file))
puts rspec_file
end
end
Tested in ruby 1.8.7
Upvotes: 2