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)