Class: Mxrb::OfficialMarketplace::WidgetPackageInstaller
- Inherits:
-
Object
- Object
- Mxrb::OfficialMarketplace::WidgetPackageInstaller
- Defined in:
- lib/mxrb/official_marketplace/widget_package_installer.rb
Overview
Installs an already authenticated official widget archive as one project-owned MPK. rubocop:disable Metrics
Instance Method Summary collapse
-
#initialize(target:) ⇒ WidgetPackageInstaller
constructor
A new instance of WidgetPackageInstaller.
- #install(archive, package) ⇒ Object
Constructor Details
#initialize(target:) ⇒ WidgetPackageInstaller
Returns a new instance of WidgetPackageInstaller.
198 199 200 |
# File 'lib/mxrb/official_marketplace/widget_package_installer.rb', line 198 def initialize(target:) @target = File.(target) end |
Instance Method Details
#install(archive, package) ⇒ Object
202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/mxrb/official_marketplace/widget_package_installer.rb', line 202 def install(archive, package) validate_target! inventory = WidgetPackageInventory.read(archive) validate_identity!(inventory, package) digest = Digest::SHA256.file(archive).hexdigest destination = safe_path(File.join('widgets', inventory.project_filename)) cache = safe_path(cache_relative(inventory, package)) lock_path = safe_path(File.join('.mxrb', 'marketplace.lock.json')) current = validate_boundaries!(package, destination, cache, lock_path) install_transaction( archive, package, inventory, digest, destination, cache, lock_path, current ) end |