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