lib/build/files/list.rb in build-files-0.3.4 vs lib/build/files/list.rb in build-files-1.0.0

- old
+ new

@@ -33,10 +33,21 @@ # Create a composite list out of two other lists: def +(list) Composite.new([self, list]) end + # This isn't very efficient, but it IS generic. + def ==(other) + if self.class == other.class + self.eql?(other) + elsif other.kind_of? self.class + self.to_a.sort == other.to_a.sort + else + super + end + end + # Does this list of files include the path of any other? def intersects? other other.any?{|path| include?(path)} end @@ -72,57 +83,9 @@ if arg.kind_of? self arg else Paths.new(arg) end - end - end - - class Paths < List - def initialize(list, roots = nil) - @list = Array(list).freeze - @roots = roots - end - - attr :list - - # 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 count - @list.count - end - - def each - return to_enum(:each) unless block_given? - - @list.each{|path| yield path} - end - - def eql?(other) - self.class.eql?(other.class) and @list.eql?(other.list) - end - - def hash - @list.hash - end - - def to_paths - self - end - - def inspect - "<Paths #{@list.inspect}>" - end - - def self.directory(root, relative_paths) - paths = relative_paths.collect do |path| - Path.join(root, path) - end - - self.new(paths, [root]) end end class Composite < List def initialize(files, roots = nil)