class Scanner
Scanner
class scan all directories of root array and return all children
Public Instance Methods
scan(path_array, directories, files, tree_data, root)
click to toggle source
# File lib/tree/scanner.rb, line 7 def scan(path_array, directories, files, tree_data, root) folders_arr = [] path_array.each do |i| if i.file? files += 1 next else directories += 1 begin i.each_child do |dir| folders_arr << dir tree_data << dir i = dir end rescue Errno::EACCES, Errno::ENOENT, Errno::ENOTDIR next end end end if folders_arr.empty? [tree_data, root, files, directories] else scan(folders_arr, directories, files, tree_data, root) end end
scan_multithread(path_array, directories, files, tree_data, root)
click to toggle source
# File lib/tree/scanner.rb, line 33 def scan_multithread(path_array, directories, files, tree_data, root) threads = [] path_array.each do |n| threads << Thread.new do n.find do |v| next if v == n tree_data << v if v.file? files += 1 else directories += 1 end end end end threads.each(&:join) [tree_data, root, files, directories] end