Class: Mxrb::Marketplace::Installer

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

Constant Summary collapse

MANIFEST =
"mxrb-module.json"

Instance Method Summary collapse

Constructor Details

#initialize(target:, catalog: Catalog.new) ⇒ Installer

Returns a new instance of Installer.



77
78
79
80
# File 'lib/mxrb/marketplace.rb', line 77

def initialize(target:, catalog: Catalog.new)
  @target = File.expand_path(target)
  @catalog = catalog
end

Instance Method Details

#install(identifier, version: nil) ⇒ Object



82
83
84
# File 'lib/mxrb/marketplace.rb', line 82

def install(identifier, version: nil)
  install_package(identifier, version: version, replace: false)
end

#remove(identifier) ⇒ Object



96
97
98
99
100
101
102
103
# File 'lib/mxrb/marketplace.rb', line 96

def remove(identifier)
  module_name = resolve_installed_module_name(identifier)
  validate_no_dependents!(module_name)
  destination = File.join(@target, "modules", module_name)
  FileUtils.rm_rf(destination) if File.exist?(destination)
  remove_from_lock(module_name)
  module_name
end

#update(identifier, version: nil) ⇒ Object



86
87
88
89
90
91
92
93
94
# File 'lib/mxrb/marketplace.rb', line 86

def update(identifier, version: nil)
  installed_module_name = resolve_installed_module_name(identifier)
  install_package(
    identifier,
    version: version,
    replace: true,
    installed_module_name: installed_module_name
  )
end