class Build::Files::Directory

def each

def each
	return to_enum(:each) unless block_given?
	
	Dir.glob(full_path + "**/*") do |path|
		yield Path.new(path, @root)
	end
end

def eql?(other)

def eql?(other)
	other.kind_of?(self.class) and @root.eql?(other.root) and @path.eql?(other.path)
end

def full_path

def full_path
	Path.join(@root, @path)
end

def hash

def hash
	[@root, @path].hash
end

def include?(path)

def include?(path)
	# Would be true if path is a descendant of full_path.
	path.start_with?(full_path)
end

def initialize(root)

def initialize(root)
	@root = root
	@path = path
end

def rebase(root)

def rebase(root)
	self.class.new(root, @path)
end

def roots

def roots
	[@root]
end