Class: Metanorma::Release::ZipPackager

Inherits:
Object
  • Object
show all
Includes:
Packager
Defined in:
lib/metanorma/release/zip_packager.rb

Instance Method Summary collapse

Instance Method Details

#package(metadata, canonical_base:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/metanorma/release/zip_packager.rb', line 14

def package(, canonical_base:)
  dir = .output_dir
  base = .file_base_name
  files = Dir.glob(File.join(dir, "#{base}.*")).reject { |f| File.directory?(f) }

  zip_path = File.join(dir, "#{canonical_base}.zip")
  File.delete(zip_path) if File.exist?(zip_path)
  Zip::File.open(zip_path, Zip::File::CREATE) do |zipfile|
    files.each do |file|
      ext = File.extname(file)
      entry_name = "#{canonical_base}#{ext}"
      zipfile.add(entry_name, file)
    end
  end

  Artifact.new(
    zip_path: zip_path,
    asset_name: "#{canonical_base}.zip",
    size: File.size(zip_path)
  )
end