Method: Buildr::ArchiveTask::ZipExpander#expand

Defined in:
lib/buildr/packaging/archive.rb

#expand(file_map, transform_map, path) ⇒ Object



315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/buildr/packaging/archive.rb', line 315

def expand(file_map, transform_map, path)
  @includes = ['*'] if @includes.empty?
  Zip::File.open(@zip_file) do |source|
    source.entries.reject { |entry| entry.directory? }.each do |entry|
      if @includes.any? { |pattern| File.fnmatch(pattern, entry.name) } &&
         !@excludes.any? { |pattern| File.fnmatch(pattern, entry.name) }
        dest = path =~ /^\/?$/ ? entry.name : Util.relative_path(path + "/" + entry.name)
        trace "Adding #{dest}"
        if @concatenates.any? { |pattern| File.fnmatch(pattern, entry.name) }
          file_map[dest] << ZipEntryData.new(source, entry)
        elsif @transforms.each_pair.detect do |transform, transform_block|\
            if transform.any? { |pattern| File.fnmatch(pattern, entry.name) }
              file_map[dest] << ZipEntryData.new(source, entry)

              transform_map[dest] = transform_block
              true
            end
          end
        else
          file_map[dest] = ZipEntryData.new(source, entry)
        end
      end
    end
  end
end