Class: Mxrb::OfficialMarketplace::ModulePackageAssets

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/official_marketplace/module_package_importer.rb

Overview

Installs declared package files with rollback support.

Instance Method Summary collapse

Constructor Details

#initialize(target_root, temporary) ⇒ ModulePackageAssets

Returns a new instance of ModulePackageAssets.



116
117
118
119
120
# File 'lib/mxrb/official_marketplace/module_package_importer.rb', line 116

def initialize(target_root, temporary)
  @target_root = target_root
  @backup_root = File.join(temporary, 'backups')
  @changes = []
end

Instance Method Details

#install(staged_files, protected_files = []) ⇒ Object



122
123
124
125
126
# File 'lib/mxrb/official_marketplace/module_package_importer.rb', line 122

def install(staged_files, protected_files = [])
  staged_files.each do |relative, source|
    install_file(relative, source) unless protected_files.include?(relative)
  end
end

#rollbackObject



128
129
130
131
132
# File 'lib/mxrb/official_marketplace/module_package_importer.rb', line 128

def rollback
  @changes.reverse_each do |destination, backup|
    backup ? FileUtils.cp(backup, destination) : FileUtils.rm_f(destination)
  end
end