Class: MultiVersionCommonCartridge::Writers::CartridgeWriter

Inherits:
Object
  • Object
show all
Includes:
SupportedVersions
Defined in:
lib/multi_version_common_cartridge/writers/cartridge_writer.rb

Constant Summary

Constants included from SupportedVersions

SupportedVersions::SUPPORTED_VERSIONS, SupportedVersions::UNSUPPORTED_VERSION_MSG_TEMPLATE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from SupportedVersions

#validate_version

Constructor Details

#initialize(cartridge, version) ⇒ CartridgeWriter

Returns a new instance of CartridgeWriter.



26
27
28
29
30
# File 'lib/multi_version_common_cartridge/writers/cartridge_writer.rb', line 26

def initialize(cartridge, version)
  @cartridge = cartridge
  @finalized = false
  @version = validate_version(version)
end

Instance Attribute Details

#cartridgeObject (readonly)

Returns the value of attribute cartridge.



24
25
26
# File 'lib/multi_version_common_cartridge/writers/cartridge_writer.rb', line 24

def cartridge
  @cartridge
end

Instance Method Details

#finalizeObject



32
33
34
35
36
37
# File 'lib/multi_version_common_cartridge/writers/cartridge_writer.rb', line 32

def finalize
  manifest_writer.finalize
  cartridge.all_items.each { |item| item_writer(item).finalize }
  cartridge.all_resources.each { |resource| resource_writer(resource).finalize }
  @finalized = true
end

#write_in_dir(dir) ⇒ Object

Raises:

  • (StandardError)


39
40
41
42
43
44
45
46
47
# File 'lib/multi_version_common_cartridge/writers/cartridge_writer.rb', line 39

def write_in_dir(dir)
  # Should we raise, or should we call finalize from here?
  raise StandardError, 'the cartridge has not been finalized' unless @finalized
  FileUtils.mkdir_p(dir)
  manifest_writer.write(dir)
  cartridge.all_resources.each do |resource|
    resource_writer(resource).create_files(dir)
  end
end

#write_to_zip(filename) ⇒ Object



49
50
51
52
53
54
# File 'lib/multi_version_common_cartridge/writers/cartridge_writer.rb', line 49

def write_to_zip(filename)
  Dir.mktmpdir do |dir|
    write_in_dir(dir)
    zip_dir(filename, dir)
  end
end