class Build::Files::Difference

def -(list)

def -(list)
	self.class.new(@list, Composite.new(@excludes, list))
end

def each

def each
	return to_enum(:each) unless block_given?
	
	@list.each do |path|
		yield path unless @excludes.include?(path)
	end
end

def freeze

def freeze
	@list.freeze
	@excludes.freeze
	
	super
end

def include?(path)

def include?(path)
	@list.includes?(path) and !@excludes.include?(path)
end

def initialize(list, excludes)

def initialize(list, excludes)
	@list = list
	@excludes = excludes
end

def inspect

def inspect
	"<Difference #{@files.inspect} - #{@excludes.inspect}>"
end

def rebase(root)

def rebase(root)
	self.class.new(@files.collect{|list| list.rebase(root)}, [root])
end