class FS
Public Class Methods
each_folder(dir, recursive=true) { |current| ... }
click to toggle source
# File lib/commons.rb, line 114 def self.each_folder(dir, recursive=true) queue = ["."] visited = [] while queue.size > 0 current = queue.shift yield current if recursive Dir.entries(current).each do |entry| next if [".",".."].include? entry to_queue = (current == "." ? entry : File.join(current, entry)) queue.push to_queue if FileTest.directory? to_queue end end queue -= visited visited.push current end end
each_remote_info(dir) { |filename| ... }
click to toggle source
# File lib/commons.rb, line 136 def self.each_remote_info(dir) self.each_folder(dir) do |folder| filename = File.join(folder, RemoteInfo::FILENAME) yield filename if FileTest.exists? filename end end