Module: IRPack::Packager

Includes:
System, System::IO::Packaging
Defined in:
lib/irpack/packager.rb

Constant Summary collapse

RelType =
'http://schemas.openxmlformats.org/package/2006/relationships/meta data/core-properties'

Class Method Summary collapse

Class Method Details

.pack(files, package_file, compress = false) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/irpack/packager.rb', line 33

def pack(files, package_file, compress=false)
  compress_option = compress ? CompressionOption.normal : CompressionOption.not_compressed
  package = Package.open(package_file, System::IO::FileMode.create)
  files.each do |dest, src|
    uri = PackUriHelper.create_part_uri(Uri.new(dest, UriKind.relative))
    part = package.create_part(uri, 'application/octet-stream', compress_option)
    stream = part.get_stream
    File.open(src, 'rb') do |f|
      data = f.read
      stream.write(data, 0, data.size)
    end
    stream.close
    package.create_relationship(uri, TargetMode.internal, RelType)
  end
  package.close
end