Class: Pione::Package::PackageArchiver
- Inherits:
-
Object
- Object
- Pione::Package::PackageArchiver
- Defined in:
- lib/pione/package/package-archiver.rb
Overview
PackageArchiver makes PPG file as PIONE archive.
Instance Attribute Summary collapse
-
#location ⇒ Object
readonly
Returns the value of attribute location.
Instance Method Summary collapse
-
#archive(output_directory_location, show_digest) ⇒ Object
Create a package archive file.
-
#initialize(location) ⇒ PackageArchiver
constructor
A new instance of PackageArchiver.
Constructor Details
#initialize(location) ⇒ PackageArchiver
Returns a new instance of PackageArchiver.
7 8 9 10 11 12 13 |
# File 'lib/pione/package/package-archiver.rb', line 7 def initialize(location) unless location.scheme == "local" raise Location::NotLocal.new(location) end @location = location @package_info = PackageInfo.read((location + "pione-package.json").read) end |
Instance Attribute Details
#location ⇒ Object (readonly)
Returns the value of attribute location.
5 6 7 |
# File 'lib/pione/package/package-archiver.rb', line 5 def location @location end |
Instance Method Details
#archive(output_directory_location, show_digest) ⇒ Object
Create a package archive file.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/pione/package/package-archiver.rb', line 21 def archive(output_directory_location, show_digest) path = Temppath.create info = PackageInfo.read((@location + "pione-package.json").read) # make digest digest = Util::PackageDigest.generate(@location) # archive Zip::File.open(path.to_s, Zip::File::CREATE) do |zip| archive_package_info(zip) archive_documents(zip, info) archive_scenarios(zip) archive_bins(zip, info) archive_etcs(zip, info) archive_digest(zip, digest) end # make output location output_location = output_directory_location + filename(show_digest ? digest : nil) # copy the archive file to output location Location[path].copy(output_location) return output_location end |