class Build::Files::Paths

def self.directory(root, relative_paths)

def self.directory(root, relative_paths)
	paths = relative_paths.collect do |path|
		Path.join(root, path)
	end
	
	self.new(paths, [root])
end

def count

def count
	@list.count
end

def each

def each
	return to_enum(:each) unless block_given?
	
	@list.each{|path| yield path}
end

def eql?(other)

def eql?(other)
	self.class.eql?(other.class) and @list.eql?(other.list)
end

def hash

def hash
	@list.hash
end

def initialize(list, roots = nil)

def initialize(list, roots = nil)
	@list = Array(list).freeze
	@roots = roots
end

def inspect

def inspect
	"<Paths #{@list.inspect}>"
end

def roots

The list of roots for a given list of immutable files is also immutable, so we cache it for performance:
def roots
	@roots ||= super
end

def to_paths

def to_paths
	self
end