Class: MultiVersionCommonCartridge::Writers::CartridgeWriter
- Inherits:
-
Object
- Object
- MultiVersionCommonCartridge::Writers::CartridgeWriter
- 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
-
#cartridge ⇒ Object
readonly
Returns the value of attribute cartridge.
Instance Method Summary collapse
- #finalize ⇒ Object
-
#initialize(cartridge, version) ⇒ CartridgeWriter
constructor
A new instance of CartridgeWriter.
- #write_in_dir(dir) ⇒ Object
- #write_to_zip(filename) ⇒ Object
Methods included from SupportedVersions
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
#cartridge ⇒ Object (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
#finalize ⇒ Object
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
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 |