class Pione::Package::DirectoryPackageReader
DirectoryPackageReader
reads package structure from directory based package.
Public Class Methods
new(location)
click to toggle source
# File lib/pione/package/package-reader.rb, line 99 def initialize(location) @location = location end
Public Instance Methods
make_local_location()
click to toggle source
# File lib/pione/package/package-reader.rb, line 113 def make_local_location # make temporary directory local_location = Location[Temppath.create] # pione-package.json info = PackageInfo.read((@location + "pione-package.json").read) (@location + "pione-package.json").copy(local_location + "pione-package.json") # copy files (info.documents + info.bins + info.etcs).each do |path| (@location + path).copy(local_location + path) end # scenarios info.scenarios.each do |path| scenario_info = ScenarioInfo.read((@location + path + "pione-scenario.json").read) (@location + path + "pione-scenario.json").copy(local_location + path + "pione-scenario.json") (@location + path + "Scenario.pione").copy(local_location + path + "Scenario.pione") (scenario_info.inputs + scenario_info.outputs).each do |_path| (@location + path + _path).copy(local_location + path + _path) end end return local_location rescue Location::LocationError => e raise InvalidPackage.new("package \"%s\" is invalid: %s" % [@location.address, e.message]) end
read()
click to toggle source
# File lib/pione/package/package-reader.rb, line 103 def read # copy to local local_location = make_local_location # cache digest = PackageCache.cache(local_location) PackageHandler.new(PackageCache.directory_cache(digest), digest: digest) end