class Rubble::FileSet

Attributes

dir[R]
files[R]

Public Class Methods

new(dir, *files) click to toggle source
# File lib/rubble/file_set.rb, line 8
def initialize(dir, *files)
    @dir = Pathname.pwd + Pathname(dir)
    if files.nil? then
        @files = []
    else
        flattened_files = (files || []).collect {|f| Array(f)}.flatten

        @files = flattened_files.map do |f|
            p = (@dir + Pathname(f)).relative_path_from(@dir)
            if p.to_s.start_with?('../') or p.to_s == '.' then
                raise ArgumentError, "File name '#{f}' must be relative to base directory #{@dir} of the file set."
            end
            p
        end

        @files.sort!
    end

    @files.freeze
end

Public Instance Methods

empty?() click to toggle source
# File lib/rubble/file_set.rb, line 33
def empty?
    @files.empty?
end
paths() click to toggle source
# File lib/rubble/file_set.rb, line 29
def paths
    @files.map {|f| @dir + f}
end
to_s() click to toggle source
# File lib/rubble/file_set.rb, line 37
def to_s
    to_yaml
end