Class: RubySkills::Remover

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_skills/remover.rb

Overview

Uninstalls a skill from the project, adapters, and lockfile.

Examples:

Remove an installed skill

RubySkills::Remover.new.remove("rails-performance")

See Also:

Since:

  • 0.1.0

Instance Method Summary collapse

Constructor Details

#initialize(config: Config.new) ⇒ Remover

Returns a new instance of Remover.

Parameters:

  • config (RubySkills::Config) (defaults to: Config.new)

    project paths used to locate skills

Since:

  • 0.1.0



14
15
16
# File 'lib/ruby_skills/remover.rb', line 14

def initialize(config: Config.new)
  @config = config
end

Instance Method Details

#remove(name) ⇒ void

This method returns an undefined value.

Remove an installed skill from disk, tool adapters, and the lockfile.

Parameters:

  • name (String)

    skill identifier to remove

Raises:

Since:

  • 0.1.0



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/ruby_skills/remover.rb', line 23

def remove(name)
  path = @config.skills_path.join(name)

  unless path.exist?
    raise RubySkills::Error,
          "Skill `#{name}` is not installed"
  end

  adapters.each do |adapter|
    adapter.new.remove(name)
  end

  FileUtils.rm_rf(path)

  Lockfile.new.remove(name)

  puts "✓ Removed #{name}"
end