Sha256: 6cb16eecac65155aef6a3904cfe6242d3ec0a67e093b026411ece5e0cac26d30
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true # Released under the MIT License. # Copyright, 2014-2023, by Samuel Williams. require_relative 'list' module Build module Files 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 Path def list(*relative_paths) Paths.directory(self, relative_paths) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
build-files-1.9.0 | lib/build/files/paths.rb |